encode_header.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // callconv: x0 arm64 (x0, x1, x2, x3, x4, x5, x6, x7, stack);
  2. void sym.func.10004b4e4 (int64_t arg1, int64_t arg2, int64_t arg3, int64_t arg4) {
  3. if (!w2) goto 0x10004b588 // likely
  4. goto loc_0x10004b4e8;
  5. loc_0x10004b588:
  6. w8 = 0
  7. loc_0x10004b58c:
  8. // CODE XREF from sym.func.10004b4e4 @ 0x10004b584(x)
  9. [x3] = w8 // arg4
  10. return x0;
  11. loc_0x10004b4e8: // orphan
  12. w14 = 0
  13. w12 = 0
  14. w8 = 0
  15. w9 = w2 // arg3
  16. w10 = 9
  17. w11 = 6
  18. x13 = 0x1008ae000
  19. x13 += 0x5f4
  20. loc_0x10004b554: // orphan
  21. w12 = 0
  22. w14 += 0x3c
  23. w8 += 2
  24. [x1 + x16] = (byte) w14 // arg2
  25. w14 = 0
  26. goto loc_0x10004b508;
  27. loc_0x10004b508: // orphan
  28. w15 = (byte) [x0] + 1 // arg1
  29. w15 = (byte) [x13 + x15]
  30. w16 = w15 ^ w10
  31. w15 = w12 + 2
  32. w17 = w16 >> w15
  33. w14 |= w17
  34. w17 = w14 & 0x3f
  35. w14 = w11 - w12
  36. w14 = w16 << w14
  37. ubfx w14, w14, 2, 6
  38. w17 += 0x3c
  39. x16 = w8
  40. x16 += 1
  41. strb w17, [x1, w8, sxtw] // arg2
  42. v = w12 - 4
  43. if (v >= 0)
  44. goto loc_0x10004b570;
  45. loc_0x10004b570: // orphan
  46. v = w12 - 0
  47. if (v <= 0)
  48. loc_0x10004b578: // orphan
  49. w9 = w14 + 0x3c
  50. strb w9, [x1, w8, sxtw] // arg2
  51. w8 += 1
  52. goto loc_0x10004b548;
  53. loc_0x10004b548: // orphan
  54. x8 = x16
  55. x12 = x15
  56. loc_0x10004b568: // orphan
  57. // CODE XREF from sym.func.10004b4e4 @ 0x10004b550(x)
  58. x9 -= 1
  59. if (v)
  60. }