netClient_recv_dispatch.c 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. // callconv: x0 arm64 (x0, x1, x2, x3, x4, x5, x6, x7, stack);
  2. void sym.func.10003cd30 (int64_t arg1) {
  3. sp -= 0x70
  4. [var_10h] = (x28, 2)
  5. [var_20h] = (x26, 2)
  6. [var_30h] = (x24, 2)
  7. [var_40h] = (x22, 2)
  8. [var_50h] = (x20, 2)
  9. [var_60h] = (x29, 2)
  10. x29 = sp + 0x60
  11. x19 = x0 // arg1
  12. x0 = [x0 + 8] // arg1
  13. if (!x0) goto 0x10003ce8c // unlikely
  14. goto loc_0x10003cd5c;
  15. loc_0x10003ce8c:
  16. // CODE XREF from sym.func.10003cd30 @ 0x10003cda0(x)
  17. (x29, 2) = 3 // sp
  18. (x20, 2) = 3
  19. (x22, 2) = 3
  20. (x24, 2) = 3
  21. (x26, 2) = 3
  22. (x28, 2) = 3
  23. sp += 0x70
  24. return x0;
  25. loc_0x10003cd5c: // orphan
  26. w26 = 0x9680
  27. w26 |= 0x98 << 16
  28. x20 = x19 + 0x10
  29. x21 = x19 + 0x100 // mach0_section___TEXT___stubs
  30. x22 = x19 + 0x140
  31. w27 = 0x4240 // '@B'
  32. w27 |= 0xf << 16
  33. w28 = 1
  34. loc_0x10003cd8c: // orphan
  35. [var_8h] = x26
  36. goto loc_0x10003cd7c;
  37. loc_0x10003cd7c: // orphan
  38. sym.func.100023438 () // sym.func.100023438(-1, 0x0, 0x0, 0x0)
  39. if (w0 == 0)
  40. goto loc_0x10003cda0;
  41. loc_0x10003cd84: // orphan
  42. w8 = [x19 + 0x1a0] // mach0_section___TEXT___objc_stubs
  43. if (!w8)
  44. loc_0x10003cda4: // orphan
  45. (x8, 2) = 3
  46. x9 = [x19 + 0x30]
  47. x11 = x9 + x8
  48. x2 = x10 - x11
  49. v = x2 - 0x400
  50. if (((unsigned) v) > 0)
  51. loc_0x10003cdd8: // orphan
  52. x0 = [x19 + 8]
  53. x1 = x8 + x9
  54. sym.func.100023df8 () // sym.func.100023df8(-1, 0xfffffffffffffffe, 0x1, 0x0)
  55. x23 = x0
  56. v = w23 - 1
  57. if (v < 0)
  58. loc_0x10003cdfc: // orphan
  59. (x9, 2) = 3
  60. v = x8 - x9
  61. if (!v)
  62. loc_0x10003ce70: // orphan
  63. w8 = [x19 + 0x98]
  64. v = w8 - 0
  65. if (v > 0)
  66. loc_0x10003ce84: // orphan
  67. [var_8h] = x27
  68. loc_0x10003cd90: // orphan
  69. // CODE XREF from sym.func.10003cd30 @ 0x10003ce88(x)
  70. x0 = sp + 8
  71. sym.imp.std::__1::this_thread::sleep_for_std::__1::chrono::duration_long_long__std::__1::ratio_1l__1000000000l____const_ () // std::__1::this_thread::sleep_for(std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > const&) // sym.imp.std::__1::this_thread::sleep_for_std::__1::chrono::duration_long_long__std::__1::ratio_1l__1000000000l____const_(0x177f98, 0x0, 0x0, 0x0)
  72. x0 = [x19 + 8]
  73. if (x0)
  74. goto loc_0x10003ce7c;
  75. loc_0x10003ce7c: // orphan
  76. bic w8, w23, w23, asr 31
  77. [x19 + 0x98] = w8
  78. goto loc_0x10003ce08;
  79. loc_0x10003ce08: // orphan
  80. x0 = x19
  81. sym.func.10003d7f8 () // sym.func.10003d7f8(0x0, 0xfffffffffffffffe, 0x1, 0x0)
  82. x24 = x0
  83. if (w0 != 0x1f)
  84. loc_0x10003ce24: // orphan
  85. w8 = w24 + 6
  86. v = w8 - 2
  87. if (((unsigned) v) > 0)
  88. goto loc_0x10003ce30;
  89. try { // cleanup at 0x10003ceac
  90. loc_0x10003ce30: // orphan
  91. w0 = 0x28 // '('
  92. sym.imp.operator_new_unsigned_long_ () // operator new(unsigned long) // sym.imp.operator_new_unsigned_long_(0x28, 0xfffffffffffffffe, 0x1, 0x0)
  93. x25 = x0
  94. w1 = 0xfffe
  95. w1 |= 0x2fff << 16
  96. x2 = x24
  97. sym.func.100071afc () // try.623.10003cd30.to // sym.func.100071afc(0x28, 0x2ffffffe, 0x0, 0x0)
  98. [var_8h] = x25
  99. x0 = x21 // mach0_section___TEXT___stubs
  100. class.std::__1::mutex () // class.std::__1::mutex(0x100, 0x2ffffffe, 0x0, 0x0)
  101. x1 = sp + 8 // "("
  102. x0 = x22
  103. sym.func.10003e64c () // sym.func.10003e64c(0x140, 0x177f98, 0x0, 0x0)
  104. x0 = x21 // mach0_section___TEXT___stubs
  105. method.std::__1::mutex.unlock__ () // method.std::__1::mutex.unlock__(0x100, 0x177f98, 0x0, 0x0)
  106. [x19 + 0x1a0] = w28 // mach0_section___TEXT___objc_stubs
  107. goto loc_0x10003ce18;
  108. } // end try
  109. loc_0x10003ce18: // orphan
  110. (x9, 2) = 3
  111. v = x8 - x9
  112. if (v)
  113. goto loc_0x10003cdf0;
  114. loc_0x10003cdf0: // orphan
  115. x1 = x23 & 0xffffffff
  116. x0 = x20
  117. sym.func.10002dffc () // sym.func.10002dffc(0x10, -1, 0x1, 0x0)
  118. goto loc_0x10003cdbc;
  119. loc_0x10003cdbc: // orphan
  120. x0 = x20
  121. w1 = 0x800
  122. sym.func.100031b90 () // sym.func.100031b90(0x10, 0x800, 0x1, 0x0)
  123. x9 = [x19 + 0x30]
  124. (x8, 2) = 3
  125. x11 = x9 + x8
  126. x2 = x10 - x11
  127. }