diff --git a/BCB/Cheang et al/Figure 3b/Figure_3b.bir b/BCB/Cheang et al/Figure 3b/Figure_3b.bir new file mode 100644 index 0000000000000000000000000000000000000000..880687b25bc2273f8cddf2f2bf0d1b44266cb2aa --- /dev/null +++ b/BCB/Cheang et al/Figure 3b/Figure_3b.bir @@ -0,0 +1,2697 @@ +00019569: program +0001956a: sub foo(foo_result) +00019617: foo_result :: out u32 = low:32[RAX] + +000143bb: +000143bd: goto %0001343b + +0001343b: +00013441: RAX := pad:64[low:32[RCX]] +00013463: CF := RAX < mem[0x180008000, el]:u64 +00013484: when ~CF goto %00013481 +0001956b: goto %000134e3 + +00013481: +00013493: RAX := 63:8[RAX].0 +000134b2: #12582290 := mem[RSP, el]:u64 +000134b6: RSP := RSP + 8 +000134b9: call #12582290 with noreturn + +000134e3: +000134e9: RDX := pad:64[mem[0x180008230]] +00013508: RDX := pad:64[low:32[RDX] << 9] +0001354a: #12582286 := mem[RDX + 0x180008228] +00013550: RCX := 63:8[RCX].low:8[RCX] + #12582286 +00013579: RAX := pad:64[low:8[RCX]] +00013586: #12582284 := mem[RSP, el]:u64 +0001358a: RSP := RSP + 8 +0001358d: call #12582284 with noreturn + +0001956c: sub sub_180001005(sub_180001005_result) +00019618: sub_180001005_result :: out u32 = low:32[RAX] + +000049f0: +000049f3: goto %000049f1 + +000049f1: +000049fe: mem := mem with [RSP + 8, el]:u64 <- RBX +00004a0a: mem := mem with [RSP + 0x10, el]:u64 <- RSI +00004a18: #12582911 := RDI +00004a1c: RSP := RSP - 8 +00004a22: mem := mem with [RSP, el]:u64 <- #12582911 +00004a40: RSP := RSP - 0x20 +00004a64: RDI := R8 +00004a6c: RBX := pad:64[low:32[RDX]] +00004a74: RSI := RCX +00004a8c: #12582907 := low:32[RDX] - 1 +00004aa8: ZF := 0 = #12582907 +00004aaf: when ~ZF goto %00004aac +0001956d: goto %00019557 + +00019557: +00019560: RSP := RSP - 8 +00019565: mem := mem with [RSP, el]:u64 <- 0x180001771 +00019567: call @sub_1800010fa with return %00004aac + +00004aac: +00004ab8: R8 := RDI +00004ac0: RDX := pad:64[low:32[RBX]] +00004ac8: RCX := RSI +00004ad2: RBX := mem[RSP + 0x30, el]:u64 +00004adc: RSI := mem[RSP + 0x38, el]:u64 +00004afd: RSP := RSP + 0x20 +00004b28: RDI := mem[RSP, el]:u64 +00004b2c: RSP := RSP + 8 +00004b31: call @sub_1800015a8 with noreturn + +0001956e: sub sub_18000100f(sub_18000100f_result) +00019619: sub_18000100f_result :: out u32 = low:32[RAX] + +000118a5: +000118b4: goto %000118b2 + +000118b2: +000118b9: RAX := 0x180008198 +000118c6: #12582417 := mem[RSP, el]:u64 +000118ca: RSP := RSP + 8 +000118cd: call #12582417 with noreturn + +0001956f: sub sub_180001019(sub_180001019_result) +0001961a: sub_180001019_result :: out u32 = low:32[RAX] + +0001190d: +00011910: goto %0001190e + +0001190e: +0001192d: RSP := RSP - 0x28 +00011955: RCX := 0 +00011972: RSP := RSP - 8 +00011977: mem := mem with [RSP, el]:u64 <- 0x180001AE7 +00011979: call @sub_18000105a with return %0001197b + +0001197b: +0001198b: #12582412 := low:8[RAX] +000119a1: ZF := 0 = #12582412 +000119ab: RAX := 63:8[RAX].pad:8[~ZF] +000119cc: RSP := RSP + 0x28 +000119f8: #12582407 := mem[RSP, el]:u64 +000119fc: RSP := RSP + 8 +000119ff: call #12582407 with noreturn + +00019570: sub sub_18000101e(sub_18000101e_result) +0001961b: sub_18000101e_result :: out u32 = low:32[RAX] + +0001206b: +0001206d: goto %000118df + +000118df: +000118e3: RAX := 0x1800081A8 +000118f0: #12582416 := mem[RSP, el]:u64 +000118f4: RSP := RSP + 8 +000118f7: call #12582416 with noreturn + +00019571: sub sub_18000102d(sub_18000102d_result) +0001961c: sub_18000102d_result :: out u32 = low:32[RAX] + +00011803: +00011811: call @sub_180002790 with noreturn + +00019572: sub sub_180001032(sub_180001032_result) +0001961d: sub_180001032_result :: out u32 = low:32[RAX] + +00011813: +00011815: goto %00004ecb + +00004ecb: +00004ed5: RAX := 0 +00004ef4: #12582878 := mem[RSP, el]:u64 +00004ef8: RSP := RSP + 8 +00004efb: call #12582878 with noreturn + +00019573: sub sub_18000103c(sub_18000103c_result) +0001961e: sub_18000103c_result :: out u32 = low:32[RAX] + +0000dd5b: +0000dd6a: goto %0000dd68 + +0000dd68: +0000dd77: #12582819 := RBX +0000dd7b: RSP := RSP - 8 +0000dd81: mem := mem with [RSP, el]:u64 <- #12582819 +0000dd9f: RSP := RSP - 0x20 +0000ddd3: #12582815 := mem[0x1800081D0, el]:u64 - 0xFFFFFFFFFFFFFFFF +0000ddef: ZF := 0 = #12582815 +0000ddf7: RBX := RCX +0000ddfe: when ~ZF goto %0000ddfb +00019574: goto %0000df81 + +0000ddfb: +0000de07: RDX := RBX +0000de0d: RCX := 0x1800081D0 +0000de18: RSP := RSP - 8 +0000de1d: mem := mem with [RSP, el]:u64 <- 0x180001E71 +0000de1f: call @sub_18000276c with return %0000de21 + +0000df81: +0000df8a: RSP := RSP - 8 +0000df8f: mem := mem with [RSP, el]:u64 <- 0x180001E60 +0000df91: call @sub_180002778 with return %0000df93 + +0000df93: +0000df95: goto %0000de21 + +0000de21: +0000de2b: RDX := 0 +0000de4f: #12582813 := low:32[RAX] +0000de65: ZF := 0 = #12582813 +0000de71: RDX := if ZF then RBX else 0 +0000de79: RAX := RDX +0000de9a: RSP := RSP + 0x20 +0000dec5: RBX := mem[RSP, el]:u64 +0000dec9: RSP := RSP + 8 +0000ded6: #12582808 := mem[RSP, el]:u64 +0000deda: RSP := RSP + 8 +0000dedd: call #12582808 with noreturn + +00019575: sub sub_180001041(sub_180001041_result) +0001961f: sub_180001041_result :: out u32 = low:32[RAX] + +0000df97: +0000df99: goto %00004d9d + +00004d9d: +00004da1: RCX := 0x180008180 +00004da7: call mem[0x18000A028, el]:u64 with noreturn + +00019576: sub sub_180001046(sub_180001046_result) +00019620: sub_180001046_result :: out u32 = low:32[RAX] + +0000df9b: +0000df9d: call @sub_18000279c with noreturn + +00019577: sub sub_180001055(sub_180001055_result) +00019621: sub_180001055_result :: out u32 = low:32[RAX] + +0000f067: +0000f069: call @sub_180002794 with noreturn + +00019578: sub sub_18000105a(sub_18000105a_result) +00019622: sub_18000105a_result :: out u32 = low:32[RAX] + +0000f06b: +0000f06e: goto %0000f06c + +0000f06c: +0000f07b: #12582710 := RBX +0000f07f: RSP := RSP - 8 +0000f085: mem := mem with [RSP, el]:u64 <- #12582710 +0000f0a3: RSP := RSP - 0x20 +0000f0d7: #12582706 := mem[0x1800081C9] +0000f0f3: ZF := 0 = #12582706 +0000f0fb: RBX := pad:64[low:32[RCX]] +0000f102: when ~ZF goto %0000f0ff +00019582: goto %000141f7 + +000141f7: +0001420d: #12582214 := low:32[RCX] - 1 +00014211: CF := low:32[RCX] < 1 +00014229: ZF := 0 = #12582214 +00014231: when ~(CF | ZF) goto %0000f171 +00019581: goto %00014235 + +0000f171: +0000f175: RCX := 5 +0000f181: RSP := RSP - 8 +0000f186: mem := mem with [RSP, el]:u64 <- 0x180001CFE +0000f188: call @sub_18000114a with return %0001415f + +0001415f: +00014161: call @interrupt:#3 with noreturn + +00014163: +00014165: call @interrupt:#3 with noreturn + +00014167: +00014169: call @interrupt:#3 with noreturn + +0001416b: +0001416d: call @interrupt:#3 with noreturn + +0001416f: +00014171: call @interrupt:#3 with noreturn + +00014173: +00014175: call @interrupt:#3 with noreturn + +00014177: +00014179: call @interrupt:#3 with noreturn + +0001417b: +0001417d: call @interrupt:#3 with noreturn + +0001417f: +00014181: call @interrupt:#3 with noreturn + +00014183: +00014185: call @interrupt:#3 with noreturn + +00014187: +00014189: call @interrupt:#3 with noreturn + +0001418b: +0001418d: call @interrupt:#3 with noreturn + +0001418f: +00014191: call @interrupt:#3 with noreturn + +00014193: +00014195: call @interrupt:#3 with noreturn + +00014197: +00014199: call @interrupt:#3 with noreturn + +0001419b: +0001419d: call @interrupt:#3 with noreturn + +0001419f: +000141a1: call @interrupt:#3 with noreturn + +000141a3: +000141a5: call @interrupt:#3 with noreturn + +000141a7: +000141a9: call @interrupt:#3 with noreturn + +000141ab: +000141ad: call @interrupt:#3 with noreturn + +000141af: +000141b1: call @interrupt:#3 with noreturn + +000141b3: +000141b5: call @interrupt:#3 with noreturn + +000141b7: +000141b9: call @interrupt:#3 with noreturn + +000141bb: +000141bd: call @interrupt:#3 with noreturn + +000141bf: +000141c1: call @interrupt:#3 with noreturn + +000141c3: +000141c5: call @interrupt:#3 with noreturn + +000141c7: +000141c9: call @interrupt:#3 with noreturn + +000141cb: +000141cd: call @interrupt:#3 with noreturn + +000141cf: +000141d1: call @interrupt:#3 with noreturn + +000141d3: +000141d5: call @interrupt:#3 with noreturn + +000141d7: +000141d9: call @interrupt:#3 with noreturn + +000141db: +000141dd: call @interrupt:#3 with noreturn + +000141df: +000141e1: call @interrupt:#3 with noreturn + +000141e3: +000141e5: call @interrupt:#3 with noreturn + +000141e7: +000141e9: call @interrupt:#3 with noreturn + +000141eb: +000141ed: call @interrupt:#3 with noreturn + +000141ef: +000141f1: call @interrupt:#3 with noreturn + +000141f3: +000141f5: call @interrupt:#3 with noreturn + +00014235: +0001423e: RSP := RSP - 8 +00014243: mem := mem with [RSP, el]:u64 <- 0x180001C8F +00014245: call @sub_180001087 with return %00014247 + +00014247: +00014257: #12582212 := low:32[RAX] +0001426d: ZF := 0 = #12582212 +00014274: when ZF goto %00014271 +0001957f: goto %000142cf + +000142cf: +000142df: #12582209 := low:32[RBX] +000142f5: ZF := 0 = #12582209 +000142fb: when ~ZF goto %00014271 +0001957e: goto %000142ff + +00014271: +0001427f: YMM0 := 255:128[YMM0].mem[0x180006890, el]:u128 +0001428b: RAX := 0xFFFFFFFFFFFFFFFF +000142a7: mem := mem with [0x1800081D0, el]:u128 <- low:128[YMM0] +000142b1: mem := mem with [0x1800081E0, el]:u64 <- 0xFFFFFFFFFFFFFFFF +000142bb: mem := mem with [0x1800081E8, el]:u128 <- low:128[YMM0] +000142c5: mem := mem with [0x1800081F8, el]:u64 <- 0xFFFFFFFFFFFFFFFF +0001957d: goto %000142c7 + +000142ff: +00014303: RCX := 0x1800081D0 +0001430e: RSP := RSP - 8 +00014313: mem := mem with [RSP, el]:u64 <- 0x180001CA3 +00014315: call @sub_180002766 with return %00014317 + +00014317: +00014327: #12582207 := low:32[RAX] +0001433d: ZF := 0 = #12582207 +00014344: when ~ZF goto %00014341 +0001957c: goto %0001436b + +0001436b: +0001436f: RCX := 0x1800081E8 +0001437a: RSP := RSP - 8 +0001437f: mem := mem with [RSP, el]:u64 <- 0x180001CB3 +00014381: call @sub_180002766 with return %00014383 + +00014383: +00014393: #12582205 := low:32[RAX] +000143a9: ZF := 0 = #12582205 +000143af: when ZF goto %000142c7 +0001957b: goto %00014341 + +000142c7: +000142cd: mem := mem with [0x1800081C9] <- 1 +0001957a: goto %0000f0ff + +0000f0ff: +0000f10b: RAX := high:56[RAX].1 +00019579: goto %0000f10d + +00014341: +00014353: RAX := 63:8[RAX].0 +00014369: goto %0000f10d + +0000f10d: +0000f12c: RSP := RSP + 0x20 +0000f157: RBX := mem[RSP, el]:u64 +0000f15b: RSP := RSP + 8 +0000f168: #12582701 := mem[RSP, el]:u64 +0000f16c: RSP := RSP + 8 +0000f16f: call #12582701 with noreturn + +00019583: sub sub_180001082(sub_180001082_result) +00019623: sub_180001082_result :: out u32 = low:32[RAX] + +00013625: +00013634: goto %00013632 + +00013632: +00013641: #12582282 := RBX +00013645: RSP := RSP - 8 +0001364b: mem := mem with [RSP, el]:u64 <- #12582282 +00013669: RSP := RSP - 0x20 +0001369d: #12582278 := mem[0x1800081C8] +000136b9: ZF := 0 = #12582278 +000136c3: RBX := high:56[RBX].low:8[RCX] +000136ca: when ZF goto %000136c7 +00019585: goto %00013793 + +00013793: +000137a3: #12582272 := low:8[RDX] +000137b9: ZF := 0 = #12582272 +000137bf: when ~ZF goto %000136fb +00019584: goto %000136c7 + +000136c7: +000136d6: RSP := RSP - 8 +000136db: mem := mem with [RSP, el]:u64 <- 0x180001E2E +000136dd: call @sub_1800010e6 with return %000136df + +000136df: +000136e7: RCX := high:56[RCX].low:8[RBX] +000136f2: RSP := RSP - 8 +000136f7: mem := mem with [RSP, el]:u64 <- 0x180001E35 +000136f9: call @sub_180001046 with return %000136fb + +000136fb: +00013701: RAX := high:56[RAX].1 +00013722: RSP := RSP + 0x20 +0001374d: RBX := mem[RSP, el]:u64 +00013751: RSP := RSP + 8 +0001375e: #12582273 := mem[RSP, el]:u64 +00013762: RSP := RSP + 8 +00013765: call #12582273 with noreturn + +00019586: sub sub_180001087(sub_180001087_result) +00019624: sub_180001087_result :: out u32 = low:32[RAX] + +0000d5cd: +0000d5dc: goto %0000d5da + +0000d5da: +0000d616: #12582866 := mem[0x180008060, el]:u32 +0000d635: ZF := 0 = #12582866 +0000d63f: RAX := 0.pad:8[~ZF] +0000d64c: #12582864 := mem[RSP, el]:u64 +0000d650: RSP := RSP + 8 +0000d653: call #12582864 with noreturn + +00019587: sub sub_18000108c(sub_18000108c_result) +00019625: sub_18000108c_result :: out u32 = low:32[RAX] + +0000d6f5: +0000d6f8: call @sub_180001d24 with noreturn + +00019588: sub sub_180001096(sub_180001096_result) +00019626: sub_180001096_result :: out u32 = low:32[RAX] + +00011bb9: +00011bc7: call @sub_180002798 with noreturn + +00019589: sub sub_1800010a5(sub_1800010a5_result) +00019627: sub_1800010a5_result :: out u32 = low:32[RAX] + +000116cd: +000116db: call @sub_1800027a0 with noreturn + +0001958a: sub sub_1800010aa(sub_1800010aa_result) +00019628: sub_1800010aa_result :: out u32 = low:32[RAX] + +000116dd: +000116df: call @sub_180002794 with noreturn + +0001958b: sub sub_1800010b4(sub_1800010b4_result) +00019629: sub_1800010b4_result :: out u32 = low:32[RAX] + +00004c98: +00004ca7: goto %00004ca5 + +00004ca5: +00004cc4: RSP := RSP - 0x28 +00004cf8: #12582889 := low:32[RDX] - 1 +00004d14: ZF := 0 = #12582889 +00004d1b: when ~ZF goto %00004d18 +0001958d: goto %00018a6f + +00018a6f: +00018a85: #12582154 := mem[0x180006880, el]:u64 +00018aa1: ZF := 0 = #12582154 +00018aa7: when ~ZF goto %00004d18 +0001958c: goto %00018aab + +00018aab: +00018ab7: #12582152 := mem[0x18000A020, el]:u64 +00018abb: RSP := RSP - 8 +00018ac0: mem := mem with [RSP, el]:u64 <- 0x180001915 +00018ac3: call #12582152 with return %00004d18 + +00004d18: +00004d22: RAX := 1 +00004d43: RSP := RSP + 0x28 +00004d6f: #12582884 := mem[RSP, el]:u64 +00004d73: RSP := RSP + 8 +00004d76: call #12582884 with noreturn + +0001958e: sub sub_1800010c3(sub_1800010c3_result) +0001962a: sub_1800010c3_result :: out u32 = low:32[RAX] + +0000fc66: +0000fc74: goto %0000e915 + +0000e915: +0000e919: RAX := 1 +0000e926: #12582755 := mem[RSP, el]:u64 +0000e92a: RSP := RSP + 8 +0000e92d: call #12582755 with noreturn + +0001958f: sub sub_1800010cd(sub_1800010cd_result) +0001962b: sub_1800010cd_result :: out u32 = low:32[RAX] + +000109b4: +000109b6: goto %0001007e + +0001007e: +00010088: mem := mem with [RSP + 8, el]:u64 <- RBX +00010096: #12582586 := RDI +0001009a: RSP := RSP - 8 +000100a0: mem := mem with [RSP, el]:u64 <- #12582586 +000100be: RSP := RSP - 0x20 +000100e0: RBX := 0x1800070A0 +000100e6: RDI := 0x1800071A8 +000100eb: goto %000100e9 + +000100e9: +0001010c: CF := RBX < 0x1800071A8 +0001012d: when CF goto %0001012a +00019592: goto %000101c4 + +000101c4: +000101cc: RBX := mem[RSP + 0x30, el]:u64 +000101ed: RSP := RSP + 0x20 +00010218: RDI := mem[RSP, el]:u64 +0001021c: RSP := RSP + 8 +00010229: #12582571 := mem[RSP, el]:u64 +0001022d: RSP := RSP + 8 +00010230: call #12582571 with noreturn + +0001012a: +00010138: RAX := mem[RBX, el]:u64 +0001014a: #12582580 := RAX +00010160: ZF := 0 = #12582580 +00010167: when ZF goto %00010164 +00019591: goto %000101aa + +000101aa: +000101b6: #12582575 := mem[0x18000B020, el]:u64 +000101ba: RSP := RSP - 8 +000101bf: mem := mem with [RSP, el]:u64 <- 0x1800021F8 +000101c2: call #12582575 with return %00010164 + +00010164: +00010189: RBX := RBX + 8 +00019590: goto %000100e9 + +00019593: sub sub_1800010d7(sub_1800010d7_result) +0001962c: sub_1800010d7_result :: out u32 = low:32[RAX] + +00011199: +0001119b: goto %00010272 + +00010272: +0001027c: mem := mem with [RSP + 8, el]:u64 <- RBX +0001028a: #12582570 := RDI +0001028e: RSP := RSP - 8 +00010294: mem := mem with [RSP, el]:u64 <- #12582570 +000102b2: RSP := RSP - 0x20 +000102d4: RBX := 0x1800072C0 +000102da: RDI := 0x1800073C8 +000102df: goto %000102dd + +000102dd: +00010300: CF := RBX < 0x1800073C8 +00010321: when CF goto %0001031e +00019596: goto %000103b8 + +000103b8: +000103c0: RBX := mem[RSP + 0x30, el]:u64 +000103e1: RSP := RSP + 0x20 +0001040c: RDI := mem[RSP, el]:u64 +00010410: RSP := RSP + 8 +0001041d: #12582555 := mem[RSP, el]:u64 +00010421: RSP := RSP + 8 +00010424: call #12582555 with noreturn + +0001031e: +0001032c: RAX := mem[RBX, el]:u64 +0001033e: #12582564 := RAX +00010354: ZF := 0 = #12582564 +0001035b: when ZF goto %00010358 +00019595: goto %0001039e + +0001039e: +000103aa: #12582559 := mem[0x18000B020, el]:u64 +000103ae: RSP := RSP - 8 +000103b3: mem := mem with [RSP, el]:u64 <- 0x180002244 +000103b6: call #12582559 with return %00010358 + +00010358: +0001037d: RBX := RBX + 8 +00019594: goto %000102dd + +00019597: sub sub_1800010e1(sub_1800010e1_result) +0001962d: sub_1800010e1_result :: out u32 = low:32[RAX] + +000111a1: +000111a3: call @sub_180002798 with noreturn + +00019598: sub sub_1800010e6(sub_1800010e6_result) +0001962e: sub_1800010e6_result :: out u32 = low:32[RAX] + +000111a5: +000111a7: call @sub_18000279c with noreturn + +00019599: sub sub_1800010fa(sub_1800010fa_result) +0001962f: sub_1800010fa_result :: out u32 = low:32[RAX] + +000111b5: +000111b8: goto %000111b6 + +000111b6: +000111c3: mem := mem with [RSP + 0x20, el]:u64 <- RBX +000111d1: #12582460 := RBP +000111d5: RSP := RSP - 8 +000111db: mem := mem with [RSP, el]:u64 <- #12582460 +000111e3: RBP := RSP +00011201: RSP := RSP - 0x20 +00011225: RAX := mem[0x180008020, el]:u64 +0001122b: RBX := 0x2B992DDFA232 +00011248: #12582456 := RAX - 0x2B992DDFA232 +00011267: ZF := 0 = #12582456 +0001126e: when ~ZF goto %0001126b +0001959b: goto %000113a1 + +000113a1: +000113b7: mem := mem with [RBP + 0x18, el]:u64 <- 0 +000113d9: RCX := RBP + 0x18 +000113e7: #12582449 := mem[0x18000A018, el]:u64 +000113eb: RSP := RSP - 8 +000113f0: mem := mem with [RSP, el]:u64 <- 0x180001856 +000113f3: call #12582449 with return %000113f5 + +000113f5: +000113fd: RAX := mem[RBP + 0x18, el]:u64 +00011409: mem := mem with [RBP + 0x10, el]:u64 <- RAX +00011417: #12582448 := mem[0x18000A010, el]:u64 +0001141b: RSP := RSP - 8 +00011420: mem := mem with [RSP, el]:u64 <- 0x180001864 +00011423: call #12582448 with return %00011425 + +00011425: +0001142b: RAX := pad:64[low:32[RAX]] +00011449: mem := + mem with [RBP + 0x10, el]:u64 <- mem[RBP + 0x10, el]:u64 ^ RAX +00011471: #12582446 := mem[0x18000A008, el]:u64 +00011475: RSP := RSP - 8 +0001147a: mem := mem with [RSP, el]:u64 <- 0x180001870 +0001147d: call #12582446 with return %0001147f + +0001147f: +00011485: RAX := pad:64[low:32[RAX]] +0001148d: RCX := RBP + 0x20 +000114ab: mem := + mem with [RBP + 0x10, el]:u64 <- mem[RBP + 0x10, el]:u64 ^ RAX +000114d3: #12582444 := mem[0x18000A000, el]:u64 +000114d7: RSP := RSP - 8 +000114dc: mem := mem with [RSP, el]:u64 <- 0x180001880 +000114df: call #12582444 with return %000114e1 + +000114e1: +000114e9: RAX := pad:64[mem[RBP + 0x20, el]:u32] +000114f1: RCX := RBP + 0x10 +0001150a: RAX := RAX << 0x20 +00011537: RAX := RAX ^ mem[RBP + 0x20, el]:u64 +00011563: RAX := RAX ^ mem[RBP + 0x10, el]:u64 +0001158d: RAX := RAX ^ RCX +000115bd: RAX := RAX & 0xFFFFFFFFFFFF +000115d9: RCX := 0x2B992DDFA233 +000115f6: #12582437 := RAX - 0x2B992DDFA232 +00011615: ZF := 0 = #12582437 +00011621: RAX := if ZF then 0x2B992DDFA233 else RAX +0001162b: mem := mem with [0x180008020, el]:u64 <- RAX +0001959a: goto %0001126b + +0001126b: +00011279: RBX := mem[RSP + 0x48, el]:u64 +00011281: RAX := ~RAX +0001128b: mem := mem with [0x180008028, el]:u64 <- RAX +000112ac: RSP := RSP + 0x20 +000112d7: RBP := mem[RSP, el]:u64 +000112db: RSP := RSP + 8 +000112e8: #12582451 := mem[RSP, el]:u64 +000112ec: RSP := RSP + 8 +000112ef: call #12582451 with noreturn + +0001959c: sub sub_180001109(sub_180001109_result) +00019630: sub_180001109_result :: out u32 = low:32[RAX] + +00011635: +00011638: goto %00011636 + +00011636: +0001163d: RAX := 0x180008238 +0001164a: #12582435 := mem[RSP, el]:u64 +0001164e: RSP := RSP + 8 +00011651: call #12582435 with noreturn + +0001959d: sub sub_18000110e(sub_18000110e_result) +00019631: sub_18000110e_result :: out u32 = low:32[RAX] + +00011663: +00011665: goto %00004dc1 + +00004dc1: +00004dc5: RCX := 0x180008180 +00004dca: goto %00004dc8 + +00004dc8: +00004dcf: call mem[0x18000A0F0, el]:u64 with noreturn + +0001959e: sub sub_180001118(sub_180001118_result) +00019632: sub_180001118_result :: out u32 = low:32[RAX] + +0001166b: +0001166e: goto %0001166c + +0001166c: +0001168b: RSP := RSP - 0x28 +000116b3: RCX := 0 +000116d1: RSP := RSP - 8 +000116d6: mem := mem with [RSP, el]:u64 <- 0x180001C07 +000116d8: call @sub_1800010a5 with return %000116e5 + +000116e5: +00011704: RSP := RSP + 0x28 +00011727: goto %000111b1 + +000111b1: +000111b3: call @sub_1800027a0 with noreturn + +0001959f: sub sub_18000111d(sub_18000111d_result) +00019633: sub_18000111d_result :: out u32 = low:32[RAX] + +000122af: +000122b1: goto %00011a1d + +00011a1d: +00011a39: RSP := RSP - 0x28 +00011a60: RSP := RSP - 8 +00011a65: mem := mem with [RSP, el]:u64 <- 0x180001B01 +00011a67: call @sub_180001055 with return %00011a69 + +00011a69: +00011a79: #12582403 := low:8[RAX] +00011a8f: ZF := 0 = #12582403 +00011a96: when ~ZF goto %00011a93 +000195a2: goto %00012044 + +00011a93: +00011aa2: RSP := RSP - 8 +00011aa7: mem := mem with [RSP, el]:u64 <- 0x180001B0E +00011aa9: call @sub_1800010aa with return %00011aab + +00011aab: +00011abb: #12582401 := low:8[RAX] +00011ad1: ZF := 0 = #12582401 +00011ad8: when ~ZF goto %00011ad5 +000195a1: goto %00012031 + +00011ad5: +00011ae1: RAX := high:56[RAX].1 +000195a0: goto %00011ae3 + +00012031: +0001203a: RSP := RSP - 8 +0001203f: mem := mem with [RSP, el]:u64 <- 0x180001B17 +00012041: call @sub_180001096 with return %00012043 + +00012043: +00012046: goto %00012044 + +00012044: +00012053: RAX := 63:8[RAX].0 +00012069: goto %00011ae3 + +00011ae3: +00011b02: RSP := RSP + 0x28 +00011b2e: #12582396 := mem[RSP, el]:u64 +00011b32: RSP := RSP + 8 +00011b35: call #12582396 with noreturn + +000195a3: sub sub_180001122(sub_180001122_result) +00019634: sub_180001122_result :: out u32 = low:32[RAX] + +00011851: +0001185f: call @sub_180002790 with noreturn + +000195a4: sub sub_180001127(sub_180001127_result) +00019635: sub_180001127_result :: out u32 = low:32[RAX] + +00011861: +00011864: goto %00011862 + +00011862: +00011881: RSP := RSP - 0x28 +000118a9: RSP := RSP - 8 +000118ae: mem := mem with [RSP, el]:u64 <- 0x18000196D +000118b0: call @sub_18000100f with return %00012077 + +00012077: +00012091: mem := mem with [RAX, el]:u64 <- mem[RAX, el]:u64 | 0x24 +000120b6: RSP := RSP - 8 +000120bb: mem := mem with [RSP, el]:u64 <- 0x180001976 +000120bd: call @sub_18000101e with return %000120bf + +000120bf: +000120d9: mem := mem with [RAX, el]:u64 <- mem[RAX, el]:u64 | 2 +00012114: RSP := RSP + 0x28 +00012140: #12582357 := mem[RSP, el]:u64 +00012144: RSP := RSP + 8 +00012147: call #12582357 with noreturn + +000195a5: sub sub_18000112c(sub_18000112c_result) +00019636: sub_18000112c_result :: out u32 = low:32[RAX] + +0000f257: +0000f266: goto %0000f264 + +0000f264: +0000f277: mem := mem with [0x180008210, el]:u32 <- 0 +0000f29a: #12582692 := mem[RSP, el]:u64 +0000f29e: RSP := RSP + 8 +0000f2a1: call #12582692 with noreturn + +000195a6: sub sub_18000113b(sub_18000113b_result) +00019637: sub_18000113b_result :: out u32 = low:32[RAX] + +0000fbe0: +0000fbe3: goto %0000fbe1 + +0000fbe1: +0000fc00: RSP := RSP - 0x28 +0000fc27: RSP := RSP - 8 +0000fc2c: mem := mem with [RSP, el]:u64 <- 0x180001AA1 +0000fc2e: call @sub_180001087 with return %0000fc30 + +0000fc30: +0000fc40: #12582610 := low:32[RAX] +0000fc56: ZF := 0 = #12582610 +0000fc5d: when ZF goto %0000fc5a +000195a9: goto %000123cf + +0000fc5a: +0000fc6a: RSP := RSP - 8 +0000fc6f: mem := mem with [RSP, el]:u64 <- 0x180001AB1 +0000fc71: call @sub_1800010c3 with return %000122b3 + +000122b3: +000122b9: RCX := pad:64[low:32[RAX]] +000122c4: RSP := RSP - 8 +000122c9: mem := mem with [RSP, el]:u64 <- 0x180001AB8 +000122cb: call @sub_18000275a with return %000122cd + +000122cd: +000122dd: #12582350 := low:32[RAX] +000122f3: ZF := 0 = #12582350 +000122fa: when ZF goto %000122f7 +000195a8: goto %000123ab + +000122f7: +00012306: RSP := RSP - 8 +0001230b: mem := mem with [RSP, el]:u64 <- 0x180001AC5 +0001230d: call @sub_180002760 with return %0001230f + +000123ab: +000123b7: RAX := 63:8[RAX].0 +000123cd: goto %00012317 + +000123cf: +000123d8: RSP := RSP - 8 +000123dd: mem := mem with [RSP, el]:u64 <- 0x180001AAA +000123df: call @sub_180001145 with return %000123e1 + +000123e1: +000123e3: goto %0001230f + +0001230f: +00012315: RAX := high:56[RAX].1 +000195a7: goto %00012317 + +00012317: +00012336: RSP := RSP + 0x28 +00012362: #12582345 := mem[RSP, el]:u64 +00012366: RSP := RSP + 8 +00012369: call #12582345 with noreturn + +000195aa: sub sub_180001140(sub_180001140_result) +00019638: sub_180001140_result :: out u32 = low:32[RAX] + +0000d564: +0000d56a: goto %0000d568 + +0000d568: +0000d577: #12582870 := RBX +0000d57b: RSP := RSP - 8 +0000d581: mem := mem with [RSP, el]:u64 <- #12582870 +0000d59f: RSP := RSP - 0x20 +0000d5c5: RBX := high:56[RBX].low:8[RCX] +0000d5d1: RSP := RSP - 8 +0000d5d6: mem := mem with [RSP, el]:u64 <- 0x180001DF1 +0000d5d8: call @sub_180001087 with return %00014529 + +00014529: +00014533: RDX := 0 +00014557: #12582190 := low:32[RAX] +0001456d: ZF := 0 = #12582190 +00014574: when ZF goto %00014571 +000195ad: goto %0001460b + +0001460b: +0001461b: #12582184 := low:8[RBX] +00014631: ZF := 0 = #12582184 +00014637: when ~ZF goto %00014571 +000195ac: goto %0001463b + +0001463b: +0001464a: RDX := mem[0x1800081C0, el]:u64 +0001464f: mem := mem with [0x1800081C0, el]:u64 <- 0 +000195ab: goto %00014571 + +00014571: +00014596: RSP := RSP + 0x20 +000145c1: RBX := mem[RSP, el]:u64 +000145c5: RSP := RSP + 8 +000145d2: #12582185 := mem[RSP, el]:u64 +000145d6: RSP := RSP + 8 +000145d9: call #12582185 with noreturn + +000195ae: sub sub_180001145(sub_180001145_result) +00019639: sub_180001145_result :: out u32 = low:32[RAX] + +000117ed: +000117fb: goto %0000e3ff + +0000e3ff: +0000e409: mem := mem with [RSP + 0x10, el]:u64 <- RBX +0000e415: mem := mem with [RSP + 0x18, el]:u64 <- RSI +0000e423: #12582770 := RDI +0000e427: RSP := RSP - 8 +0000e42d: mem := mem with [RSP, el]:u64 <- #12582770 +0000e44b: RSP := RSP - 0x10 +0000e4ac: RAX := pad:64[unknown[bits]:u32] +0000e4af: RBX := pad:64[unknown[bits]:u32] +0000e4b2: RCX := pad:64[unknown[bits]:u32] +0000e4b5: RDX := pad:64[unknown[bits]:u32] +0000e4bd: R8 := pad:64[low:32[RCX]] +0000e4c9: R11 := 0 +0000e4e3: R10 := pad:64[low:32[RDX]] +0000e4f5: R8 := pad:64[low:32[R8] ^ 0x6C65746E] +0000e51d: R10 := pad:64[low:32[R10] ^ 0x49656E69] +0000e53b: R9 := pad:64[low:32[RBX]] +0000e543: RSI := pad:64[low:32[RAX]] +0000e54f: RCX := 0 +0000e569: RAX := 1 +0000e57d: R10 := pad:64[low:32[R10] | low:32[R8]] +0000e59c: RAX := pad:64[unknown[bits]:u32] +0000e59f: RBX := pad:64[unknown[bits]:u32] +0000e5a2: RCX := pad:64[unknown[bits]:u32] +0000e5a5: RDX := pad:64[unknown[bits]:u32] +0000e5b7: R9 := pad:64[low:32[R9] ^ 0x756E6547] +0000e5d9: mem := mem with [RSP, el]:u32 <- low:32[RAX] +0000e5ed: R10 := pad:64[low:32[R10] | low:32[R9]] +0000e603: ZF := 0 = low:32[R10] +0000e60f: mem := mem with [RSP + 4, el]:u32 <- low:32[RBX] +0000e617: RDI := pad:64[low:32[RCX]] +0000e623: mem := mem with [RSP + 8, el]:u32 <- low:32[RCX] +0000e62f: mem := mem with [RSP + 0xC, el]:u32 <- low:32[RDX] +0000e636: when ~ZF goto %0000e633 +000195c0: goto %0000ed25 + +0000ed25: +0000ed35: mem := mem with [0x180008048, el]:u64 <- 0xFFFFFFFFFFFFFFFF +0000ed5d: RAX := pad:64[low:32[RAX] & 0xFFF3FF0] +0000ed7b: mem := mem with [0x180008040, el]:u64 <- 0x8000 +0000ed93: #12582734 := low:32[RAX] - 0x106C0 +0000edaf: ZF := 0 = #12582734 +0000edb6: when ZF goto %0000edb3 +000195bf: goto %0000edf7 + +0000edf7: +0000ee0d: #12582731 := low:32[RAX] - 0x20660 +0000ee29: ZF := 0 = #12582731 +0000ee2f: when ZF goto %0000edb3 +000195be: goto %0000ee33 + +0000ee33: +0000ee49: #12582729 := low:32[RAX] - 0x20670 +0000ee65: ZF := 0 = #12582729 +0000ee6b: when ZF goto %0000edb3 +000195bd: goto %0000ee6f + +0000ee6f: +0000ee8e: RAX := pad:64[low:32[RAX] - 0x30650] +0000eec5: #12582724 := low:32[RAX] - 0x20 +0000eec9: CF := low:32[RAX] < 0x20 +0000eee1: ZF := 0 = #12582724 +0000eee9: when ~(CF | ZF) goto %0000e633 +000195bc: goto %0000eeed + +0000eeed: +0000eef1: RCX := 0x100010001 +0000ef01: #12582722 := low:6[RAX] +0000ef06: CF := low:1[0x100010001 >> #12582722] +0000ef1b: when ~CF goto %0000e633 +000195bb: goto %0000edb3 + +0000e633: +0000e63f: R8 := pad:64[mem[0x180008214, el]:u32] +000195ba: goto %0000e641 + +0000edb3: +0000edbf: R8 := pad:64[mem[0x180008214, el]:u32] +0000edd1: R8 := pad:64[low:32[R8] | 1] +0000edf1: mem := mem with [0x180008214, el]:u32 <- low:32[R8] +0000edf5: goto %0000e641 + +0000e641: +0000e645: RAX := 7 +0000e64d: R9 := 2 +0000e66a: #12582761 := low:32[RSI] - 7 +0000e676: OF := high:1[(low:32[RSI] ^ 7) & (low:32[RSI] ^ #12582761)] +0000e685: SF := high:1[#12582761] +0000e696: when (SF | OF) & ~(SF & OF) goto %0000e690 +000195b9: goto %0000ec65 + +0000ec65: +0000ec6f: RCX := 0 +0000ec8a: RAX := pad:64[unknown[bits]:u32] +0000ec8d: RBX := pad:64[unknown[bits]:u32] +0000ec90: RCX := pad:64[unknown[bits]:u32] +0000ec93: RDX := pad:64[unknown[bits]:u32] +0000ec9f: mem := mem with [RSP, el]:u32 <- low:32[RAX] +0000eca7: R11 := pad:64[low:32[RBX]] +0000ecb3: mem := mem with [RSP + 4, el]:u32 <- low:32[RBX] +0000ecbf: mem := mem with [RSP + 8, el]:u32 <- low:32[RCX] +0000eccb: mem := mem with [RSP + 0xC, el]:u32 <- low:32[RDX] +0000ecd8: CF := low:1[RBX >> 9] +0000eced: when ~CF goto %0000e690 +000195b8: goto %0000ecf1 + +0000ecf1: +0000ed03: R8 := pad:64[low:32[R8] | 2] +0000ed23: mem := mem with [0x180008214, el]:u32 <- low:32[R8] +000195b7: goto %0000e690 + +0000e690: +0000e69f: mem := mem with [0x180008038, el]:u32 <- 1 +0000e6a9: mem := mem with [0x18000803C, el]:u32 <- 2 +0000e6b6: CF := low:1[RDI >> 0x14] +0000e6cc: when ~CF goto %0000e6c9 +000195b6: goto %0000e937 + +0000e937: +0000e93f: mem := mem with [0x180008038, el]:u32 <- 2 +0000e945: RBX := 6 +0000e94f: mem := mem with [0x18000803C, el]:u32 <- 6 +0000e95c: CF := low:1[RDI >> 0x1B] +0000e971: when ~CF goto %0000e6c9 +000195b5: goto %0000e975 + +0000e975: +0000e980: CF := low:1[RDI >> 0x1C] +0000e995: when ~CF goto %0000e6c9 +000195b4: goto %0000e999 + +0000e999: +0000e9a3: RCX := 0 +0000e9bc: RAX := pad:64[unknown[bits]:u32] +0000e9bf: RDX := pad:64[unknown[bits]:u32] +0000e9d8: RDX := RDX << 0x20 +0000ea03: RDX := RDX | RAX +0000ea25: mem := mem with [RSP + 0x20, el]:u64 <- RDX +0000ea2f: RAX := mem[RSP + 0x20, el]:u64 +0000ea45: RAX := 63:8[RAX].low:8[RAX] & 6 +0000ea78: #12582750 := low:8[RAX] - 6 +0000ea97: ZF := 0 = #12582750 +0000ea9d: when ~ZF goto %0000e6c9 +000195b3: goto %0000eaa1 + +0000eaa1: +0000eaa7: RAX := pad:64[mem[0x18000803C, el]:u32] +0000eab9: RAX := pad:64[low:32[RAX] | 8] +0000ead7: mem := mem with [0x180008038, el]:u32 <- 3 +0000eae1: mem := mem with [0x18000803C, el]:u32 <- low:32[RAX] +0000eaf3: #12582747 := low:8[R11] & 0x20 +0000eb09: ZF := 0 = #12582747 +0000eb0f: when ZF goto %0000e6c9 +000195b2: goto %0000eb13 + +0000eb13: +0000eb23: RAX := pad:64[low:32[RAX] | 0x20] +0000eb41: mem := mem with [0x180008038, el]:u32 <- 5 +0000eb4b: mem := mem with [0x18000803C, el]:u32 <- low:32[RAX] +0000eb51: RAX := 0xD0030000 +0000eb65: R11 := pad:64[low:32[R11] & 0xD0030000] +0000eb98: #12582743 := low:32[R11] - 0xD0030000 +0000ebb7: ZF := 0 = #12582743 +0000ebbd: when ~ZF goto %0000e6c9 +000195b1: goto %0000ebc1 + +0000ebc1: +0000ebc9: RAX := mem[RSP + 0x20, el]:u64 +0000ebdd: RAX := 63:8[RAX].low:8[RAX] & 0xE0 +0000ec0b: #12582740 := low:8[RAX] - 0xE0 +0000ec27: ZF := 0 = #12582740 +0000ec2d: when ~ZF goto %0000e6c9 +000195b0: goto %0000ec31 + +0000ec31: +0000ec43: mem := + mem with [0x18000803C, el]:u32 <- mem[0x18000803C, el]:u32 | 0x40 +0000ec63: mem := mem with [0x180008038, el]:u32 <- 6 +000195af: goto %0000e6c9 + +0000e6c9: +0000e6d7: RBX := mem[RSP + 0x28, el]:u64 +0000e6e3: RAX := 0 +0000e6ff: RSI := mem[RSP + 0x30, el]:u64 +0000e720: RSP := RSP + 0x10 +0000e74b: RDI := mem[RSP, el]:u64 +0000e74f: RSP := RSP + 8 +0000e75c: #12582756 := mem[RSP, el]:u64 +0000e760: RSP := RSP + 8 +0000e763: call #12582756 with noreturn + +000195c1: sub sub_18000114a(sub_18000114a_result) +0001963a: sub_18000114a_result :: out u32 = low:32[RAX] + +0000f17d: +0000f18c: goto %0000f18a + +0000f18a: +0000f197: mem := mem with [RSP + 8, el]:u64 <- RBX +0000f1a5: #12582700 := RBP +0000f1a9: RSP := RSP - 8 +0000f1af: mem := mem with [RSP, el]:u64 <- #12582700 +0000f1b7: RBP := RSP - 0x4C0 +0000f1d5: RSP := RSP - 0x5C0 +0000f1f9: RBX := pad:64[low:32[RCX]] +0000f1ff: RCX := 0x17 +0000f20d: #12582696 := mem[0x18000A068, el]:u64 +0000f211: RSP := RSP - 8 +0000f216: mem := mem with [RSP, el]:u64 <- 0x180001F0A +0000f219: call #12582696 with return %0000f21b + +0000f21b: +0000f22b: #12582695 := low:32[RAX] +0000f241: ZF := 0 = #12582695 +0000f248: when ZF goto %0000f245 +000195c5: goto %00012aeb + +00012aeb: +00012af1: RCX := pad:64[low:32[RBX]] +00012af5: call @interrupt:#41 with noreturn + +0000f245: +0000f24f: RCX := 3 +0000f25b: RSP := RSP - 8 +0000f260: mem := mem with [RSP, el]:u64 <- 0x180001F1C +0000f262: call @sub_18000112c with return %000123e5 + +000123e5: +000123ef: RDX := 0 +00012409: RCX := RBP - 0x10 +0001240f: R8 := 0x4D0 +0001241a: RSP := RSP - 8 +0001241f: mem := mem with [RSP, el]:u64 <- 0x180001F2D +00012421: call @sub_180002742 with return %00012423 + +00012423: +00012429: RCX := RBP - 0x10 +00012437: #12582344 := mem[0x18000A030, el]:u64 +0001243b: RSP := RSP - 8 +00012440: mem := mem with [RSP, el]:u64 <- 0x180001F37 +00012443: call #12582344 with return %00012445 + +00012445: +0001244d: RBX := mem[RBP + 0xE8, el]:u64 +00012455: RDX := RBP + 0x4D8 +0001245d: RCX := RBX +00012469: R8 := 0 +00012489: #12582343 := mem[0x18000A038, el]:u64 +0001248d: RSP := RSP - 8 +00012492: mem := mem with [RSP, el]:u64 <- 0x180001F51 +00012495: call #12582343 with return %00012497 + +00012497: +000124a7: #12582342 := RAX +000124bd: ZF := 0 = #12582342 +000124c4: when ZF goto %000124c1 +000195c4: goto %00012a2b + +00012a2b: +00012a41: mem := mem with [RSP + 0x38, el]:u64 <- 0 +00012a63: RCX := RBP + 0x4E0 +00012a6d: RDX := mem[RBP + 0x4D8, el]:u64 +00012a75: R9 := RAX +00012a81: mem := mem with [RSP + 0x30, el]:u64 <- RCX +00012a89: R8 := RBX +00012a91: RCX := RBP + 0x4E8 +00012a9d: mem := mem with [RSP + 0x28, el]:u64 <- RCX +00012aa5: RCX := RBP - 0x10 +00012ab1: mem := mem with [RSP + 0x20, el]:u64 <- RCX +00012abd: RCX := 0 +00012add: #12582313 := mem[0x18000A040, el]:u64 +00012ae1: RSP := RSP - 8 +00012ae6: mem := mem with [RSP, el]:u64 <- 0x180001F92 +00012ae9: call #12582313 with return %000124c1 + +000124c1: +000124cf: RAX := mem[RBP + 0x4C8, el]:u64 +000124d7: RCX := RSP + 0x50 +000124e3: mem := mem with [RBP + 0xE8, el]:u64 <- RAX +000124ef: RDX := 0 +00012509: RAX := RBP + 0x4C8 +0001250f: R8 := 0x98 +00012530: RAX := RAX + 8 +0001255b: mem := mem with [RBP + 0x88, el]:u64 <- RAX +00012566: RSP := RSP - 8 +0001256b: mem := mem with [RSP, el]:u64 <- 0x180001FC4 +0001256d: call @sub_180002742 with return %0001256f + +0001256f: +00012577: RAX := mem[RBP + 0x4C8, el]:u64 +00012583: mem := mem with [RSP + 0x60, el]:u64 <- RAX +0001258d: mem := mem with [RSP + 0x50, el]:u32 <- 0x40000015 +00012597: mem := mem with [RSP + 0x54, el]:u32 <- 1 +000125a5: #12582337 := mem[0x18000A048, el]:u64 +000125a9: RSP := RSP - 8 +000125ae: mem := mem with [RSP, el]:u64 <- 0x180001FE6 +000125b1: call #12582337 with return %000125b3 + +000125b3: +000125c9: #12582336 := low:32[RAX] - 1 +000125e5: ZF := 0 = #12582336 +000125ed: RAX := RSP + 0x50 +000125f9: mem := mem with [RSP + 0x40, el]:u64 <- RAX +00012601: RAX := RBP - 0x10 +0001260b: RBX := 63:8[RBX].pad:8[ZF] +00012617: mem := mem with [RSP + 0x48, el]:u64 <- RAX +00012623: RCX := 0 +00012643: #12582334 := mem[0x18000A058, el]:u64 +00012647: RSP := RSP - 8 +0001264c: mem := mem with [RSP, el]:u64 <- 0x180002007 +0001264f: call #12582334 with return %00012651 + +00012651: +00012657: RCX := RSP + 0x40 +00012665: #12582333 := mem[0x18000A050, el]:u64 +00012669: RSP := RSP - 8 +0001266e: mem := mem with [RSP, el]:u64 <- 0x180002012 +00012671: call #12582333 with return %00012673 + +00012673: +00012683: #12582332 := low:32[RAX] +00012699: ZF := 0 = #12582332 +000126a0: when ~ZF goto %0001269d +000195c3: goto %000129e1 + +000129e1: +000129f1: #12582316 := low:8[RBX] +00012a07: ZF := 0 = #12582316 +00012a0d: when ~ZF goto %0001269d +000195c2: goto %00012a11 + +00012a11: +00012a17: RCX := pad:64[low:32[RAX + 3]] +00012a22: RSP := RSP - 8 +00012a27: mem := mem with [RSP, el]:u64 <- 0x180002022 +00012a29: call @sub_18000112c with return %0001269d + +0001269d: +000126ab: RBX := mem[RSP + 0x5D0, el]:u64 +000126cc: RSP := RSP + 0x5C0 +000126f7: RBP := mem[RSP, el]:u64 +000126fb: RSP := RSP + 8 +00012708: #12582327 := mem[RSP, el]:u64 +0001270c: RSP := RSP + 8 +0001270f: call #12582327 with noreturn + +000195c6: sub sub_180001154(sub_180001154_result) +0001963b: sub_180001154_result :: out u32 = low:32[RAX] + +00012afb: +00012afd: goto %00010cd4 + +00010cd4: +00010cf0: RSP := RSP - 0x28 +00010d17: RSP := RSP - 8 +00010d1c: mem := mem with [RSP, el]:u64 <- 0x180001A59 +00010d1e: call @sub_180001087 with return %00010d20 + +00010d20: +00010d30: #12582492 := low:32[RAX] +00010d46: ZF := 0 = #12582492 +00010d4d: when ZF goto %00010d4a +000195ca: goto %00010e0c + +00010e0c: +00010e14: RAX := mem[GS_BASE + 0x30, el]:u64 +00010e1e: RCX := mem[RAX + 8, el]:u64 +00010e23: goto %00010e21 + +00010e21: +00010e2e: RAX := 0 +00010e65: call @intrinsic:x86:lock with return %00010e68 + +00010e68: +00010e69: #12582486 := mem[0x1800081C0, el]:u64 +00010e6e: #12582485 := -#12582486 +00010e8d: ZF := 0 = #12582485 +00010ea1: goto %00010e99 + +00010e99: +00010e9b: when 0 = #12582486 goto %00010e93 +00010e9c: goto %00010e97 + +00010e97: +00010e98: RAX := #12582486 +00010e9e: goto %00010e9a + +00010e93: +00010e94: mem := mem with [0x1800081C0, el]:u64 <- RCX +00010e9d: goto %00010e9a + +00010e9a: +00010ea0: call @intrinsic:x86:unlock with return %00010eab + +00010eab: +00010eb0: when ~ZF goto %00010ead +000195c9: goto %00010d4a + +00010d4a: +00010d5c: RAX := 63:8[RAX].0 +00010d62: ZF := 1 +000195c8: goto %00010d70 + +00010ead: +00010ece: #12582483 := RCX - RAX +00010eed: ZF := 0 = #12582483 +00010ef3: when ZF goto %00010dc4 +000195c7: goto %00010e21 + +00010dc4: +00010dca: RAX := high:56[RAX].1 +00010dce: goto %00010d70 + +00010d70: +00010d8f: RSP := RSP + 0x28 +00010dbb: #12582487 := mem[RSP, el]:u64 +00010dbf: RSP := RSP + 8 +00010dc2: call #12582487 with noreturn + +000195cb: sub sub_180001163(sub_180001163_result) +0001963c: sub_180001163_result :: out u32 = low:32[RAX] + +00012b07: +00012b09: goto %00011c49 + +00011c49: +00011c53: mem := mem with [RSP + 8, el]:u64 <- RBX +00011c5f: mem := mem with [RSP + 0x10, el]:u64 <- RBP +00011c6b: mem := mem with [RSP + 0x18, el]:u64 <- RSI +00011c79: #12582388 := RDI +00011c7d: RSP := RSP - 8 +00011c83: mem := mem with [RSP, el]:u64 <- #12582388 +00011ca1: RSP := RSP - 0x20 +00011cc5: RDI := R9 +00011ccd: RSI := R8 +00011cd5: RBX := pad:64[low:32[RDX]] +00011cdd: RBP := RCX +00011ce8: RSP := RSP - 8 +00011ced: mem := mem with [RSP, el]:u64 <- 0x180001B6C +00011cef: call @sub_180001087 with return %00011cf1 + +00011cf1: +00011d01: #12582384 := low:32[RAX] +00011d17: ZF := 0 = #12582384 +00011d1e: when ~ZF goto %00011d1b +000195cd: goto %00011fa5 + +00011fa5: +00011fbb: #12582365 := low:32[RBX] - 1 +00011fd7: ZF := 0 = #12582365 +00011fdd: when ~ZF goto %00011d1b +000195cc: goto %00011fe1 + +00011fe1: +00011fe7: R8 := RSI +00011ff3: RDX := 0 +0001200d: RCX := RBP +00012015: RAX := RDI +00012023: #12582363 := mem[0x18000B020, el]:u64 +00012027: RSP := RSP - 8 +0001202c: mem := mem with [RSP, el]:u64 <- 0x180001B86 +0001202f: call #12582363 with return %00011d1b + +00011d1b: +00011d29: RDX := mem[RSP + 0x58, el]:u64 +00011d33: RCX := pad:64[mem[RSP + 0x50, el]:u32] +00011d3d: RBX := mem[RSP + 0x30, el]:u64 +00011d47: RBP := mem[RSP + 0x38, el]:u64 +00011d51: RSI := mem[RSP + 0x40, el]:u64 +00011d72: RSP := RSP + 0x20 +00011d9d: RDI := mem[RSP, el]:u64 +00011da1: RSP := RSP + 8 +00011da5: goto %00004def + +00004def: +00004df3: call mem[0x18000A180, el]:u64 with noreturn + +000195ce: sub sub_180001168(sub_180001168_result) +0001963d: sub_180001168_result :: out u32 = low:32[RAX] + +00012b0b: +00012b0d: goto %00011749 + +00011749: +00011755: #12582428 := RBX +00011759: RSP := RSP - 8 +0001175f: mem := mem with [RSP, el]:u64 <- #12582428 +0001177d: RSP := RSP - 0x20 +000117a1: RAX := pad:64[mem[0x1800081C8]] +000117b3: #12582424 := low:32[RCX] +000117c9: ZF := 0 = #12582424 +000117cf: RBX := 1 +000117db: RAX := pad:64[if ZF then 1 else low:32[RAX]] +000117e5: mem := mem with [0x1800081C8] <- low:8[RAX] +000117f1: RSP := RSP - 8 +000117f6: mem := mem with [RSP, el]:u64 <- 0x180001C3A +000117f8: call @sub_180001145 with return %000117fd + +000117fd: +00011807: RSP := RSP - 8 +0001180c: mem := mem with [RSP, el]:u64 <- 0x180001C3F +0001180e: call @sub_18000102d with return %0001181b + +0001181b: +0001182b: #12582422 := low:8[RAX] +00011841: ZF := 0 = #12582422 +00011848: when ~ZF goto %00011845 +000195d1: goto %00012288 + +00011845: +00011855: RSP := RSP - 8 +0001185a: mem := mem with [RSP, el]:u64 <- 0x180001C4C +0001185c: call @sub_180001122 with return %0001216d + +0001216d: +0001217d: #12582356 := low:8[RAX] +00012193: ZF := 0 = #12582356 +0001219a: when ~ZF goto %00012197 +000195d0: goto %00012257 + +00012197: +000121a5: RAX := high:56[RAX].1 +000195cf: goto %000121a7 + +00012257: +00012261: RCX := 0 +0001227e: RSP := RSP - 8 +00012283: mem := mem with [RSP, el]:u64 <- 0x180001C57 +00012285: call @sub_180001046 with return %00012287 + +00012287: +0001228a: goto %00012288 + +00012288: +00012297: RAX := 63:8[RAX].0 +000122ad: goto %000121a7 + +000121a7: +000121c6: RSP := RSP + 0x20 +000121f1: RBX := mem[RSP, el]:u64 +000121f5: RSP := RSP + 8 +00012202: #12582351 := mem[RSP, el]:u64 +00012206: RSP := RSP + 8 +00012209: call #12582351 with noreturn + +000195d2: sub sub_180001177(sub_180001177_result) +0001963e: sub_180001177_result :: out u32 = low:32[RAX] + +00012b17: +00012b19: goto %00011b67 + +00011b67: +00011b83: RSP := RSP - 0x28 +00011baa: RSP := RSP - 8 +00011baf: mem := mem with [RSP, el]:u64 <- 0x180001B35 +00011bb1: call @sub_1800010e1 with return %00011bb3 + +00011bb3: +00011bbd: RSP := RSP - 8 +00011bc2: mem := mem with [RSP, el]:u64 <- 0x180001B3A +00011bc4: call @sub_180001096 with return %00011bd1 + +00011bd1: +00011bd7: RAX := high:56[RAX].1 +00011bf8: RSP := RSP + 0x28 +00011c24: #12582389 := mem[RSP, el]:u64 +00011c28: RSP := RSP + 8 +00011c2b: call #12582389 with noreturn + +000195d3: sub sub_180001181(sub_180001181_result) +0001963f: sub_180001181_result :: out u32 = low:32[RAX] + +00012e03: +00012e11: goto %00011e07 + +00011e07: +00011e23: RSP := RSP - 0x28 +00011e4a: RSP := RSP - 8 +00011e4f: mem := mem with [RSP, el]:u64 <- 0x180001BC9 +00011e51: call @sub_180001087 with return %00011e53 + +00011e53: +00011e63: #12582376 := low:32[RAX] +00011e79: ZF := 0 = #12582376 +00011e80: when ZF goto %00011e7d +000195d5: goto %00011f5b + +00011e7d: +00011e8c: RSP := RSP - 8 +00011e91: mem := mem with [RSP, el]:u64 <- 0x180001BE2 +00011e93: call @sub_180001032 with return %00011e95 + +00011e95: +00011ea5: #12582374 := low:32[RAX] +00011ebb: ZF := 0 = #12582374 +00011ec2: when ~ZF goto %00011ebf +000195d4: goto %00011f49 + +00011f49: +00011f52: RSP := RSP - 8 +00011f57: mem := mem with [RSP, el]:u64 <- 0x180001BEB +00011f59: call @sub_180002784 with return %00011ebf + +00011ebf: +00011ee4: RSP := RSP + 0x28 +00011f10: #12582369 := mem[RSP, el]:u64 +00011f14: RSP := RSP + 8 +00011f17: call #12582369 with noreturn + +00011f5b: +00011f5f: RCX := 0x1800081D0 +00011f80: RSP := RSP + 0x28 +00011fa3: goto %00004e0d + +00004e0d: +00004e11: call mem[0x18000A1A8, el]:u64 with noreturn + +000195d6: sub sub_180001340(sub_180001340_result) +00019640: sub_180001340_result :: out u32 = low:32[RAX] + +00012b20: +00012b3f: RSP := RSP - 0x28 +00012b6d: #12582309 := low:32[RDX] +00012b83: ZF := 0 = #12582309 +00012b8a: when ZF goto %00012b87 +000195e5: goto %00013f69 + +00012b87: +00012b9d: #12582307 := R8 +00012bb3: ZF := 0 = #12582307 +00012bbd: RCX := 63:8[RCX].pad:8[~ZF] +00012bde: RSP := RSP + 0x28 +00012c02: call @sub_180001500 with noreturn + +00013f69: +00013f85: RDX := pad:64[low:32[RDX] - 1] +00013fa1: ZF := 0 = low:32[RDX] +00013fa8: when ZF goto %00013fa5 +000195e4: goto %00013ff7 + +00013fa5: +00013fb1: RDX := R8 +00013fd2: RSP := RSP + 0x28 +00013ff5: goto %0001396f + +0001396f: +00013979: mem := mem with [RSP + 8, el]:u64 <- RBX +00013985: mem := mem with [RSP + 0x10, el]:u64 <- RSI +00013991: mem := mem with [RSP + 0x20, el]:u64 <- RDI +0001399f: #12582260 := R14 +000139a3: RSP := RSP - 8 +000139a9: mem := mem with [RSP, el]:u64 <- #12582260 +000139c7: RSP := RSP - 0x20 +000139eb: RSI := RDX +000139f3: R14 := RCX +000139ff: RCX := 0 +00013a1c: RSP := RSP - 8 +00013a21: mem := mem with [RSP, el]:u64 <- 0x1800013C6 +00013a23: call @sub_180001168 with return %00013a25 + +00013a25: +00013a35: #12582256 := low:8[RAX] +00013a4b: ZF := 0 = #12582256 +00013a52: when ZF goto %00013a4f +000195e3: goto %00013c2b + +00013c2b: +00013c34: RSP := RSP - 8 +00013c39: mem := mem with [RSP, el]:u64 <- 0x1800013D3 +00013c3b: call @sub_180001154 with return %00013c3d + +00013c3d: +00013c45: RBX := high:56[RBX].low:8[RAX] +00013c51: mem := mem with [RSP + 0x40] <- low:8[RAX] +00013c59: RDI := high:56[RDI].1 +00013c71: #12582250 := mem[0x1800081B8, el]:u32 +00013c8d: ZF := 0 = #12582250 +00013c93: when ~ZF goto %00013af5 +000195e2: goto %00013c97 + +00013af5: +00013af9: RCX := 7 +00013b04: RSP := RSP - 8 +00013b09: mem := mem with [RSP, el]:u64 <- 0x1800014B8 +00013b0b: call @sub_18000114a with return %00013b0d + +00013b0d: +00013b11: call @interrupt:#3 with noreturn + +00013b13: +00013b15: call @interrupt:#3 with noreturn + +00013b17: +00013b19: call @interrupt:#3 with noreturn + +00013b1b: +00013b1d: call @interrupt:#3 with noreturn + +00013b1f: +00013b21: call @interrupt:#3 with noreturn + +00013b23: +00013b25: call @interrupt:#3 with noreturn + +00013b27: +00013b29: call @interrupt:#3 with noreturn + +00013b2b: +00013b2d: call @interrupt:#3 with noreturn + +00013b2f: +00013b31: call @interrupt:#3 with noreturn + +00013b33: +00013b35: call @interrupt:#3 with noreturn + +00013b37: +00013b39: call @interrupt:#3 with noreturn + +00013b3b: +00013b3d: call @interrupt:#3 with noreturn + +00013b3f: +00013b41: call @interrupt:#3 with noreturn + +00013b43: +00013b45: call @interrupt:#3 with noreturn + +00013b47: +00013b49: call @interrupt:#3 with noreturn + +00013b4b: +00013b4d: call @interrupt:#3 with noreturn + +00013b4f: +00013b51: call @interrupt:#3 with noreturn + +00013b53: +00013b55: call @interrupt:#3 with noreturn + +00013b57: +00013b59: call @interrupt:#3 with noreturn + +00013b5b: +00013b5d: call @interrupt:#3 with noreturn + +00013b5f: +00013b61: call @interrupt:#3 with noreturn + +00013b63: +00013b65: call @interrupt:#3 with noreturn + +00013b67: +00013b69: call @interrupt:#3 with noreturn + +00013b6b: +00013b6d: call @interrupt:#3 with noreturn + +00013b6f: +00013b71: call @interrupt:#3 with noreturn + +00013b73: +00013b75: call @interrupt:#3 with noreturn + +00013b77: +00013b79: call @interrupt:#3 with noreturn + +00013b7b: +00013b7d: call @interrupt:#3 with noreturn + +00013b7f: +00013b81: call @interrupt:#3 with noreturn + +00013b83: +00013b85: call @interrupt:#3 with noreturn + +00013b87: +00013b89: call @interrupt:#3 with noreturn + +00013b8b: +00013b8d: call @interrupt:#3 with noreturn + +00013b8f: +00013b91: call @interrupt:#3 with noreturn + +00013b93: +00013b95: call @interrupt:#3 with noreturn + +00013b97: +00013b99: call @interrupt:#3 with noreturn + +00013b9b: +00013b9d: call @interrupt:#3 with noreturn + +00013b9f: +00013ba1: call @interrupt:#3 with noreturn + +00013ba3: +00013ba5: call @interrupt:#3 with noreturn + +00013ba7: +00013ba9: call @interrupt:#3 with noreturn + +00013bab: +00013bad: call @interrupt:#3 with noreturn + +00013baf: +00013bb1: call @interrupt:#3 with noreturn + +00013bb3: +00013bb5: call @interrupt:#3 with noreturn + +00013bb7: +00013bb9: call @interrupt:#3 with noreturn + +00013bbb: +00013bbd: call @interrupt:#3 with noreturn + +00013bbf: +00013bc1: call @interrupt:#3 with noreturn + +00013bc3: +00013bc5: call @interrupt:#3 with noreturn + +00013bc7: +00013bc9: call @interrupt:#3 with noreturn + +00013bcb: +00013bcd: call @interrupt:#3 with noreturn + +00013bcf: +00013bd1: call @interrupt:#3 with noreturn + +00013bd3: +00013bd5: call @interrupt:#3 with noreturn + +00013bd7: +00013bd9: call @interrupt:#3 with noreturn + +00013bdb: +00013bdd: call @interrupt:#3 with noreturn + +00013bdf: +00013be1: call @interrupt:#3 with noreturn + +00013be3: +00013be5: call @interrupt:#3 with noreturn + +00013be7: +00013be9: call @interrupt:#3 with noreturn + +00013beb: +00013bed: call @interrupt:#3 with noreturn + +00013bef: +00013bf1: call @interrupt:#3 with noreturn + +00013bf3: +00013bf5: call @interrupt:#3 with noreturn + +00013bf7: +00013bf9: call @interrupt:#3 with noreturn + +00013bfb: +00013bfd: call @interrupt:#3 with noreturn + +00013bff: +00013c01: call @interrupt:#3 with noreturn + +00013c03: +00013c05: call @interrupt:#3 with noreturn + +00013c07: +00013c09: call @interrupt:#3 with noreturn + +00013c0b: +00013c0d: call @interrupt:#3 with noreturn + +00013c0f: +00013c11: call @interrupt:#3 with noreturn + +00013c13: +00013c15: call @interrupt:#3 with noreturn + +00013c17: +00013c19: call @interrupt:#3 with noreturn + +00013c1b: +00013c1d: call @interrupt:#3 with noreturn + +00013c1f: +00013c21: call @interrupt:#3 with noreturn + +00013c23: +00013c25: call @interrupt:#3 with noreturn + +00013c27: +00013c29: call @interrupt:#3 with noreturn + +00013c97: +00013c9d: mem := mem with [0x1800081B8, el]:u32 <- 1 +00013ca8: RSP := RSP - 8 +00013cad: mem := mem with [RSP, el]:u64 <- 0x1800013F8 +00013caf: call @sub_180001019 with return %00013cb1 + +00013cb1: +00013cc1: #12582248 := low:8[RAX] +00013cd7: ZF := 0 = #12582248 +00013cde: when ZF goto %00013cdb +000195e0: goto %00013e5d + +00013e5d: +00013e66: RSP := RSP - 8 +00013e6b: mem := mem with [RSP, el]:u64 <- 0x180001401 +00013e6d: call @sub_1800010cd with return %00013e6f + +00013e6f: +00013e78: RSP := RSP - 8 +00013e7d: mem := mem with [RSP, el]:u64 <- 0x180001406 +00013e7f: call @sub_180001041 with return %00013e81 + +00013e81: +00013e8a: RSP := RSP - 8 +00013e8f: mem := mem with [RSP, el]:u64 <- 0x18000140B +00013e91: call @sub_180001127 with return %00013e93 + +00013e93: +00013e97: RDX := 0x180006330 +00013e9d: RCX := 0x180006220 +00013ea8: RSP := RSP - 8 +00013ead: mem := mem with [RSP, el]:u64 <- 0x18000141E +00013eaf: call @sub_18000274e with return %00013eb1 + +00013eb1: +00013ec1: #12582237 := low:32[RAX] +00013ed7: ZF := 0 = #12582237 +00013edd: when ~ZF goto %00013cdb +000195df: goto %00013ee1 + +00013ee1: +00013eea: RSP := RSP - 8 +00013eef: mem := mem with [RSP, el]:u64 <- 0x180001427 +00013ef1: call @sub_18000113b with return %00013ef3 + +00013ef3: +00013f03: #12582235 := low:8[RAX] +00013f19: ZF := 0 = #12582235 +00013f1f: when ZF goto %00013cdb +000195de: goto %00013f23 + +00013f23: +00013f27: RDX := 0x180006110 +00013f2d: RCX := 0x180006000 +00013f38: RSP := RSP - 8 +00013f3d: mem := mem with [RSP, el]:u64 <- 0x18000143E +00013f3f: call @sub_180002748 with return %00013f41 + +00013f41: +00013f47: mem := mem with [0x1800081B8, el]:u32 <- 2 +00013f55: RDI := 63:8[RDI].0 +000195dd: goto %00013cdb + +00013cdb: +00013ce9: RCX := high:56[RCX].low:8[RBX] +00013cf4: RSP := RSP - 8 +00013cf9: mem := mem with [RSP, el]:u64 <- 0x180001452 +00013cfb: call @sub_180001140 with return %00013cfd + +00013cfd: +00013d0d: #12582246 := low:8[RDI] +00013d23: ZF := 0 = #12582246 +00013d29: when ~ZF goto %00013a4f +000195dc: goto %00013d2d + +00013a4f: +00013a5f: RAX := 0 +000195db: goto %00013a73 + +00013d2d: +00013d36: RSP := RSP - 8 +00013d3b: mem := mem with [RSP, el]:u64 <- 0x18000145C +00013d3d: call @sub_180001109 with return %00013d3f + +00013d3f: +00013d45: RBX := RAX +00013d63: #12582244 := mem[RAX, el]:u64 +00013d83: ZF := 0 = #12582244 +00013d8a: when ZF goto %00013d87 +000195da: goto %00013dd1 + +00013dd1: +00013dd7: RCX := RAX +00013de2: RSP := RSP - 8 +00013de7: mem := mem with [RSP, el]:u64 <- 0x18000146D +00013de9: call @sub_18000108c with return %00013deb + +00013deb: +00013dfb: #12582240 := low:8[RAX] +00013e11: ZF := 0 = #12582240 +00013e17: when ZF goto %00013d87 +000195d9: goto %00013e1b + +00013e1b: +00013e21: R8 := RSI +00013e27: RDX := 2 +00013e2f: RCX := R14 +00013e39: RAX := mem[RBX, el]:u64 +00013e41: R9 := mem[0x18000B020, el]:u64 +00013e4f: #12582238 := R9 +00013e53: RSP := RSP - 8 +00013e58: mem := mem with [RSP, el]:u64 <- 0x180001489 +00013e5b: call #12582238 with return %00013d87 + +00013d87: +00013dab: mem := + mem with [0x180008170, el]:u32 <- mem[0x180008170, el]:u32 + 1 +00013dcb: RAX := 1 +00013dcf: goto %00013a73 + +00013a73: +00013a7b: RBX := mem[RSP + 0x30, el]:u64 +00013a85: RSI := mem[RSP + 0x38, el]:u64 +00013a8f: RDI := mem[RSP + 0x48, el]:u64 +00013ab0: RSP := RSP + 0x20 +00013adb: R14 := mem[RSP, el]:u64 +00013adf: RSP := RSP + 8 +00013aec: #12582251 := mem[RSP, el]:u64 +00013af0: RSP := RSP + 8 +00013af3: call #12582251 with noreturn + +00013ff7: +00014013: RDX := pad:64[low:32[RDX] - 1] +0001402f: ZF := 0 = low:32[RDX] +00014036: when ZF goto %00014033 +000195d8: goto %000140a7 + +00014033: +00014042: RSP := RSP - 8 +00014047: mem := mem with [RSP, el]:u64 <- 0x18000136D +00014049: call @sub_18000111d with return %0001404b + +000140a7: +000140bd: #12582220 := low:32[RDX] - 1 +000140d9: ZF := 0 = #12582220 +000140e0: when ZF goto %000140dd +000195d7: goto %000140f9 + +000140dd: +000140ec: RSP := RSP - 8 +000140f1: mem := mem with [RSP, el]:u64 <- 0x180001366 +000140f3: call @sub_180001177 with return %000140f5 + +000140f5: +000140f7: goto %0001404b + +0001404b: +00014051: RAX := pad:64[low:8[RAX]] +00014072: RSP := RSP + 0x28 +0001409e: #12582221 := mem[RSP, el]:u64 +000140a2: RSP := RSP + 8 +000140a5: call #12582221 with noreturn + +000140f9: +000140fd: RAX := 1 +0001411e: RSP := RSP + 0x28 +0001414a: #12582215 := mem[RSP, el]:u64 +0001414e: RSP := RSP + 8 +00014151: call #12582215 with noreturn + +000195e6: sub sub_180001500(sub_180001500_result) +00019641: sub_180001500_result :: out u32 = low:32[RAX] + +00012c00: +00012c0d: mem := mem with [RSP + 8, el]:u64 <- RBX +00012c1b: #12582302 := RDI +00012c1f: RSP := RSP - 8 +00012c25: mem := mem with [RSP, el]:u64 <- #12582302 +00012c43: RSP := RSP - 0x30 +00012c69: RDI := high:56[RDI].low:8[RCX] +00012c71: RAX := pad:64[mem[0x180008170, el]:u32] +00012c83: #12582298 := low:32[RAX] +00012c95: SF := high:1[#12582298] +00012c99: ZF := 0 = #12582298 +00012ca8: when ~(ZF | SF) goto %00012ca1 +000195ea: goto %00013901 + +00012ca1: +00012cc5: RAX := pad:64[low:32[RAX] - 1] +00012ce7: mem := mem with [0x180008170, el]:u32 <- low:32[RAX] +00012cf2: RSP := RSP - 8 +00012cf7: mem := mem with [RSP, el]:u64 <- 0x180001531 +00012cf9: call @sub_180001154 with return %00012cfb + +00012cfb: +00012d03: RBX := high:56[RBX].low:8[RAX] +00012d0f: mem := mem with [RSP + 0x20] <- low:8[RAX] +00012d27: #12582294 := mem[0x1800081B8, el]:u32 - 2 +00012d43: ZF := 0 = #12582294 +00012d4a: when ~ZF goto %00012d47 +000195e9: goto %00012dfd + +00012d47: +00012d51: RCX := 7 +00012d5c: RSP := RSP - 8 +00012d61: mem := mem with [RSP, el]:u64 <- 0x180001581 +00012d63: call @sub_18000114a with return %00012d65 + +00012d65: +00012d6b: call @interrupt:#3 with noreturn + +00012d6d: +00012d6f: call @interrupt:#3 with noreturn + +00012d71: +00012d73: call @interrupt:#3 with noreturn + +00012d75: +00012d77: call @interrupt:#3 with noreturn + +00012d79: +00012d7b: call @interrupt:#3 with noreturn + +00012d7d: +00012d7f: call @interrupt:#3 with noreturn + +00012d81: +00012d83: call @interrupt:#3 with noreturn + +00012d85: +00012d87: call @interrupt:#3 with noreturn + +00012d89: +00012d8b: call @interrupt:#3 with noreturn + +00012d8d: +00012d8f: call @interrupt:#3 with noreturn + +00012d91: +00012d93: call @interrupt:#3 with noreturn + +00012d95: +00012d97: call @interrupt:#3 with noreturn + +00012d99: +00012d9b: call @interrupt:#3 with noreturn + +00012d9d: +00012d9f: call @interrupt:#3 with noreturn + +00012da1: +00012da3: call @interrupt:#3 with noreturn + +00012da5: +00012da7: call @interrupt:#3 with noreturn + +00012da9: +00012dab: call @interrupt:#3 with noreturn + +00012dad: +00012daf: call @interrupt:#3 with noreturn + +00012db1: +00012db3: call @interrupt:#3 with noreturn + +00012db5: +00012db7: call @interrupt:#3 with noreturn + +00012db9: +00012dbb: call @interrupt:#3 with noreturn + +00012dbd: +00012dbf: call @interrupt:#3 with noreturn + +00012dc1: +00012dc3: call @interrupt:#3 with noreturn + +00012dc5: +00012dc7: call @interrupt:#3 with noreturn + +00012dc9: +00012dcb: call @interrupt:#3 with noreturn + +00012dcd: +00012dcf: call @interrupt:#3 with noreturn + +00012dd1: +00012dd3: call @interrupt:#3 with noreturn + +00012dd5: +00012dd7: call @interrupt:#3 with noreturn + +00012dd9: +00012ddb: call @interrupt:#3 with noreturn + +00012ddd: +00012ddf: call @interrupt:#3 with noreturn + +00012de1: +00012de3: call @interrupt:#3 with noreturn + +00012de5: +00012de7: call @interrupt:#3 with noreturn + +00012de9: +00012deb: call @interrupt:#3 with noreturn + +00012ded: +00012def: call @interrupt:#3 with noreturn + +00012df1: +00012df3: call @interrupt:#3 with noreturn + +00012df5: +00012df7: call @interrupt:#3 with noreturn + +00012df9: +00012dfb: call @interrupt:#3 with noreturn + +00012dfd: +00012e07: RSP := RSP - 8 +00012e0c: mem := mem with [RSP, el]:u64 <- 0x180001545 +00012e0e: call @sub_180001181 with return %0001358f + +0001358f: +00013598: RSP := RSP - 8 +0001359d: mem := mem with [RSP, el]:u64 <- 0x18000154A +0001359f: call @sub_18000110e with return %000135a1 + +000135a1: +000135aa: RSP := RSP - 8 +000135af: mem := mem with [RSP, el]:u64 <- 0x18000154F +000135b1: call @sub_1800010d7 with return %000135b3 + +000135b3: +000135c3: mem := mem with [0x1800081B8, el]:u32 <- 0 +000135e3: RCX := high:56[RCX].low:8[RBX] +000135ee: RSP := RSP - 8 +000135f3: mem := mem with [RSP, el]:u64 <- 0x18000155D +000135f5: call @sub_180001140 with return %000135f7 + +000135f7: +00013601: RDX := 0 +0001361d: RCX := high:56[RCX].low:8[RDI] +00013629: RSP := RSP - 8 +0001362e: mem := mem with [RSP, el]:u64 <- 0x180001567 +00013630: call @sub_180001082 with return %000137c3 + +000137c3: +000137da: #12582270 := low:8[RAX] +000137df: RAX := 63:8[RAX].-low:8[RAX] +000137e3: CF := #12582270 <> 0 +0001381e: #12582268 := low:32[RBX] +00013822: #12582267 := low:32[RBX] +00013828: RBX := pad:64[#12582267 - #12582268 + pad:32[CF]] +0001385d: RBX := pad:64[low:32[RBX] & 1] +0001387e: RSP := RSP - 8 +00013883: mem := mem with [RSP, el]:u64 <- 0x180001573 +00013885: call @sub_180001118 with return %00013887 + +00013887: +0001388d: RAX := pad:64[low:32[RBX]] +00013892: goto %00013890 + +00013901: +0001390b: RAX := 0 +000195e7: goto %00013890 + +00013890: +0001389b: RBX := mem[RSP + 0x40, el]:u64 +000138bc: RSP := RSP + 0x30 +000138e7: RDI := mem[RSP, el]:u64 +000138eb: RSP := RSP + 8 +000138f8: #12582261 := mem[RSP, el]:u64 +000138fc: RSP := RSP + 8 +000138ff: call #12582261 with noreturn + +000195eb: sub sub_1800015a8(sub_1800015a8_result) +00019642: sub_1800015a8_result :: out u32 = low:32[RAX] + +00004b2f: +00004b38: RAX := RSP +00004b44: mem := mem with [RAX + 0x20, el]:u64 <- RBX +00004b50: mem := mem with [RAX + 0x18, el]:u64 <- R8 +00004b5c: mem := mem with [RAX + 0x10, el]:u32 <- low:32[RDX] +00004b68: mem := mem with [RAX + 8, el]:u64 <- RCX +00004b76: #12582902 := RSI +00004b7a: RSP := RSP - 8 +00004b80: mem := mem with [RSP, el]:u64 <- #12582902 +00004b8e: #12582901 := RDI +00004b92: RSP := RSP - 8 +00004b98: mem := mem with [RSP, el]:u64 <- #12582901 +00004ba6: #12582900 := R14 +00004baa: RSP := RSP - 8 +00004bb0: mem := mem with [RSP, el]:u64 <- #12582900 +00004bce: RSP := RSP - 0x40 +00004bf2: RSI := R8 +00004bfa: RDI := pad:64[low:32[RDX]] +00004c02: R14 := RCX +00004c14: #12582896 := low:32[RDX] +00004c2a: ZF := 0 = #12582896 +00004c31: when ~ZF goto %00004c2e +000195fa: goto %00019147 + +00019147: +00019162: #12582119 := mem[0x180008170, el]:u32 - low:32[RDX] +0001916e: OF := high:1[(mem[0x180008170, el]:u32 ^ low:32[RDX]) & + (mem[0x180008170, el]:u32 ^ #12582119)] +0001917d: SF := high:1[#12582119] +00019181: ZF := 0 = #12582119 +0001918f: when ~(ZF | (SF | OF) & ~(SF & OF)) goto %00004c2e +000195f9: goto %00019193 + +00004c2e: +00004c3a: RAX := pad:64[low:32[RDX - 1]] +00004c52: #12582894 := low:32[RAX] - 1 +00004c56: CF := low:32[RAX] < 1 +00004c6e: ZF := 0 = #12582894 +00004c77: when ~(CF | ZF) goto %00004c73 +000195f8: goto %00019035 + +00019035: +0001903b: RAX := mem[0x180006880, el]:u64 +0001904d: #12582126 := RAX +00019063: ZF := 0 = #12582126 +0001906a: when ~ZF goto %00019067 +000195f7: goto %00019139 + +00019067: +00019079: #12582124 := mem[0x18000B020, el]:u64 +0001907d: RSP := RSP - 8 +00019082: mem := mem with [RSP, el]:u64 <- 0x180001601 +00019085: call #12582124 with return %00019087 + +00019087: +0001908d: RBX := pad:64[low:32[RAX]] +00019099: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +000190ab: #12582123 := low:32[RAX] +000190c1: ZF := 0 = #12582123 +000190c7: when ZF goto %00018bb5 +000195f6: goto %000190cb + +00019139: +00019141: mem := mem with [RSP + 0x30, el]:u32 <- 1 +00019145: goto %000190cb + +000190cb: +000190d1: R8 := RSI +000190d9: RDX := pad:64[low:32[RDI]] +000190e1: RCX := R14 +000190ec: RSP := RSP - 8 +000190f1: mem := mem with [RSP, el]:u64 <- 0x18000161C +000190f3: call @sub_180001340 with return %000190f5 + +000190f5: +000190fb: RBX := pad:64[low:32[RAX]] +00019107: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +00019119: #12582121 := low:32[RAX] +0001912f: ZF := 0 = #12582121 +00019135: when ZF goto %00018bb5 +000195f5: goto %00004c73 + +00004c73: +00004c80: R8 := RSI +00004c88: RDX := pad:64[low:32[RDI]] +00004c90: RCX := R14 +00004c9c: RSP := RSP - 8 +00004ca1: mem := mem with [RSP, el]:u64 <- 0x180001637 +00004ca3: call @sub_1800010b4 with return %00018acd + +00018acd: +00018ad3: RBX := pad:64[low:32[RAX]] +00018adf: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +00018af7: #12582151 := low:32[RDI] - 1 +00018b13: ZF := 0 = #12582151 +00018b1a: when ~ZF goto %00018b17 +000195f4: goto %00018f01 + +00018f01: +00018f11: #12582133 := low:32[RAX] +00018f27: ZF := 0 = #12582133 +00018f2d: when ~ZF goto %00018b17 +000195f3: goto %00018f31 + +00018f31: +00018f37: R8 := RSI +00018f43: RDX := 0 +00018f5d: RCX := R14 +00018f68: RSP := RSP - 8 +00018f6d: mem := mem with [RSP, el]:u64 <- 0x180001653 +00018f6f: call @sub_1800010b4 with return %00018f71 + +00018f71: +00018f81: #12582131 := RSI +00018f97: ZF := 0 = #12582131 +00018fa1: RCX := 63:8[RCX].pad:8[~ZF] +00018fac: RSP := RSP - 8 +00018fb1: mem := mem with [RSP, el]:u64 <- 0x18000165E +00018fb3: call @sub_180001500 with return %00018fb5 + +00018fb5: +00018fbb: RAX := mem[0x180006880, el]:u64 +00018fcd: #12582129 := RAX +00018fe3: ZF := 0 = #12582129 +00018fe9: when ZF goto %00018b17 +000195f2: goto %00018fed + +00018fed: +00018ff3: R8 := RSI +00018fff: RDX := 0 +00019019: RCX := R14 +00019027: #12582127 := mem[0x18000B020, el]:u64 +0001902b: RSP := RSP - 8 +00019030: mem := mem with [RSP, el]:u64 <- 0x180001678 +00019033: call #12582127 with return %00018b17 + +00018b17: +00018b2d: #12582149 := low:32[RDI] +00018b43: ZF := 0 = #12582149 +00018b4a: when ZF goto %00018b47 +000195f1: goto %00018ec5 + +00018ec5: +00018edb: #12582135 := low:32[RDI] - 3 +00018ef7: ZF := 0 = #12582135 +00018efd: when ~ZF goto %00018bb5 +000195f0: goto %00018b47 + +00018b47: +00018b53: R8 := RSI +00018b5b: RDX := pad:64[low:32[RDI]] +00018b63: RCX := R14 +00018b6e: RSP := RSP - 8 +00018b73: mem := mem with [RSP, el]:u64 <- 0x18000168E +00018b75: call @sub_180001340 with return %00018b77 + +00018b77: +00018b7d: RBX := pad:64[low:32[RAX]] +00018b89: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +00018b9b: #12582147 := low:32[RAX] +00018bb1: ZF := 0 = #12582147 +00018bb8: when ZF goto %00018bb5 +000195ef: goto %00018e2f + +00018e2f: +00018e35: RAX := mem[0x180006880, el]:u64 +00018e47: #12582138 := RAX +00018e5d: ZF := 0 = #12582138 +00018e64: when ~ZF goto %00018e61 +000195ee: goto %00018ead + +00018e61: +00018e6d: R8 := RSI +00018e75: RDX := pad:64[low:32[RDI]] +00018e7d: RCX := R14 +00018e8b: #12582136 := mem[0x18000B020, el]:u64 +00018e8f: RSP := RSP - 8 +00018e94: mem := mem with [RSP, el]:u64 <- 0x1800016BB +00018e97: call #12582136 with return %00018e99 + +00018e99: +00018e9f: RBX := pad:64[low:32[RAX]] +00018eab: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +000195ed: goto %00018bb5 + +00018ead: +00018eb3: RBX := pad:64[low:32[RAX + 1]] +00018ebf: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RBX] +00018ec3: goto %00018bb5 + +00018bb5: +00018bbe: goto %00018bbc + +00018bbc: +00018bc5: RAX := pad:64[low:32[RBX]] +000195ec: goto %00018bc7 + +00019193: +0001919d: RAX := 0 +000191b3: goto %00018bc7 + +00018bc7: +00018bcf: RBX := mem[RSP + 0x78, el]:u64 +00018bf0: RSP := RSP + 0x40 +00018c1b: R14 := mem[RSP, el]:u64 +00018c1f: RSP := RSP + 8 +00018c2b: RDI := mem[RSP, el]:u64 +00018c2f: RSP := RSP + 8 +00018c3b: RSI := mem[RSP, el]:u64 +00018c3f: RSP := RSP + 8 +00018c4c: #12582142 := mem[RSP, el]:u64 +00018c50: RSP := RSP + 8 +00018c53: call #12582142 with noreturn + +000195fb: sub sub_180001d24(sub_180001d24_result) +00019643: sub_180001d24_result :: out u32 = low:32[RAX] + +0000d6f6: +0000d715: RSP := RSP - 0x18 +0000d739: R8 := RCX +0000d73f: RAX := 0x5A4D +0000d75c: #12582860 := mem[0x180000000, el]:u16 - 0x5A4D +0000d77b: ZF := 0 = #12582860 +0000d782: when ~ZF goto %0000d77f +00019605: goto %0000d8bd + +0000d8bd: +0000d8c3: RCX := extend:64[mem[0x18000003C, el]:u32] +0000d8c9: RDX := 0x180000000 +0000d8f4: RCX := RCX + 0x180000000 +0000d933: #12582851 := mem[RCX, el]:u32 - 0x4550 +0000d953: ZF := 0 = #12582851 +0000d959: when ~ZF goto %0000d77f +00019604: goto %0000d95d + +0000d95d: +0000d961: RAX := 0x20B +0000d984: #12582849 := mem[RCX + 0x18, el]:u16 - 0x20B +0000d9a7: ZF := 0 = #12582849 +0000d9ad: when ~ZF goto %0000d77f +00019603: goto %0000d9b1 + +0000d77f: +0000d791: RAX := 63:8[RAX].0 +0000d7a8: goto %0000d7a6 + +0000d9b1: +0000d9d8: R8 := R8 - 0x180000000 +0000da01: RDX := pad:64[mem[RCX + 0x14, el]:u16] +0000da22: RDX := RDX + 0x18 +0000da67: #12582840 := RCX +0000da6c: RDX := RDX + #12582840 +0000da97: RAX := pad:64[mem[RCX + 6, el]:u16] +0000daa1: RCX := RAX + (RAX << 2) +0000daab: R9 := RDX + (RCX << 3) +00019602: goto %0000daad + +0000daad: +0000dab7: mem := mem with [RSP, el]:u64 <- RDX +0000dad4: #12582838 := RDX - R9 +0000daf3: ZF := 0 = #12582838 +0000dafa: when ZF goto %0000daf7 +00019601: goto %0000dbeb + +0000daf7: +0000db07: RDX := 0 +00019600: goto %0000db1b + +0000dbeb: +0000dbf3: RCX := pad:64[mem[RDX + 0xC, el]:u32] +0000dc15: CF := R8 < RCX +0000dc36: when CF goto %0000dc33 +000195ff: goto %0000dc7d + +0000dc7d: +0000dc85: RAX := pad:64[mem[RDX + 8, el]:u32] +0000dcab: #12582826 := low:32[RCX] +0000dcb0: RAX := pad:64[low:32[RAX] + #12582826] +0000dcf3: CF := R8 < RAX +0000dd13: when CF goto %0000db1b +000195fe: goto %0000dc33 + +0000db1b: +0000db2b: #12582836 := RDX +0000db41: ZF := 0 = #12582836 +0000db48: when ~ZF goto %0000db45 +000195fd: goto %0000dbc7 + +0000db45: +0000db67: #12582834 := mem[RDX + 0x24, el]:u32 +0000db74: OF := high:1[mem[RDX + 0x24, el]:u32 & + (mem[RDX + 0x24, el]:u32 ^ #12582834)] +0000db83: SF := high:1[#12582834] +0000db94: when ~((SF | OF) & ~(SF & OF)) goto %0000db8e +000195fc: goto %0000dba3 + +0000db8e: +0000db9d: RAX := high:56[RAX].1 +0000dba1: goto %0000d7a6 + +0000dba3: +0000dbaf: RAX := 63:8[RAX].0 +0000dbc5: goto %0000d7a6 + +0000dbc7: +0000dbd3: RAX := 63:8[RAX].0 +0000dbe9: goto %0000d7a6 + +0000d7a6: +0000d7c8: RSP := RSP + 0x18 +0000d7f4: #12582855 := mem[RSP, el]:u64 +0000d7f8: RSP := RSP + 8 +0000d7fb: call #12582855 with noreturn + +0000dc33: +0000dc58: RDX := RDX + 0x28 +0000dc7b: goto %0000daad + +00019606: sub sub_180002736(sub_180002736_result) +00019644: sub_180002736_result :: out u32 = low:32[RAX] + +00004dd1: +00004dd5: call mem[0x18000A0F8, el]:u64 with noreturn + +00019607: sub sub_18000273c(sub_18000273c_result) +00019645: sub_18000273c_result :: out u32 = low:32[RAX] + +00004dd7: +00004ddb: call mem[0x18000A100, el]:u64 with noreturn + +00019608: sub sub_180002742(sub_180002742_result) +00019646: sub_180002742_result :: out u32 = low:32[RAX] + +00004ddd: +00004de1: call mem[0x18000A108, el]:u64 with noreturn + +00019609: sub sub_180002748(sub_180002748_result) +00019647: sub_180002748_result :: out u32 = low:32[RAX] + +00004de3: +00004de7: call mem[0x18000A1A0, el]:u64 with noreturn + +0001960a: sub sub_18000274e(sub_18000274e_result) +00019648: sub_18000274e_result :: out u32 = low:32[RAX] + +00004de9: +00004ded: call mem[0x18000A178, el]:u64 with noreturn + +0001960b: sub sub_18000275a(sub_18000275a_result) +00019649: sub_18000275a_result :: out u32 = low:32[RAX] + +00004df5: +00004df9: call mem[0x18000A188, el]:u64 with noreturn + +0001960c: sub sub_180002760(sub_180002760_result) +0001964a: sub_180002760_result :: out u32 = low:32[RAX] + +00004dfb: +00004dff: call mem[0x18000A190, el]:u64 with noreturn + +0001960d: sub sub_180002766(sub_180002766_result) +0001964b: sub_180002766_result :: out u32 = low:32[RAX] + +00004e01: +00004e05: call mem[0x18000A198, el]:u64 with noreturn + +0001960e: sub sub_18000276c(sub_18000276c_result) +0001964c: sub_18000276c_result :: out u32 = low:32[RAX] + +00004e07: +00004e0b: call mem[0x18000A1D0, el]:u64 with noreturn + +0001960f: sub sub_180002778(sub_180002778_result) +0001964d: sub_180002778_result :: out u32 = low:32[RAX] + +00004e13: +00004e17: call mem[0x18000A1B0, el]:u64 with noreturn + +00019610: sub sub_180002784(sub_180002784_result) +0001964e: sub_180002784_result :: out u32 = low:32[RAX] + +00004e1f: +00004e23: call mem[0x18000A1C0, el]:u64 with noreturn + +00019611: sub sub_18000278a(sub_18000278a_result) +0001964f: sub_18000278a_result :: out u32 = low:32[RAX] + +00004e25: +00004e29: call mem[0x18000A1C8, el]:u64 with noreturn + +00019612: sub sub_180002790(sub_180002790_result) +00019650: sub_180002790_result :: out u32 = low:32[RAX] + +00004e2b: +00004e31: RAX := high:56[RAX].1 +00004e3e: #12582883 := mem[RSP, el]:u64 +00004e42: RSP := RSP + 8 +00004e45: call #12582883 with noreturn + +00019613: sub sub_180002794(sub_180002794_result) +00019651: sub_180002794_result :: out u32 = low:32[RAX] + +00004e4b: +00004e51: RAX := high:56[RAX].1 +00004e5e: #12582882 := mem[RSP, el]:u64 +00004e62: RSP := RSP + 8 +00004e65: call #12582882 with noreturn + +00019614: sub sub_180002798(sub_180002798_result) +00019652: sub_180002798_result :: out u32 = low:32[RAX] + +00004e6b: +00004e71: RAX := high:56[RAX].1 +00004e7e: #12582881 := mem[RSP, el]:u64 +00004e82: RSP := RSP + 8 +00004e85: call #12582881 with noreturn + +00019615: sub sub_18000279c(sub_18000279c_result) +00019653: sub_18000279c_result :: out u32 = low:32[RAX] + +00004e8b: +00004e91: RAX := high:56[RAX].1 +00004e9e: #12582880 := mem[RSP, el]:u64 +00004ea2: RSP := RSP + 8 +00004ea5: call #12582880 with noreturn + +00019616: sub sub_1800027a0(sub_1800027a0_result) +00019654: sub_1800027a0_result :: out u32 = low:32[RAX] + +00004eab: +00004eb1: RAX := high:56[RAX].1 +00004ebe: #12582879 := mem[RSP, el]:u64 +00004ec2: RSP := RSP + 8 +00004ec5: call #12582879 with noreturn + +00010e43: sub intrinsic:x86:lock() + + +00010e63: sub intrinsic:x86:unlock() + + +00004d79: sub interrupt:#3(interrupt:#3_result) +00019655: interrupt:#3_result :: out u32 = low:32[RAX] + +0000f688: sub interrupt:#41(interrupt:#41_result) +00019656: interrupt:#41_result :: out u32 = low:32[RAX]