diff --git a/BCB/Cheang et al/Figure 3d/Figure_3d.bir b/BCB/Cheang et al/Figure 3d/Figure_3d.bir new file mode 100644 index 0000000000000000000000000000000000000000..2e2dc5845b381d3050bb75fc0f4c12fb6beb9283 --- /dev/null +++ b/BCB/Cheang et al/Figure 3d/Figure_3d.bir @@ -0,0 +1,3066 @@ +000194f8: program +000194f9: sub foo(foo_result) +000195a6: foo_result :: out u32 = low:32[RAX] + +0001434a: +0001434c: goto %000133db + +000133db: +000133e1: RAX := pad:64[mem[0x180008223]] +00013403: CF := low:32[RCX] < low:32[RAX] +00013424: when ~CF goto %00013421 +000194fa: goto %0001349b + +00013421: +00013433: RAX := 63:8[RAX].0 +00013452: #12582290 := mem[RSP, el]:u64 +00013456: RSP := RSP + 8 +00013459: call #12582290 with noreturn + +0001349b: +000134a2: call @intrinsic:llvm-x86_64:LFENCE with return %000134a4 + +000134a4: +000134aa: RAX := pad:64[low:32[RCX]] +000134b0: RDX := 0x180000000 +000134bc: RAX := pad:64[mem[RAX + 0x180008230]] +000134c4: call @intrinsic:llvm-x86_64:LFENCE with return %000134c6 + +000134c6: +000134cc: RCX := pad:64[mem[0x180008218]] +000134e2: #12582289 := extend:64[low:32[RCX]] * extend:64[low:32[RAX]] +000134e6: RCX := pad:64[low:32[#12582289]] +00013508: RAX := pad:64[mem[RCX + 0x180008228]] +00013515: #12582288 := mem[RSP, el]:u64 +00013519: RSP := RSP + 8 +0001351c: call #12582288 with noreturn + +000194fb: sub sub_180001005(sub_180001005_result) +000195a7: 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 +000194fc: goto %000194e6 + +000194e6: +000194ef: RSP := RSP - 8 +000194f4: mem := mem with [RSP, el]:u64 <- 0x180001789 +000194f6: 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_1800015c0 with noreturn + +000194fd: sub sub_18000100f(sub_18000100f_result) +000195a8: sub_18000100f_result :: out u32 = low:32[RAX] + +00011845: +00011854: goto %00011852 + +00011852: +00011859: RAX := 0x180008198 +00011866: #12582417 := mem[RSP, el]:u64 +0001186a: RSP := RSP + 8 +0001186d: call #12582417 with noreturn + +000194fe: sub sub_180001019(sub_180001019_result) +000195a9: sub_180001019_result :: out u32 = low:32[RAX] + +000118ad: +000118b0: goto %000118ae + +000118ae: +000118cd: RSP := RSP - 0x28 +000118f5: RCX := 0 +00011912: RSP := RSP - 8 +00011917: mem := mem with [RSP, el]:u64 <- 0x180001AFF +00011919: call @sub_18000105a with return %0001191b + +0001191b: +0001192b: #12582412 := low:8[RAX] +00011941: ZF := 0 = #12582412 +0001194b: RAX := 63:8[RAX].pad:8[~ZF] +0001196c: RSP := RSP + 0x28 +00011998: #12582407 := mem[RSP, el]:u64 +0001199c: RSP := RSP + 8 +0001199f: call #12582407 with noreturn + +000194ff: sub sub_18000101e(sub_18000101e_result) +000195aa: sub_18000101e_result :: out u32 = low:32[RAX] + +0001200b: +0001200d: goto %0001187f + +0001187f: +00011883: RAX := 0x1800081A8 +00011890: #12582416 := mem[RSP, el]:u64 +00011894: RSP := RSP + 8 +00011897: call #12582416 with noreturn + +00019500: sub sub_18000102d(sub_18000102d_result) +000195ab: sub_18000102d_result :: out u32 = low:32[RAX] + +000117a3: +000117b1: call @sub_1800027a0 with noreturn + +00019501: sub sub_180001032(sub_180001032_result) +000195ac: sub_180001032_result :: out u32 = low:32[RAX] + +000117b3: +000117b5: goto %00004ecb + +00004ecb: +00004ed5: RAX := 0 +00004ed8: AF := unknown[bits]:u1 +00004edb: ZF := 1 +00004ede: PF := 1 +00004ee1: OF := 0 +00004ee4: CF := 0 +00004ee7: SF := 0 +00004ef8: RSP := RSP + 8 +00004efb: call #12582878 with noreturn + +00019502: sub sub_18000103c(sub_18000103c_result) +000195ad: sub_18000103c_result :: out u32 = low:32[RAX] + +0000dcfb: +0000dd0a: goto %0000dd08 + +0000dd08: +0000dd17: #12582819 := RBX +0000dd1b: RSP := RSP - 8 +0000dd21: mem := mem with [RSP, el]:u64 <- #12582819 +0000dd3f: RSP := RSP - 0x20 +0000dd73: #12582815 := mem[0x1800081D0, el]:u64 - 0xFFFFFFFFFFFFFFFF +0000dd8f: ZF := 0 = #12582815 +0000dd97: RBX := RCX +0000dd9e: when ~ZF goto %0000dd9b +00019503: goto %0000df21 + +0000dd9b: +0000dda7: RDX := RBX +0000ddad: RCX := 0x1800081D0 +0000ddb8: RSP := RSP - 8 +0000ddbd: mem := mem with [RSP, el]:u64 <- 0x180001E89 +0000ddbf: call @sub_18000277c with return %0000ddc1 + +0000df21: +0000df2a: RSP := RSP - 8 +0000df2f: mem := mem with [RSP, el]:u64 <- 0x180001E78 +0000df31: call @sub_180002788 with return %0000df33 + +0000df33: +0000df35: goto %0000ddc1 + +0000ddc1: +0000ddcb: RDX := 0 +0000ddef: #12582813 := low:32[RAX] +0000de05: ZF := 0 = #12582813 +0000de11: RDX := if ZF then RBX else 0 +0000de19: RAX := RDX +0000de3a: RSP := RSP + 0x20 +0000de65: RBX := mem[RSP, el]:u64 +0000de69: RSP := RSP + 8 +0000de76: #12582808 := mem[RSP, el]:u64 +0000de7a: RSP := RSP + 8 +0000de7d: call #12582808 with noreturn + +00019504: sub sub_180001041(sub_180001041_result) +000195ae: sub_180001041_result :: out u32 = low:32[RAX] + +0000df37: +0000df39: goto %00004d9d + +00004d9d: +00004da1: RCX := 0x180008180 +00004da7: call mem[0x18000A028, el]:u64 with noreturn + +00019505: sub sub_180001046(sub_180001046_result) +000195af: sub_180001046_result :: out u32 = low:32[RAX] + +0000df3b: +0000df3d: call @sub_1800027ac with noreturn + +00019506: sub sub_180001055(sub_180001055_result) +000195b0: sub_180001055_result :: out u32 = low:32[RAX] + +0000f007: +0000f009: call @sub_1800027a4 with noreturn + +00019507: sub sub_18000105a(sub_18000105a_result) +000195b1: sub_18000105a_result :: out u32 = low:32[RAX] + +0000f00b: +0000f00e: goto %0000f00c + +0000f00c: +0000f01b: #12582710 := RBX +0000f01f: RSP := RSP - 8 +0000f025: mem := mem with [RSP, el]:u64 <- #12582710 +0000f043: RSP := RSP - 0x20 +0000f077: #12582706 := mem[0x1800081C9] +0000f093: ZF := 0 = #12582706 +0000f09b: RBX := pad:64[low:32[RCX]] +0000f0a2: when ~ZF goto %0000f09f +00019511: goto %00014186 + +00014186: +0001419c: #12582218 := low:32[RCX] - 1 +000141a0: CF := low:32[RCX] < 1 +000141a6: OF := high:1[(low:32[RCX] ^ 1) & (low:32[RCX] ^ #12582218)] +000141ab: AF := 0x10 = (0x10 & (#12582218 ^ low:32[RCX] ^ 1)) +000141b0: PF := + ~low:1[let $0 = #12582218 >> 4 ^ #12582218 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000141b4: SF := high:1[#12582218] +000141b8: ZF := 0 = #12582218 +000141c0: when ~(CF | ZF) goto %0000f111 +00019510: goto %000141c4 + +0000f111: +0000f115: RCX := 5 +0000f121: RSP := RSP - 8 +0000f126: mem := mem with [RSP, el]:u64 <- 0x180001D16 +0000f128: call @sub_18000114a with return %000140ee + +000140ee: +000140f0: call @interrupt:#3 with noreturn + +000140f2: +000140f4: call @interrupt:#3 with noreturn + +000140f6: +000140f8: call @interrupt:#3 with noreturn + +000140fa: +000140fc: call @interrupt:#3 with noreturn + +000140fe: +00014100: call @interrupt:#3 with noreturn + +00014102: +00014104: call @interrupt:#3 with noreturn + +00014106: +00014108: call @interrupt:#3 with noreturn + +0001410a: +0001410c: call @interrupt:#3 with noreturn + +0001410e: +00014110: call @interrupt:#3 with noreturn + +00014112: +00014114: call @interrupt:#3 with noreturn + +00014116: +00014118: call @interrupt:#3 with noreturn + +0001411a: +0001411c: call @interrupt:#3 with noreturn + +0001411e: +00014120: call @interrupt:#3 with noreturn + +00014122: +00014124: call @interrupt:#3 with noreturn + +00014126: +00014128: call @interrupt:#3 with noreturn + +0001412a: +0001412c: call @interrupt:#3 with noreturn + +0001412e: +00014130: call @interrupt:#3 with noreturn + +00014132: +00014134: call @interrupt:#3 with noreturn + +00014136: +00014138: call @interrupt:#3 with noreturn + +0001413a: +0001413c: call @interrupt:#3 with noreturn + +0001413e: +00014140: call @interrupt:#3 with noreturn + +00014142: +00014144: call @interrupt:#3 with noreturn + +00014146: +00014148: call @interrupt:#3 with noreturn + +0001414a: +0001414c: call @interrupt:#3 with noreturn + +0001414e: +00014150: call @interrupt:#3 with noreturn + +00014152: +00014154: call @interrupt:#3 with noreturn + +00014156: +00014158: call @interrupt:#3 with noreturn + +0001415a: +0001415c: call @interrupt:#3 with noreturn + +0001415e: +00014160: call @interrupt:#3 with noreturn + +00014162: +00014164: call @interrupt:#3 with noreturn + +00014166: +00014168: call @interrupt:#3 with noreturn + +0001416a: +0001416c: call @interrupt:#3 with noreturn + +0001416e: +00014170: call @interrupt:#3 with noreturn + +00014172: +00014174: call @interrupt:#3 with noreturn + +00014176: +00014178: call @interrupt:#3 with noreturn + +0001417a: +0001417c: call @interrupt:#3 with noreturn + +0001417e: +00014180: call @interrupt:#3 with noreturn + +00014182: +00014184: call @interrupt:#3 with noreturn +0001950f: call @sub_180001d3c with noreturn + +000141c4: +000141cd: RSP := RSP - 8 +000141d2: mem := mem with [RSP, el]:u64 <- 0x180001CA7 +000141d4: call @sub_180001087 with return %000141d6 + +000141d6: +000141e6: #12582216 := low:32[RAX] +000141e9: OF := 0 +000141ec: CF := 0 +000141ef: AF := unknown[bits]:u1 +000141f4: PF := + ~low:1[let $0 = #12582216 >> 4 ^ #12582216 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000141f8: SF := high:1[#12582216] +000141fc: ZF := 0 = #12582216 +00014203: when ZF goto %00014200 +0001950e: goto %0001425e + +0001425e: +0001426e: #12582213 := low:32[RBX] +00014271: OF := 0 +00014274: CF := 0 +00014277: AF := unknown[bits]:u1 +0001427c: PF := + ~low:1[let $0 = #12582213 >> 4 ^ #12582213 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00014280: SF := high:1[#12582213] +00014284: ZF := 0 = #12582213 +0001428a: when ~ZF goto %00014200 +0001950d: goto %0001428e + +00014200: +0001420e: YMM0 := 255:128[YMM0].mem[0x180006890, el]:u128 +0001421a: RAX := 0xFFFFFFFFFFFFFFFF +0001421d: OF := 0 +00014220: CF := 0 +00014223: AF := unknown[bits]:u1 +00014226: PF := 1 +00014229: SF := 1 +0001422c: ZF := 0 +00014236: mem := mem with [0x1800081D0, el]:u128 <- low:128[YMM0] +00014240: mem := mem with [0x1800081E0, el]:u64 <- RAX +0001424a: mem := mem with [0x1800081E8, el]:u128 <- low:128[YMM0] +00014254: mem := mem with [0x1800081F8, el]:u64 <- RAX +0001950c: goto %00014256 + +0001428e: +00014292: RCX := 0x1800081D0 +0001429d: RSP := RSP - 8 +000142a2: mem := mem with [RSP, el]:u64 <- 0x180001CBB +000142a4: call @sub_180002776 with return %000142a6 + +000142a6: +000142b6: #12582211 := low:32[RAX] +000142b9: OF := 0 +000142bc: CF := 0 +000142bf: AF := unknown[bits]:u1 +000142c4: PF := + ~low:1[let $0 = #12582211 >> 4 ^ #12582211 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000142c8: SF := high:1[#12582211] +000142cc: ZF := 0 = #12582211 +000142d3: when ~ZF goto %000142d0 +0001950b: goto %000142fa + +000142fa: +000142fe: RCX := 0x1800081E8 +00014309: RSP := RSP - 8 +0001430e: mem := mem with [RSP, el]:u64 <- 0x180001CCB +00014310: call @sub_180002776 with return %00014312 + +00014312: +00014322: #12582209 := low:32[RAX] +00014325: OF := 0 +00014328: CF := 0 +0001432b: AF := unknown[bits]:u1 +00014330: PF := + ~low:1[let $0 = #12582209 >> 4 ^ #12582209 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00014334: SF := high:1[#12582209] +00014338: ZF := 0 = #12582209 +0001433e: when ZF goto %00014256 +0001950a: goto %000142d0 + +00014256: +0001425c: mem := mem with [0x1800081C9] <- 1 +00019509: goto %0000f09f + +0000f09f: +0000f0ab: RAX := high:56[RAX].1 +00019508: goto %0000f0ad + +000142d0: +000142e2: RAX := 63:8[RAX].0 +000142e5: AF := unknown[bits]:u1 +000142e8: ZF := 1 +000142eb: PF := 1 +000142ee: OF := 0 +000142f1: CF := 0 +000142f4: SF := 0 +000142f8: goto %0000f0ad + +0000f0ad: +0000f0cc: RSP := RSP + 0x20 +0000f0f7: RBX := mem[RSP, el]:u64 +0000f0fb: RSP := RSP + 8 +0000f108: #12582701 := mem[RSP, el]:u64 +0000f10c: RSP := RSP + 8 +0000f10f: call #12582701 with noreturn + +00019512: sub sub_180001082(sub_180001082_result) +000195b2: sub_180001082_result :: out u32 = low:32[RAX] + +000135b4: +000135c3: goto %000135c1 + +000135c1: +000135d0: #12582286 := RBX +000135d4: RSP := RSP - 8 +000135da: mem := mem with [RSP, el]:u64 <- #12582286 +000135f4: #12582285 := RSP +000135f8: RSP := RSP - 0x20 +000135fc: CF := #12582285 < 0x20 +00013602: OF := high:1[(#12582285 ^ 0x20) & (#12582285 ^ RSP)] +0001360c: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013610: SF := high:1[RSP] +00013614: ZF := 0 = RSP +0001362c: #12582282 := mem[0x1800081C8] +00013630: CF := mem[0x1800081C8] < 0 +00013636: OF := high:1[mem[0x1800081C8] & (mem[0x1800081C8] ^ #12582282)] +0001363b: AF := 0x10 = (0x10 & (#12582282 ^ mem[0x1800081C8])) +00013640: PF := + ~low:1[let $0 = #12582282 >> 4 ^ #12582282 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013644: SF := high:1[#12582282] +00013648: ZF := 0 = #12582282 +00013652: RBX := high:56[RBX].low:8[RCX] +00013659: when ZF goto %00013656 +00019514: goto %00013722 + +00013722: +00013732: #12582276 := low:8[RDX] +00013735: OF := 0 +00013738: CF := 0 +0001373b: AF := unknown[bits]:u1 +00013740: PF := + ~low:1[let $0 = #12582276 >> 4 ^ #12582276 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013744: SF := high:1[#12582276] +00013748: ZF := 0 = #12582276 +0001374e: when ~ZF goto %0001368a +00019513: goto %00013656 + +00013656: +00013665: RSP := RSP - 8 +0001366a: mem := mem with [RSP, el]:u64 <- 0x180001E46 +0001366c: call @sub_1800010e6 with return %0001366e + +0001366e: +00013676: RCX := high:56[RCX].low:8[RBX] +00013681: RSP := RSP - 8 +00013686: mem := mem with [RSP, el]:u64 <- 0x180001E4D +00013688: call @sub_180001046 with return %0001368a + +0001368a: +00013690: RAX := high:56[RAX].1 +000136ad: #12582280 := RSP +000136be: OF := ~high:1[#12582280] & (high:1[#12582280] | high:1[RSP]) & + ~(high:1[#12582280] & high:1[RSP]) +000136c8: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000136cc: SF := high:1[RSP] +000136d0: ZF := 0 = RSP +000136dc: RBX := mem[RSP, el]:u64 +000136e0: RSP := RSP + 8 +000136ed: #12582277 := mem[RSP, el]:u64 +000136f1: RSP := RSP + 8 +000136f4: call #12582277 with noreturn + +00019515: sub sub_180001087(sub_180001087_result) +000195b3: sub_180001087_result :: out u32 = low:32[RAX] + +0000d58d: +0000d59c: goto %0000d59a + +0000d59a: +0000d5d6: #12582866 := mem[0x180008060, el]:u32 +0000d5f5: ZF := 0 = #12582866 +0000d5ff: RAX := 0.pad:8[~ZF] +0000d60c: #12582864 := mem[RSP, el]:u64 +0000d610: RSP := RSP + 8 +0000d613: call #12582864 with noreturn + +00019516: sub sub_18000108c(sub_18000108c_result) +000195b4: sub_18000108c_result :: out u32 = low:32[RAX] + +0000d695: +0000d698: call @sub_180001d3c with noreturn + +00019517: sub sub_180001096(sub_180001096_result) +000195b5: sub_180001096_result :: out u32 = low:32[RAX] + +00011b59: +00011b67: call @sub_1800027a8 with noreturn + +00019518: sub sub_1800010a5(sub_1800010a5_result) +000195b6: sub_1800010a5_result :: out u32 = low:32[RAX] + +0001166d: +0001167b: call @sub_1800027b0 with noreturn + +00019519: sub sub_1800010aa(sub_1800010aa_result) +000195b7: sub_1800010aa_result :: out u32 = low:32[RAX] + +0001167d: +0001167f: call @sub_1800027a4 with noreturn + +0001951a: sub sub_1800010b4(sub_1800010b4_result) +000195b8: 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 +0001951c: goto %000189fe + +000189fe: +00018a14: #12582158 := mem[0x180006880, el]:u64 +00018a18: CF := mem[0x180006880, el]:u64 < 0 +00018a1e: OF := high:1[mem[0x180006880, el]:u64 & + (mem[0x180006880, el]:u64 ^ #12582158)] +00018a23: AF := 0x10 = (0x10 & (#12582158 ^ mem[0x180006880, el]:u64)) +00018a28: PF := + ~low:1[let $0 = #12582158 >> 4 ^ #12582158 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018a2c: SF := high:1[#12582158] +00018a30: ZF := 0 = #12582158 +00018a36: when ~ZF goto %00004d18 +0001951b: goto %00018a3a + +00018a3a: +00018a46: #12582156 := mem[0x18000A020, el]:u64 +00018a4a: RSP := RSP - 8 +00018a4f: mem := mem with [RSP, el]:u64 <- 0x18000192D +00018a52: call #12582156 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 + +0001951d: sub sub_1800010c3(sub_1800010c3_result) +000195b9: sub_1800010c3_result :: out u32 = low:32[RAX] + +0000fc06: +0000fc14: goto %0000e8b5 + +0000e8b5: +0000e8b9: RAX := 1 +0000e8c6: #12582755 := mem[RSP, el]:u64 +0000e8ca: RSP := RSP + 8 +0000e8cd: call #12582755 with noreturn + +0001951e: sub sub_1800010cd(sub_1800010cd_result) +000195ba: sub_1800010cd_result :: out u32 = low:32[RAX] + +00010954: +00010956: goto %0001001e + +0001001e: +00010028: mem := mem with [RSP + 8, el]:u64 <- RBX +00010036: #12582586 := RDI +0001003a: RSP := RSP - 8 +00010040: mem := mem with [RSP, el]:u64 <- #12582586 +0001005e: RSP := RSP - 0x20 +00010080: RBX := 0x1800070A0 +00010086: RDI := 0x1800071A8 +0001008b: goto %00010089 + +00010089: +000100ac: CF := RBX < 0x1800071F0 +000100cd: when CF goto %000100ca +00019521: goto %00010164 + +00010164: +0001016c: RBX := mem[RSP + 0x30, el]:u64 +0001018d: RSP := RSP + 0x20 +000101b8: RDI := mem[RSP, el]:u64 +000101bc: RSP := RSP + 8 +000101c9: #12582571 := mem[RSP, el]:u64 +000101cd: RSP := RSP + 8 +000101d0: call #12582571 with noreturn + +000100ca: +000100d8: RAX := mem[RBX, el]:u64 +000100ea: #12582580 := RAX +00010100: ZF := 0 = #12582580 +00010107: when ZF goto %00010104 +00019520: goto %0001014a + +0001014a: +00010156: #12582575 := mem[0x18000B020, el]:u64 +0001015a: RSP := RSP - 8 +0001015f: mem := mem with [RSP, el]:u64 <- 0x180002210 +00010162: call #12582575 with return %00010104 + +00010104: +00010129: RBX := RBX + 8 +0001951f: goto %00010089 + +00019522: sub sub_1800010d7(sub_1800010d7_result) +000195bb: sub_1800010d7_result :: out u32 = low:32[RAX] + +00011139: +0001113b: goto %00010212 + +00010212: +0001021c: mem := mem with [RSP + 8, el]:u64 <- RBX +0001022a: #12582570 := RDI +0001022e: RSP := RSP - 8 +00010234: mem := mem with [RSP, el]:u64 <- #12582570 +00010252: RSP := RSP - 0x20 +00010274: RBX := 0x1800072C0 +0001027a: RDI := 0x1800073C8 +0001027f: goto %0001027d + +0001027d: +000102a0: CF := RBX < 0x180007410 +000102c1: when CF goto %000102be +00019525: goto %00010358 + +00010358: +00010360: RBX := mem[RSP + 0x30, el]:u64 +00010381: RSP := RSP + 0x20 +000103ac: RDI := mem[RSP, el]:u64 +000103b0: RSP := RSP + 8 +000103bd: #12582555 := mem[RSP, el]:u64 +000103c1: RSP := RSP + 8 +000103c4: call #12582555 with noreturn + +000102be: +000102cc: RAX := mem[RBX, el]:u64 +000102de: #12582564 := RAX +000102f4: ZF := 0 = #12582564 +000102fb: when ZF goto %000102f8 +00019524: goto %0001033e + +0001033e: +0001034a: #12582559 := mem[0x18000B020, el]:u64 +0001034e: RSP := RSP - 8 +00010353: mem := mem with [RSP, el]:u64 <- 0x18000225C +00010356: call #12582559 with return %000102f8 + +000102f8: +0001031d: RBX := RBX + 8 +00019523: goto %0001027d + +00019526: sub sub_1800010e1(sub_1800010e1_result) +000195bc: sub_1800010e1_result :: out u32 = low:32[RAX] + +00011141: +00011143: call @sub_1800027a8 with noreturn + +00019527: sub sub_1800010e6(sub_1800010e6_result) +000195bd: sub_1800010e6_result :: out u32 = low:32[RAX] + +00011145: +00011147: call @sub_1800027ac with noreturn + +00019528: sub sub_1800010fa(sub_1800010fa_result) +000195be: sub_1800010fa_result :: out u32 = low:32[RAX] + +00011155: +00011158: goto %00011156 + +00011156: +00011163: mem := mem with [RSP + 0x20, el]:u64 <- RBX +00011171: #12582460 := RBP +00011175: RSP := RSP - 8 +0001117b: mem := mem with [RSP, el]:u64 <- #12582460 +00011183: RBP := RSP +000111a1: RSP := RSP - 0x20 +000111c5: RAX := mem[0x180008020, el]:u64 +000111cb: RBX := 0x2B992DDFA232 +000111e8: #12582456 := RAX - 0x2B992DDFA232 +00011207: ZF := 0 = #12582456 +0001120e: when ~ZF goto %0001120b +0001952a: goto %00011341 + +00011341: +00011357: mem := mem with [RBP + 0x18, el]:u64 <- 0 +00011379: RCX := RBP + 0x18 +00011387: #12582449 := mem[0x18000A018, el]:u64 +0001138b: RSP := RSP - 8 +00011390: mem := mem with [RSP, el]:u64 <- 0x18000186E +00011393: call #12582449 with return %00011395 + +00011395: +0001139d: RAX := mem[RBP + 0x18, el]:u64 +000113a9: mem := mem with [RBP + 0x10, el]:u64 <- RAX +000113b7: #12582448 := mem[0x18000A010, el]:u64 +000113bb: RSP := RSP - 8 +000113c0: mem := mem with [RSP, el]:u64 <- 0x18000187C +000113c3: call #12582448 with return %000113c5 + +000113c5: +000113cb: RAX := pad:64[low:32[RAX]] +000113e9: mem := + mem with [RBP + 0x10, el]:u64 <- mem[RBP + 0x10, el]:u64 ^ RAX +00011411: #12582446 := mem[0x18000A008, el]:u64 +00011415: RSP := RSP - 8 +0001141a: mem := mem with [RSP, el]:u64 <- 0x180001888 +0001141d: call #12582446 with return %0001141f + +0001141f: +00011425: RAX := pad:64[low:32[RAX]] +0001142d: RCX := RBP + 0x20 +0001144b: mem := + mem with [RBP + 0x10, el]:u64 <- mem[RBP + 0x10, el]:u64 ^ RAX +00011473: #12582444 := mem[0x18000A000, el]:u64 +00011477: RSP := RSP - 8 +0001147c: mem := mem with [RSP, el]:u64 <- 0x180001898 +0001147f: call #12582444 with return %00011481 + +00011481: +00011489: RAX := pad:64[mem[RBP + 0x20, el]:u32] +00011491: RCX := RBP + 0x10 +000114aa: RAX := RAX << 0x20 +000114d7: RAX := RAX ^ mem[RBP + 0x20, el]:u64 +00011503: RAX := RAX ^ mem[RBP + 0x10, el]:u64 +0001152d: RAX := RAX ^ RCX +0001155d: RAX := RAX & 0xFFFFFFFFFFFF +00011579: RCX := 0x2B992DDFA233 +00011596: #12582437 := RAX - 0x2B992DDFA232 +000115b5: ZF := 0 = #12582437 +000115c1: RAX := if ZF then 0x2B992DDFA233 else RAX +000115cb: mem := mem with [0x180008020, el]:u64 <- RAX +00019529: goto %0001120b + +0001120b: +00011219: RBX := mem[RSP + 0x48, el]:u64 +00011221: RAX := ~RAX +0001122b: mem := mem with [0x180008028, el]:u64 <- RAX +0001124c: RSP := RSP + 0x20 +00011277: RBP := mem[RSP, el]:u64 +0001127b: RSP := RSP + 8 +00011288: #12582451 := mem[RSP, el]:u64 +0001128c: RSP := RSP + 8 +0001128f: call #12582451 with noreturn + +0001952b: sub sub_180001109(sub_180001109_result) +000195bf: sub_180001109_result :: out u32 = low:32[RAX] + +000115d5: +000115d8: goto %000115d6 + +000115d6: +000115dd: RAX := 0x180008238 +000115ea: #12582435 := mem[RSP, el]:u64 +000115ee: RSP := RSP + 8 +000115f1: call #12582435 with noreturn + +0001952c: sub sub_18000110e(sub_18000110e_result) +000195c0: sub_18000110e_result :: out u32 = low:32[RAX] + +00011603: +00011605: goto %00004dc1 + +00004dc1: +00004dc5: RCX := 0x180008180 +00004dca: goto %00004dc8 + +00004dc8: +00004dcf: call mem[0x18000A0F0, el]:u64 with noreturn + +0001952d: sub sub_180001118(sub_180001118_result) +000195c1: sub_180001118_result :: out u32 = low:32[RAX] + +0001160b: +0001160e: goto %0001160c + +0001160c: +0001162b: RSP := RSP - 0x28 +00011653: RCX := 0 +00011671: RSP := RSP - 8 +00011676: mem := mem with [RSP, el]:u64 <- 0x180001C1F +00011678: call @sub_1800010a5 with return %00011685 + +00011685: +000116a4: RSP := RSP + 0x28 +000116c7: goto %00011151 + +00011151: +00011153: call @sub_1800027b0 with noreturn + +0001952e: sub sub_18000111d(sub_18000111d_result) +000195c2: sub_18000111d_result :: out u32 = low:32[RAX] + +0001224f: +00012251: goto %000119bd + +000119bd: +000119d9: RSP := RSP - 0x28 +00011a00: RSP := RSP - 8 +00011a05: mem := mem with [RSP, el]:u64 <- 0x180001B19 +00011a07: call @sub_180001055 with return %00011a09 + +00011a09: +00011a19: #12582403 := low:8[RAX] +00011a2f: ZF := 0 = #12582403 +00011a36: when ~ZF goto %00011a33 +00019531: goto %00011fe4 + +00011a33: +00011a42: RSP := RSP - 8 +00011a47: mem := mem with [RSP, el]:u64 <- 0x180001B26 +00011a49: call @sub_1800010aa with return %00011a4b + +00011a4b: +00011a5b: #12582401 := low:8[RAX] +00011a71: ZF := 0 = #12582401 +00011a78: when ~ZF goto %00011a75 +00019530: goto %00011fd1 + +00011a75: +00011a81: RAX := high:56[RAX].1 +0001952f: goto %00011a83 + +00011fd1: +00011fda: RSP := RSP - 8 +00011fdf: mem := mem with [RSP, el]:u64 <- 0x180001B2F +00011fe1: call @sub_180001096 with return %00011fe3 + +00011fe3: +00011fe6: goto %00011fe4 + +00011fe4: +00011ff3: RAX := 63:8[RAX].0 +00012009: goto %00011a83 + +00011a83: +00011aa2: RSP := RSP + 0x28 +00011ace: #12582396 := mem[RSP, el]:u64 +00011ad2: RSP := RSP + 8 +00011ad5: call #12582396 with noreturn + +00019532: sub sub_180001122(sub_180001122_result) +000195c3: sub_180001122_result :: out u32 = low:32[RAX] + +000117f1: +000117ff: call @sub_1800027a0 with noreturn + +00019533: sub sub_180001127(sub_180001127_result) +000195c4: sub_180001127_result :: out u32 = low:32[RAX] + +00011801: +00011804: goto %00011802 + +00011802: +00011821: RSP := RSP - 0x28 +00011849: RSP := RSP - 8 +0001184e: mem := mem with [RSP, el]:u64 <- 0x180001985 +00011850: call @sub_18000100f with return %00012017 + +00012017: +00012031: mem := mem with [RAX, el]:u64 <- mem[RAX, el]:u64 | 0x24 +00012056: RSP := RSP - 8 +0001205b: mem := mem with [RSP, el]:u64 <- 0x18000198E +0001205d: call @sub_18000101e with return %0001205f + +0001205f: +00012079: mem := mem with [RAX, el]:u64 <- mem[RAX, el]:u64 | 2 +000120b4: RSP := RSP + 0x28 +000120e0: #12582357 := mem[RSP, el]:u64 +000120e4: RSP := RSP + 8 +000120e7: call #12582357 with noreturn + +00019534: sub sub_18000112c(sub_18000112c_result) +000195c5: sub_18000112c_result :: out u32 = low:32[RAX] + +0000f1f7: +0000f206: goto %0000f204 + +0000f204: +0000f217: mem := mem with [0x180008210, el]:u32 <- 0 +0000f23a: #12582692 := mem[RSP, el]:u64 +0000f23e: RSP := RSP + 8 +0000f241: call #12582692 with noreturn + +00019535: sub sub_18000113b(sub_18000113b_result) +000195c6: sub_18000113b_result :: out u32 = low:32[RAX] + +0000fb80: +0000fb83: goto %0000fb81 + +0000fb81: +0000fba0: RSP := RSP - 0x28 +0000fbc7: RSP := RSP - 8 +0000fbcc: mem := mem with [RSP, el]:u64 <- 0x180001AB9 +0000fbce: call @sub_180001087 with return %0000fbd0 + +0000fbd0: +0000fbe0: #12582610 := low:32[RAX] +0000fbf6: ZF := 0 = #12582610 +0000fbfd: when ZF goto %0000fbfa +00019538: goto %0001236f + +0000fbfa: +0000fc0a: RSP := RSP - 8 +0000fc0f: mem := mem with [RSP, el]:u64 <- 0x180001AC9 +0000fc11: call @sub_1800010c3 with return %00012253 + +00012253: +00012259: RCX := pad:64[low:32[RAX]] +00012264: RSP := RSP - 8 +00012269: mem := mem with [RSP, el]:u64 <- 0x180001AD0 +0001226b: call @sub_18000276a with return %0001226d + +0001226d: +0001227d: #12582350 := low:32[RAX] +00012293: ZF := 0 = #12582350 +0001229a: when ZF goto %00012297 +00019537: goto %0001234b + +00012297: +000122a6: RSP := RSP - 8 +000122ab: mem := mem with [RSP, el]:u64 <- 0x180001ADD +000122ad: call @sub_180002770 with return %000122af + +0001234b: +00012357: RAX := 63:8[RAX].0 +0001236d: goto %000122b7 + +0001236f: +00012378: RSP := RSP - 8 +0001237d: mem := mem with [RSP, el]:u64 <- 0x180001AC2 +0001237f: call @sub_180001145 with return %00012381 + +00012381: +00012383: goto %000122af + +000122af: +000122b5: RAX := high:56[RAX].1 +00019536: goto %000122b7 + +000122b7: +000122d6: RSP := RSP + 0x28 +00012302: #12582345 := mem[RSP, el]:u64 +00012306: RSP := RSP + 8 +00012309: call #12582345 with noreturn + +00019539: sub sub_180001140(sub_180001140_result) +000195c7: sub_180001140_result :: out u32 = low:32[RAX] + +0000d524: +0000d52a: goto %0000d528 + +0000d528: +0000d537: #12582870 := RBX +0000d53b: RSP := RSP - 8 +0000d541: mem := mem with [RSP, el]:u64 <- #12582870 +0000d55f: RSP := RSP - 0x20 +0000d585: RBX := high:56[RBX].low:8[RCX] +0000d591: RSP := RSP - 8 +0000d596: mem := mem with [RSP, el]:u64 <- 0x180001E09 +0000d598: call @sub_180001087 with return %000144b8 + +0001459a: +000145aa: #12582188 := low:8[RBX] +000145ad: OF := 0 +000145b0: CF := 0 +000145b3: AF := unknown[bits]:u1 +000145b8: PF := + ~low:1[let $0 = #12582188 >> 4 ^ #12582188 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000145bc: SF := high:1[#12582188] +000145c0: ZF := 0 = #12582188 +000145c6: when ~ZF goto %00014500 +0001953b: goto %000145ca + +000145ca: +000145d5: #12582186 := RDX +000145d9: RDX := mem[0x1800081C0, el]:u64 +000145de: mem := mem with [0x1800081C0, el]:u64 <- #12582186 +0001953a: goto %00014500 + +00014500: +00014521: #12582192 := RSP +00014532: OF := ~high:1[#12582192] & (high:1[#12582192] | high:1[RSP]) & + ~(high:1[#12582192] & high:1[RSP]) +0001453c: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00014540: SF := high:1[RSP] +00014544: ZF := 0 = RSP +00014550: RBX := mem[RSP, el]:u64 +00014554: RSP := RSP + 8 +00014561: #12582189 := mem[RSP, el]:u64 +00014565: RSP := RSP + 8 +00014568: call #12582189 with noreturn + +0001953d: sub sub_180001145(sub_180001145_result) +000195c8: sub_180001145_result :: out u32 = low:32[RAX] + +0001178d: +0001179b: goto %0000e39f + +0000e39f: +0000e3a9: mem := mem with [RSP + 0x10, el]:u64 <- RBX +0000e3b5: mem := mem with [RSP + 0x18, el]:u64 <- RSI +0000e3c3: #12582770 := RDI +0000e3c7: RSP := RSP - 8 +0000e3cd: mem := mem with [RSP, el]:u64 <- #12582770 +0000e3eb: RSP := RSP - 0x10 +0000e44c: RAX := pad:64[unknown[bits]:u32] +0000e44f: RBX := pad:64[unknown[bits]:u32] +0000e452: RCX := pad:64[unknown[bits]:u32] +0000e455: RDX := pad:64[unknown[bits]:u32] +0000e45d: R8 := pad:64[low:32[RCX]] +0000e469: R11 := 0 +0000e483: R10 := pad:64[low:32[RDX]] +0000e495: R8 := pad:64[low:32[R8] ^ 0x6C65746E] +0000e4bd: R10 := pad:64[low:32[R10] ^ 0x49656E69] +0000e4db: R9 := pad:64[low:32[RBX]] +0000e4e3: RSI := pad:64[low:32[RAX]] +0000e4ef: RCX := 0 +0000e509: RAX := 1 +0000e51d: R10 := pad:64[low:32[R10] | low:32[R8]] +0000e53c: RAX := pad:64[unknown[bits]:u32] +0000e53f: RBX := pad:64[unknown[bits]:u32] +0000e542: RCX := pad:64[unknown[bits]:u32] +0000e545: RDX := pad:64[unknown[bits]:u32] +0000e557: R9 := pad:64[low:32[R9] ^ 0x756E6547] +0000e579: mem := mem with [RSP, el]:u32 <- low:32[RAX] +0000e58d: R10 := pad:64[low:32[R10] | low:32[R9]] +0000e5a3: ZF := 0 = low:32[R10] +0000e5af: mem := mem with [RSP + 4, el]:u32 <- low:32[RBX] +0000e5b7: RDI := pad:64[low:32[RCX]] +0000e5c3: mem := mem with [RSP + 8, el]:u32 <- low:32[RCX] +0000e5cf: mem := mem with [RSP + 0xC, el]:u32 <- low:32[RDX] +0000e5d6: when ~ZF goto %0000e5d3 +0001954f: goto %0000ecc5 + +0000ecc5: +0000ecd5: mem := mem with [0x180008048, el]:u64 <- 0xFFFFFFFFFFFFFFFF +0000ecfd: RAX := pad:64[low:32[RAX] & 0xFFF3FF0] +0000ed1b: mem := mem with [0x180008040, el]:u64 <- 0x8000 +0000ed33: #12582734 := low:32[RAX] - 0x106C0 +0000ed4f: ZF := 0 = #12582734 +0000ed56: when ZF goto %0000ed53 +0001954e: goto %0000ed97 + +0000ed97: +0000edad: #12582731 := low:32[RAX] - 0x20660 +0000edc9: ZF := 0 = #12582731 +0000edcf: when ZF goto %0000ed53 +0001954d: goto %0000edd3 + +0000edd3: +0000ede9: #12582729 := low:32[RAX] - 0x20670 +0000ee05: ZF := 0 = #12582729 +0000ee0b: when ZF goto %0000ed53 +0001954c: goto %0000ee0f + +0000ee0f: +0000ee2e: RAX := pad:64[low:32[RAX] - 0x30650] +0000ee65: #12582724 := low:32[RAX] - 0x20 +0000ee69: CF := low:32[RAX] < 0x20 +0000ee81: ZF := 0 = #12582724 +0000ee89: when ~(CF | ZF) goto %0000e5d3 +0001954b: goto %0000ee8d + +0000ee8d: +0000ee91: RCX := 0x100010001 +0000eea1: #12582722 := low:6[RAX] +0000eea6: CF := low:1[0x100010001 >> #12582722] +0000eebb: when ~CF goto %0000e5d3 +0001954a: goto %0000ed53 + +0000e5d3: +0000e5df: R8 := pad:64[mem[0x180008214, el]:u32] +00019549: goto %0000e5e1 + +0000ed53: +0000ed5f: R8 := pad:64[mem[0x180008214, el]:u32] +0000ed71: R8 := pad:64[low:32[R8] | 1] +0000ed91: mem := mem with [0x180008214, el]:u32 <- low:32[R8] +0000ed95: goto %0000e5e1 + +0000e5e1: +0000e5e5: RAX := 7 +0000e5ed: R9 := 2 +0000e60a: #12582761 := low:32[RSI] - 7 +0000e616: OF := high:1[(low:32[RSI] ^ 7) & (low:32[RSI] ^ #12582761)] +0000e625: SF := high:1[#12582761] +0000e636: when (SF | OF) & ~(SF & OF) goto %0000e630 +00019548: goto %0000ec05 + +0000ec05: +0000ec0f: RCX := 0 +0000ec2a: RAX := pad:64[unknown[bits]:u32] +0000ec2d: RBX := pad:64[unknown[bits]:u32] +0000ec30: RCX := pad:64[unknown[bits]:u32] +0000ec33: RDX := pad:64[unknown[bits]:u32] +0000ec3f: mem := mem with [RSP, el]:u32 <- low:32[RAX] +0000ec47: R11 := pad:64[low:32[RBX]] +0000ec53: mem := mem with [RSP + 4, el]:u32 <- low:32[RBX] +0000ec5f: mem := mem with [RSP + 8, el]:u32 <- low:32[RCX] +0000ec6b: mem := mem with [RSP + 0xC, el]:u32 <- low:32[RDX] +0000ec78: CF := low:1[RBX >> 9] +0000ec8d: when ~CF goto %0000e630 +00019547: goto %0000ec91 + +0000ec91: +0000eca3: R8 := pad:64[low:32[R8] | 2] +0000ecc3: mem := mem with [0x180008214, el]:u32 <- low:32[R8] +00019546: goto %0000e630 + +0000e630: +0000e63f: mem := mem with [0x180008038, el]:u32 <- 1 +0000e649: mem := mem with [0x18000803C, el]:u32 <- 2 +0000e656: CF := low:1[RDI >> 0x14] +0000e66c: when ~CF goto %0000e669 +00019545: goto %0000e8d7 + +0000e8d7: +0000e8df: mem := mem with [0x180008038, el]:u32 <- 2 +0000e8e5: RBX := 6 +0000e8ef: mem := mem with [0x18000803C, el]:u32 <- 6 +0000e8fc: CF := low:1[RDI >> 0x1B] +0000e911: when ~CF goto %0000e669 +00019544: goto %0000e915 + +0000e915: +0000e920: CF := low:1[RDI >> 0x1C] +0000e935: when ~CF goto %0000e669 +00019543: goto %0000e939 + +0000e939: +0000e943: RCX := 0 +0000e95c: RAX := pad:64[unknown[bits]:u32] +0000e95f: RDX := pad:64[unknown[bits]:u32] +0000e978: RDX := RDX << 0x20 +0000e9a3: RDX := RDX | RAX +0000e9c5: mem := mem with [RSP + 0x20, el]:u64 <- RDX +0000e9cf: RAX := mem[RSP + 0x20, el]:u64 +0000e9e5: RAX := 63:8[RAX].low:8[RAX] & 6 +0000ea18: #12582750 := low:8[RAX] - 6 +0000ea37: ZF := 0 = #12582750 +0000ea3d: when ~ZF goto %0000e669 +00019542: goto %0000ea41 + +0000ea41: +0000ea47: RAX := pad:64[mem[0x18000803C, el]:u32] +0000ea59: RAX := pad:64[low:32[RAX] | 8] +0000ea77: mem := mem with [0x180008038, el]:u32 <- 3 +0000ea81: mem := mem with [0x18000803C, el]:u32 <- low:32[RAX] +0000ea93: #12582747 := low:8[R11] & 0x20 +0000eaa9: ZF := 0 = #12582747 +0000eaaf: when ZF goto %0000e669 +00019541: goto %0000eab3 + +0000eab3: +0000eac3: RAX := pad:64[low:32[RAX] | 0x20] +0000eae1: mem := mem with [0x180008038, el]:u32 <- 5 +0000eaeb: mem := mem with [0x18000803C, el]:u32 <- low:32[RAX] +0000eaf1: RAX := 0xD0030000 +0000eb05: R11 := pad:64[low:32[R11] & 0xD0030000] +0000eb38: #12582743 := low:32[R11] - 0xD0030000 +0000eb57: ZF := 0 = #12582743 +0000eb5d: when ~ZF goto %0000e669 +00019540: goto %0000eb61 + +0000eb61: +0000eb69: RAX := mem[RSP + 0x20, el]:u64 +0000eb7d: RAX := 63:8[RAX].low:8[RAX] & 0xE0 +0000ebab: #12582740 := low:8[RAX] - 0xE0 +0000ebc7: ZF := 0 = #12582740 +0000ebcd: when ~ZF goto %0000e669 +0001953f: goto %0000ebd1 + +0000ebd1: +0000ebe3: mem := + mem with [0x18000803C, el]:u32 <- mem[0x18000803C, el]:u32 | 0x40 +0000ec03: mem := mem with [0x180008038, el]:u32 <- 6 +0001953e: goto %0000e669 + +0000e669: +0000e677: RBX := mem[RSP + 0x28, el]:u64 +0000e683: RAX := 0 +0000e69f: RSI := mem[RSP + 0x30, el]:u64 +0000e6c0: RSP := RSP + 0x10 +0000e6eb: RDI := mem[RSP, el]:u64 +0000e6ef: RSP := RSP + 8 +0000e6fc: #12582756 := mem[RSP, el]:u64 +0000e700: RSP := RSP + 8 +0000e703: call #12582756 with noreturn + +00019550: sub sub_18000114a(sub_18000114a_result) +000195c9: sub_18000114a_result :: out u32 = low:32[RAX] + +0000f11d: +0000f12c: goto %0000f12a + +0000f12a: +0000f137: mem := mem with [RSP + 8, el]:u64 <- RBX +0000f145: #12582700 := RBP +0000f149: RSP := RSP - 8 +0000f14f: mem := mem with [RSP, el]:u64 <- #12582700 +0000f157: RBP := RSP - 0x4C0 +0000f175: RSP := RSP - 0x5C0 +0000f199: RBX := pad:64[low:32[RCX]] +0000f19f: RCX := 0x17 +0000f1ad: #12582696 := mem[0x18000A068, el]:u64 +0000f1b1: RSP := RSP - 8 +0000f1b6: mem := mem with [RSP, el]:u64 <- 0x180001F22 +0000f1b9: call #12582696 with return %0000f1bb + +0000f1bb: +0000f1cb: #12582695 := low:32[RAX] +0000f1e1: ZF := 0 = #12582695 +0000f1e8: when ZF goto %0000f1e5 +00019554: goto %00012a8b + +00012a8b: +00012a91: RCX := pad:64[low:32[RBX]] +00012a95: call @interrupt:#41 with noreturn + +0000f1e5: +0000f1ef: RCX := 3 +0000f1fb: RSP := RSP - 8 +0000f200: mem := mem with [RSP, el]:u64 <- 0x180001F34 +0000f202: call @sub_18000112c with return %00012385 + +00012385: +0001238f: RDX := 0 +000123a9: RCX := RBP - 0x10 +000123af: R8 := 0x4D0 +000123ba: RSP := RSP - 8 +000123bf: mem := mem with [RSP, el]:u64 <- 0x180001F45 +000123c1: call @sub_180002752 with return %000123c3 + +000123c3: +000123c9: RCX := RBP - 0x10 +000123d7: #12582344 := mem[0x18000A030, el]:u64 +000123db: RSP := RSP - 8 +000123e0: mem := mem with [RSP, el]:u64 <- 0x180001F4F +000123e3: call #12582344 with return %000123e5 + +000123e5: +000123ed: RBX := mem[RBP + 0xE8, el]:u64 +000123f5: RDX := RBP + 0x4D8 +000123fd: RCX := RBX +00012409: R8 := 0 +00012429: #12582343 := mem[0x18000A038, el]:u64 +0001242d: RSP := RSP - 8 +00012432: mem := mem with [RSP, el]:u64 <- 0x180001F69 +00012435: call #12582343 with return %00012437 + +00012437: +00012447: #12582342 := RAX +0001245d: ZF := 0 = #12582342 +00012464: when ZF goto %00012461 +00019553: goto %000129cb + +000129cb: +000129e1: mem := mem with [RSP + 0x38, el]:u64 <- 0 +00012a03: RCX := RBP + 0x4E0 +00012a0d: RDX := mem[RBP + 0x4D8, el]:u64 +00012a15: R9 := RAX +00012a21: mem := mem with [RSP + 0x30, el]:u64 <- RCX +00012a29: R8 := RBX +00012a31: RCX := RBP + 0x4E8 +00012a3d: mem := mem with [RSP + 0x28, el]:u64 <- RCX +00012a45: RCX := RBP - 0x10 +00012a51: mem := mem with [RSP + 0x20, el]:u64 <- RCX +00012a5d: RCX := 0 +00012a7d: #12582313 := mem[0x18000A040, el]:u64 +00012a81: RSP := RSP - 8 +00012a86: mem := mem with [RSP, el]:u64 <- 0x180001FAA +00012a89: call #12582313 with return %00012461 + +00012461: +0001246f: RAX := mem[RBP + 0x4C8, el]:u64 +00012477: RCX := RSP + 0x50 +00012483: mem := mem with [RBP + 0xE8, el]:u64 <- RAX +0001248f: RDX := 0 +000124a9: RAX := RBP + 0x4C8 +000124af: R8 := 0x98 +000124d0: RAX := RAX + 8 +000124fb: mem := mem with [RBP + 0x88, el]:u64 <- RAX +00012506: RSP := RSP - 8 +0001250b: mem := mem with [RSP, el]:u64 <- 0x180001FDC +0001250d: call @sub_180002752 with return %0001250f + +0001250f: +00012517: RAX := mem[RBP + 0x4C8, el]:u64 +00012523: mem := mem with [RSP + 0x60, el]:u64 <- RAX +0001252d: mem := mem with [RSP + 0x50, el]:u32 <- 0x40000015 +00012537: mem := mem with [RSP + 0x54, el]:u32 <- 1 +00012545: #12582337 := mem[0x18000A048, el]:u64 +00012549: RSP := RSP - 8 +0001254e: mem := mem with [RSP, el]:u64 <- 0x180001FFE +00012551: call #12582337 with return %00012553 + +00012553: +00012569: #12582336 := low:32[RAX] - 1 +00012585: ZF := 0 = #12582336 +0001258d: RAX := RSP + 0x50 +00012599: mem := mem with [RSP + 0x40, el]:u64 <- RAX +000125a1: RAX := RBP - 0x10 +000125ab: RBX := 63:8[RBX].pad:8[ZF] +000125b7: mem := mem with [RSP + 0x48, el]:u64 <- RAX +000125c3: RCX := 0 +000125e3: #12582334 := mem[0x18000A058, el]:u64 +000125e7: RSP := RSP - 8 +000125ec: mem := mem with [RSP, el]:u64 <- 0x18000201F +000125ef: call #12582334 with return %000125f1 + +000125f1: +000125f7: RCX := RSP + 0x40 +00012605: #12582333 := mem[0x18000A050, el]:u64 +00012609: RSP := RSP - 8 +0001260e: mem := mem with [RSP, el]:u64 <- 0x18000202A +00012611: call #12582333 with return %00012613 + +00012613: +00012623: #12582332 := low:32[RAX] +00012639: ZF := 0 = #12582332 +00012640: when ~ZF goto %0001263d +00019552: goto %00012981 + +00012981: +00012991: #12582316 := low:8[RBX] +000129a7: ZF := 0 = #12582316 +000129ad: when ~ZF goto %0001263d +00019551: goto %000129b1 + +000129b1: +000129b7: RCX := pad:64[low:32[RAX + 3]] +000129c2: RSP := RSP - 8 +000129c7: mem := mem with [RSP, el]:u64 <- 0x18000203A +000129c9: call @sub_18000112c with return %0001263d + +0001263d: +0001264b: RBX := mem[RSP + 0x5D0, el]:u64 +0001266c: RSP := RSP + 0x5C0 +00012697: RBP := mem[RSP, el]:u64 +0001269b: RSP := RSP + 8 +000126a8: #12582327 := mem[RSP, el]:u64 +000126ac: RSP := RSP + 8 +000126af: call #12582327 with noreturn + +00019555: sub sub_180001154(sub_180001154_result) +000195ca: sub_180001154_result :: out u32 = low:32[RAX] + +00012a9b: +00012a9d: goto %00010c74 + +00010c74: +00010c90: RSP := RSP - 0x28 +00010cb7: RSP := RSP - 8 +00010cbc: mem := mem with [RSP, el]:u64 <- 0x180001A71 +00010cbe: call @sub_180001087 with return %00010cc0 + +00010cc0: +00010cd0: #12582492 := low:32[RAX] +00010ce6: ZF := 0 = #12582492 +00010ced: when ZF goto %00010cea +00019559: goto %00010dac + +00010dac: +00010db4: RAX := mem[GS_BASE + 0x30, el]:u64 +00010dbe: RCX := mem[RAX + 8, el]:u64 +00010dc3: goto %00010dc1 + +00010dc1: +00010dce: RAX := 0 +00010e05: call @intrinsic:x86:lock with return %00010e08 + +00010e08: +00010e09: #12582486 := mem[0x1800081C0, el]:u64 +00010e0e: #12582485 := -#12582486 +00010e2d: ZF := 0 = #12582485 +00010e41: goto %00010e39 + +00010e39: +00010e3b: when 0 = #12582486 goto %00010e33 +00010e3c: goto %00010e37 + +00010e37: +00010e38: RAX := #12582486 +00010e3e: goto %00010e3a + +00010e33: +00010e34: mem := mem with [0x1800081C0, el]:u64 <- RCX +00010e3d: goto %00010e3a + +00010e3a: +00010e40: call @intrinsic:x86:unlock with return %00010e4b + +00010e4b: +00010e50: when ~ZF goto %00010e4d +00019558: goto %00010cea + +00010cea: +00010cfc: RAX := 63:8[RAX].0 +00010d02: ZF := 1 +00019557: goto %00010d10 + +00010e4d: +00010e6e: #12582483 := RCX - RAX +00010e8d: ZF := 0 = #12582483 +00010e93: when ZF goto %00010d64 +00019556: goto %00010dc1 + +00010d64: +00010d6a: RAX := high:56[RAX].1 +00010d6e: goto %00010d10 + +00010d10: +00010d2f: RSP := RSP + 0x28 +00010d5b: #12582487 := mem[RSP, el]:u64 +00010d5f: RSP := RSP + 8 +00010d62: call #12582487 with noreturn + +0001955a: sub sub_180001163(sub_180001163_result) +000195cb: sub_180001163_result :: out u32 = low:32[RAX] + +00012aa7: +00012aa9: goto %00011be9 + +00011be9: +00011bf3: mem := mem with [RSP + 8, el]:u64 <- RBX +00011bff: mem := mem with [RSP + 0x10, el]:u64 <- RBP +00011c0b: mem := mem with [RSP + 0x18, el]:u64 <- RSI +00011c19: #12582388 := RDI +00011c1d: RSP := RSP - 8 +00011c23: mem := mem with [RSP, el]:u64 <- #12582388 +00011c41: RSP := RSP - 0x20 +00011c65: RDI := R9 +00011c6d: RSI := R8 +00011c75: RBX := pad:64[low:32[RDX]] +00011c7d: RBP := RCX +00011c88: RSP := RSP - 8 +00011c8d: mem := mem with [RSP, el]:u64 <- 0x180001B84 +00011c8f: call @sub_180001087 with return %00011c91 + +00011c91: +00011ca1: #12582384 := low:32[RAX] +00011cb7: ZF := 0 = #12582384 +00011cbe: when ~ZF goto %00011cbb +0001955c: goto %00011f45 + +00011f45: +00011f5b: #12582365 := low:32[RBX] - 1 +00011f77: ZF := 0 = #12582365 +00011f7d: when ~ZF goto %00011cbb +0001955b: goto %00011f81 + +00011f81: +00011f87: R8 := RSI +00011f93: RDX := 0 +00011fad: RCX := RBP +00011fb5: RAX := RDI +00011fc3: #12582363 := mem[0x18000B020, el]:u64 +00011fc7: RSP := RSP - 8 +00011fcc: mem := mem with [RSP, el]:u64 <- 0x180001B9E +00011fcf: call #12582363 with return %00011cbb + +00011cbb: +00011cc9: RDX := mem[RSP + 0x58, el]:u64 +00011cd3: RCX := pad:64[mem[RSP + 0x50, el]:u32] +00011cdd: RBX := mem[RSP + 0x30, el]:u64 +00011ce7: RBP := mem[RSP + 0x38, el]:u64 +00011cf1: RSI := mem[RSP + 0x40, el]:u64 +00011d12: RSP := RSP + 0x20 +00011d3d: RDI := mem[RSP, el]:u64 +00011d41: RSP := RSP + 8 +00011d45: goto %00004def + +00004def: +00004df3: call mem[0x18000A180, el]:u64 with noreturn + +0001955d: sub sub_180001168(sub_180001168_result) +000195cc: sub_180001168_result :: out u32 = low:32[RAX] + +00012aab: +00012aad: goto %000116e9 + +000116e9: +000116f5: #12582428 := RBX +000116f9: RSP := RSP - 8 +000116ff: mem := mem with [RSP, el]:u64 <- #12582428 +0001171d: RSP := RSP - 0x20 +00011741: RAX := pad:64[mem[0x1800081C8]] +00011753: #12582424 := low:32[RCX] +00011769: ZF := 0 = #12582424 +0001176f: RBX := 1 +0001177b: RAX := pad:64[if ZF then 1 else low:32[RAX]] +00011785: mem := mem with [0x1800081C8] <- low:8[RAX] +00011791: RSP := RSP - 8 +00011796: mem := mem with [RSP, el]:u64 <- 0x180001C52 +00011798: call @sub_180001145 with return %0001179d + +0001179d: +000117a7: RSP := RSP - 8 +000117ac: mem := mem with [RSP, el]:u64 <- 0x180001C57 +000117ae: call @sub_18000102d with return %000117bb + +000117bb: +000117cb: #12582422 := low:8[RAX] +000117e1: ZF := 0 = #12582422 +000117e8: when ~ZF goto %000117e5 +00019560: goto %00012228 + +000117e5: +000117f5: RSP := RSP - 8 +000117fa: mem := mem with [RSP, el]:u64 <- 0x180001C64 +000117fc: call @sub_180001122 with return %0001210d + +0001210d: +0001211d: #12582356 := low:8[RAX] +00012133: ZF := 0 = #12582356 +0001213a: when ~ZF goto %00012137 +0001955f: goto %000121f7 + +00012137: +00012145: RAX := high:56[RAX].1 +0001955e: goto %00012147 + +000121f7: +00012201: RCX := 0 +0001221e: RSP := RSP - 8 +00012223: mem := mem with [RSP, el]:u64 <- 0x180001C6F +00012225: call @sub_180001046 with return %00012227 + +00012227: +0001222a: goto %00012228 + +00012228: +00012237: RAX := 63:8[RAX].0 +0001224d: goto %00012147 + +00012147: +00012166: RSP := RSP + 0x20 +00012191: RBX := mem[RSP, el]:u64 +00012195: RSP := RSP + 8 +000121a2: #12582351 := mem[RSP, el]:u64 +000121a6: RSP := RSP + 8 +000121a9: call #12582351 with noreturn + +00019561: sub sub_180001177(sub_180001177_result) +000195cd: sub_180001177_result :: out u32 = low:32[RAX] + +00012ab7: +00012ab9: goto %00011b07 + +00011b07: +00011b23: RSP := RSP - 0x28 +00011b4a: RSP := RSP - 8 +00011b4f: mem := mem with [RSP, el]:u64 <- 0x180001B4D +00011b51: call @sub_1800010e1 with return %00011b53 + +00011b53: +00011b5d: RSP := RSP - 8 +00011b62: mem := mem with [RSP, el]:u64 <- 0x180001B52 +00011b64: call @sub_180001096 with return %00011b71 + +00011b71: +00011b77: RAX := high:56[RAX].1 +00011b98: RSP := RSP + 0x28 +00011bc4: #12582389 := mem[RSP, el]:u64 +00011bc8: RSP := RSP + 8 +00011bcb: call #12582389 with noreturn + +00019562: sub sub_180001181(sub_180001181_result) +000195ce: sub_180001181_result :: out u32 = low:32[RAX] + +00012da3: +00012db1: goto %00011da7 + +00011da7: +00011dc3: RSP := RSP - 0x28 +00011dea: RSP := RSP - 8 +00011def: mem := mem with [RSP, el]:u64 <- 0x180001BE1 +00011df1: call @sub_180001087 with return %00011df3 + +00011df3: +00011e03: #12582376 := low:32[RAX] +00011e19: ZF := 0 = #12582376 +00011e20: when ZF goto %00011e1d +00019564: goto %00011efb + +00011e1d: +00011e2c: RSP := RSP - 8 +00011e31: mem := mem with [RSP, el]:u64 <- 0x180001BFA +00011e33: call @sub_180001032 with return %00011e35 + +00011e35: +00011e45: #12582374 := low:32[RAX] +00011e5b: ZF := 0 = #12582374 +00011e62: when ~ZF goto %00011e5f +00019563: goto %00011ee9 + +00011ee9: +00011ef2: RSP := RSP - 8 +00011ef7: mem := mem with [RSP, el]:u64 <- 0x180001C03 +00011ef9: call @sub_180002794 with return %00011e5f + +00011e5f: +00011e84: RSP := RSP + 0x28 +00011eb0: #12582369 := mem[RSP, el]:u64 +00011eb4: RSP := RSP + 8 +00011eb7: call #12582369 with noreturn + +00011efb: +00011eff: RCX := 0x1800081D0 +00011f20: RSP := RSP + 0x28 +00011f43: goto %00004e0d + +00004e0d: +00004e11: call mem[0x18000A1A8, el]:u64 with noreturn + +00019565: sub sub_180001358(sub_180001358_result) +000195cf: sub_180001358_result :: out u32 = low:32[RAX] + +00012ac0: +00012adf: RSP := RSP - 0x28 +00012b0d: #12582309 := low:32[RDX] +00012b23: ZF := 0 = #12582309 +00012b2a: when ZF goto %00012b27 +00019574: goto %00013ef8 + +00012b27: +00012b3d: #12582307 := R8 +00012b53: ZF := 0 = #12582307 +00012b5d: RCX := 63:8[RCX].pad:8[~ZF] +00012b7e: RSP := RSP + 0x28 +00012ba2: call @sub_180001518 with noreturn + +00013ef8: +00013f10: #12582237 := low:32[RDX] +00013f14: RDX := pad:64[low:32[RDX] - 1] +00013f18: CF := #12582237 < 1 +00013f1e: OF := high:1[(#12582237 ^ 1) & (#12582237 ^ low:32[RDX])] +00013f23: AF := 0x10 = (0x10 & (low:32[RDX] ^ #12582237 ^ 1)) +00013f28: PF := + ~low:1[let $0 = low:32[RDX] >> 4 ^ low:32[RDX] in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013f2c: SF := high:1[low:32[RDX]] +00013f30: ZF := 0 = low:32[RDX] +00013f37: when ZF goto %00013f34 +00019573: goto %00013f86 + +00013f34: +00013f40: RDX := R8 +00013f5d: #12582234 := RSP +00013f6e: OF := ~high:1[#12582234] & (high:1[#12582234] | high:1[RSP]) & + ~(high:1[#12582234] & high:1[RSP]) +00013f78: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013f7c: SF := high:1[RSP] +00013f80: ZF := 0 = RSP +00013f84: goto %000138fe + +000138fe: +00013908: mem := mem with [RSP + 8, el]:u64 <- RBX +00013914: mem := mem with [RSP + 0x10, el]:u64 <- RSI +00013920: mem := mem with [RSP + 0x20, el]:u64 <- RDI +0001392e: #12582264 := R14 +00013932: RSP := RSP - 8 +00013938: mem := mem with [RSP, el]:u64 <- #12582264 +00013952: #12582263 := RSP +00013956: RSP := RSP - 0x20 +0001395a: CF := #12582263 < 0x20 +00013960: OF := high:1[(#12582263 ^ 0x20) & (#12582263 ^ RSP)] +0001396a: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +0001396e: SF := high:1[RSP] +00013972: ZF := 0 = RSP +0001397a: RSI := RDX +00013982: R14 := RCX +0001398e: RCX := 0 +00013991: AF := unknown[bits]:u1 +00013994: ZF := 1 +00013997: PF := 1 +0001399a: OF := 0 +0001399d: CF := 0 +000139a0: SF := 0 +000139ab: RSP := RSP - 8 +000139b0: mem := mem with [RSP, el]:u64 <- 0x1800013DE +000139b2: call @sub_180001168 with return %000139b4 + +000139b4: +000139c4: #12582260 := low:8[RAX] +000139c7: OF := 0 +000139ca: CF := 0 +000139cd: AF := unknown[bits]:u1 +000139d2: PF := + ~low:1[let $0 = #12582260 >> 4 ^ #12582260 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000139d6: SF := high:1[#12582260] +000139da: ZF := 0 = #12582260 +000139e1: when ZF goto %000139de +00019572: goto %00013bba + +00013bba: +00013bc3: RSP := RSP - 8 +00013bc8: mem := mem with [RSP, el]:u64 <- 0x1800013EB +00013bca: call @sub_180001154 with return %00013bcc + +00013bcc: +00013bd4: RBX := high:56[RBX].low:8[RAX] +00013be0: mem := mem with [RSP + 0x40] <- low:8[RAX] +00013be8: RDI := high:56[RDI].1 +00013c00: #12582254 := mem[0x1800081B8, el]:u32 +00013c04: CF := mem[0x1800081B8, el]:u32 < 0 +00013c0a: OF := high:1[mem[0x1800081B8, el]:u32 & + (mem[0x1800081B8, el]:u32 ^ #12582254)] +00013c0f: AF := 0x10 = (0x10 & (#12582254 ^ mem[0x1800081B8, el]:u32)) +00013c14: PF := + ~low:1[let $0 = #12582254 >> 4 ^ #12582254 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013c18: SF := high:1[#12582254] +00013c1c: ZF := 0 = #12582254 +00013c22: when ~ZF goto %00013a84 +00019571: goto %00013c26 + +00013a84: +00013a88: RCX := 7 +00013a93: RSP := RSP - 8 +00013a98: mem := mem with [RSP, el]:u64 <- 0x1800014D0 +00013a9a: call @sub_18000114a with return %00013a9c + +00013a9c: +00013aa0: call @interrupt:#3 with noreturn + +00013aa2: +00013aa4: call @interrupt:#3 with noreturn + +00013aa6: +00013aa8: call @interrupt:#3 with noreturn + +00013aaa: +00013aac: call @interrupt:#3 with noreturn + +00013aae: +00013ab0: call @interrupt:#3 with noreturn + +00013ab2: +00013ab4: call @interrupt:#3 with noreturn + +00013ab6: +00013ab8: call @interrupt:#3 with noreturn + +00013aba: +00013abc: call @interrupt:#3 with noreturn + +00013abe: +00013ac0: call @interrupt:#3 with noreturn + +00013ac2: +00013ac4: call @interrupt:#3 with noreturn + +00013ac6: +00013ac8: call @interrupt:#3 with noreturn + +00013aca: +00013acc: call @interrupt:#3 with noreturn + +00013ace: +00013ad0: call @interrupt:#3 with noreturn + +00013ad2: +00013ad4: call @interrupt:#3 with noreturn + +00013ad6: +00013ad8: call @interrupt:#3 with noreturn + +00013ada: +00013adc: call @interrupt:#3 with noreturn + +00013ade: +00013ae0: call @interrupt:#3 with noreturn + +00013ae2: +00013ae4: call @interrupt:#3 with noreturn + +00013ae6: +00013ae8: call @interrupt:#3 with noreturn + +00013aea: +00013aec: call @interrupt:#3 with noreturn + +00013aee: +00013af0: call @interrupt:#3 with noreturn + +00013af2: +00013af4: call @interrupt:#3 with noreturn + +00013af6: +00013af8: call @interrupt:#3 with noreturn + +00013afa: +00013afc: call @interrupt:#3 with noreturn + +00013afe: +00013b00: call @interrupt:#3 with noreturn + +00013b02: +00013b04: call @interrupt:#3 with noreturn + +00013b06: +00013b08: call @interrupt:#3 with noreturn + +00013b0a: +00013b0c: call @interrupt:#3 with noreturn + +00013b0e: +00013b10: call @interrupt:#3 with noreturn + +00013b12: +00013b14: call @interrupt:#3 with noreturn + +00013b16: +00013b18: call @interrupt:#3 with noreturn + +00013b1a: +00013b1c: call @interrupt:#3 with noreturn + +00013b1e: +00013b20: call @interrupt:#3 with noreturn + +00013b22: +00013b24: call @interrupt:#3 with noreturn + +00013b26: +00013b28: call @interrupt:#3 with noreturn + +00013b2a: +00013b2c: call @interrupt:#3 with noreturn + +00013b2e: +00013b30: call @interrupt:#3 with noreturn + +00013b32: +00013b34: call @interrupt:#3 with noreturn + +00013b36: +00013b38: call @interrupt:#3 with noreturn + +00013b3a: +00013b3c: call @interrupt:#3 with noreturn + +00013b3e: +00013b40: call @interrupt:#3 with noreturn + +00013b42: +00013b44: call @interrupt:#3 with noreturn + +00013b46: +00013b48: call @interrupt:#3 with noreturn + +00013b4a: +00013b4c: call @interrupt:#3 with noreturn + +00013b4e: +00013b50: call @interrupt:#3 with noreturn + +00013b52: +00013b54: call @interrupt:#3 with noreturn + +00013b56: +00013b58: call @interrupt:#3 with noreturn + +00013b5a: +00013b5c: call @interrupt:#3 with noreturn + +00013b5e: +00013b60: call @interrupt:#3 with noreturn + +00013b62: +00013b64: call @interrupt:#3 with noreturn + +00013b66: +00013b68: call @interrupt:#3 with noreturn + +00013b6a: +00013b6c: call @interrupt:#3 with noreturn + +00013b6e: +00013b70: call @interrupt:#3 with noreturn + +00013b72: +00013b74: call @interrupt:#3 with noreturn + +00013b76: +00013b78: call @interrupt:#3 with noreturn + +00013b7a: +00013b7c: call @interrupt:#3 with noreturn + +00013b7e: +00013b80: call @interrupt:#3 with noreturn + +00013b82: +00013b84: call @interrupt:#3 with noreturn + +00013b86: +00013b88: call @interrupt:#3 with noreturn + +00013b8a: +00013b8c: call @interrupt:#3 with noreturn + +00013b8e: +00013b90: call @interrupt:#3 with noreturn + +00013b92: +00013b94: call @interrupt:#3 with noreturn + +00013b96: +00013b98: call @interrupt:#3 with noreturn + +00013b9a: +00013b9c: call @interrupt:#3 with noreturn + +00013b9e: +00013ba0: call @interrupt:#3 with noreturn + +00013ba2: +00013ba4: call @interrupt:#3 with noreturn + +00013ba6: +00013ba8: call @interrupt:#3 with noreturn + +00013baa: +00013bac: call @interrupt:#3 with noreturn + +00013bae: +00013bb0: call @interrupt:#3 with noreturn + +00013bb2: +00013bb4: call @interrupt:#3 with noreturn + +00013bb6: +00013bb8: call @interrupt:#3 with noreturn +00019570: call @sub_180001518 with noreturn + +00013c26: +00013c2c: mem := mem with [0x1800081B8, el]:u32 <- 1 +00013c37: RSP := RSP - 8 +00013c3c: mem := mem with [RSP, el]:u64 <- 0x180001410 +00013c3e: call @sub_180001019 with return %00013c40 + +00013c40: +00013c50: #12582252 := low:8[RAX] +00013c53: OF := 0 +00013c56: CF := 0 +00013c59: AF := unknown[bits]:u1 +00013c5e: PF := + ~low:1[let $0 = #12582252 >> 4 ^ #12582252 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013c62: SF := high:1[#12582252] +00013c66: ZF := 0 = #12582252 +00013c6d: when ZF goto %00013c6a +0001956f: goto %00013dec + +00013dec: +00013df5: RSP := RSP - 8 +00013dfa: mem := mem with [RSP, el]:u64 <- 0x180001419 +00013dfc: call @sub_1800010cd with return %00013dfe + +00013dfe: +00013e07: RSP := RSP - 8 +00013e0c: mem := mem with [RSP, el]:u64 <- 0x18000141E +00013e0e: call @sub_180001041 with return %00013e10 + +00013e10: +00013e19: RSP := RSP - 8 +00013e1e: mem := mem with [RSP, el]:u64 <- 0x180001423 +00013e20: call @sub_180001127 with return %00013e22 + +00013e22: +00013e26: RDX := 0x180006330 +00013e2c: RCX := 0x180006220 +00013e37: RSP := RSP - 8 +00013e3c: mem := mem with [RSP, el]:u64 <- 0x180001436 +00013e3e: call @sub_18000275e with return %00013e40 + +00013e40: +00013e50: #12582241 := low:32[RAX] +00013e53: OF := 0 +00013e56: CF := 0 +00013e59: AF := unknown[bits]:u1 +00013e5e: PF := + ~low:1[let $0 = #12582241 >> 4 ^ #12582241 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013e62: SF := high:1[#12582241] +00013e66: ZF := 0 = #12582241 +00013e6c: when ~ZF goto %00013c6a +0001956e: goto %00013e70 + +00013e70: +00013e79: RSP := RSP - 8 +00013e7e: mem := mem with [RSP, el]:u64 <- 0x18000143F +00013e80: call @sub_18000113b with return %00013e82 + +00013e82: +00013e92: #12582239 := low:8[RAX] +00013e95: OF := 0 +00013e98: CF := 0 +00013e9b: AF := unknown[bits]:u1 +00013ea0: PF := + ~low:1[let $0 = #12582239 >> 4 ^ #12582239 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013ea4: SF := high:1[#12582239] +00013ea8: ZF := 0 = #12582239 +00013eae: when ZF goto %00013c6a +0001956d: goto %00013eb2 + +00013eb2: +00013eb6: RDX := 0x180006110 +00013ebc: RCX := 0x180006000 +00013ec7: RSP := RSP - 8 +00013ecc: mem := mem with [RSP, el]:u64 <- 0x180001456 +00013ece: call @sub_180002758 with return %00013ed0 + +00013ed0: +00013ed6: mem := mem with [0x1800081B8, el]:u32 <- 2 +00013ee4: RDI := 63:8[RDI].0 +00013ee7: AF := unknown[bits]:u1 +00013eea: ZF := 1 +00013eed: PF := 1 +00013ef0: OF := 0 +00013ef3: CF := 0 +00013ef6: SF := 0 +0001956c: goto %00013c6a + +00013c6a: +00013c78: RCX := high:56[RCX].low:8[RBX] +00013c83: RSP := RSP - 8 +00013c88: mem := mem with [RSP, el]:u64 <- 0x18000146A +00013c8a: call @sub_180001140 with return %00013c8c + +00013c8c: +00013c9c: #12582250 := low:8[RDI] +00013c9f: OF := 0 +00013ca2: CF := 0 +00013ca5: AF := unknown[bits]:u1 +00013caa: PF := + ~low:1[let $0 = #12582250 >> 4 ^ #12582250 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013cae: SF := high:1[#12582250] +00013cb2: ZF := 0 = #12582250 +00013cb8: when ~ZF goto %000139de +0001956b: goto %00013cbc + +000139de: +000139ee: RAX := 0 +000139f1: AF := unknown[bits]:u1 +000139f4: ZF := 1 +000139f7: PF := 1 +000139fa: OF := 0 +000139fd: CF := 0 +00013a00: SF := 0 +0001956a: goto %00013a02 + +00013cbc: +00013cc5: RSP := RSP - 8 +00013cca: mem := mem with [RSP, el]:u64 <- 0x180001474 +00013ccc: call @sub_180001109 with return %00013cce + +00013cce: +00013cd4: RBX := RAX +00013cf7: CF := mem[RAX, el]:u64 < 0 +00013cff: OF := high:1[mem[RAX, el]:u64 & (mem[RAX, el]:u64 ^ #12582248)] +00013d05: AF := 0x10 = (0x10 & (#12582248 ^ mem[RAX, el]:u64)) +00013d0a: PF := + ~low:1[let $0 = #12582248 >> 4 ^ #12582248 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013d0e: SF := high:1[#12582248] +00013d12: ZF := 0 = #12582248 +00013d19: when ZF goto %00013d16 +00019569: goto %00013d60 + +00013d60: +00013d66: RCX := RAX +00013d71: RSP := RSP - 8 +00013d76: mem := mem with [RSP, el]:u64 <- 0x180001485 +00013d78: call @sub_18000108c with return %00013d7a + +00013d7a: +00013d8a: #12582244 := low:8[RAX] +00013d8d: OF := 0 +00013d90: CF := 0 +00013d93: AF := unknown[bits]:u1 +00013d98: PF := + ~low:1[let $0 = #12582244 >> 4 ^ #12582244 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013d9c: SF := high:1[#12582244] +00013da0: ZF := 0 = #12582244 +00013da6: when ZF goto %00013d16 +00019568: goto %00013daa + +00013daa: +00013db0: R8 := RSI +00013db6: RDX := 2 +00013dbe: RCX := R14 +00013dc8: RAX := mem[RBX, el]:u64 +00013dd0: R9 := mem[0x18000B020, el]:u64 +00013dde: #12582242 := R9 +00013de2: RSP := RSP - 8 +00013de7: mem := mem with [RSP, el]:u64 <- 0x1800014A1 +00013dea: call #12582242 with return %00013d16 + +00013d16: +00013d42: OF := ~high:1[#12582246] & + (high:1[#12582246] | high:1[mem[0x180008170, el]:u32]) & + ~(high:1[#12582246] & high:1[mem[0x180008170, el]:u32]) +00013d4c: PF := + ~low:1[let $0 = mem[0x180008170, el]:u32 >> 4 ^ + mem[0x180008170, el]:u32 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013d50: SF := high:1[mem[0x180008170, el]:u32] +00013d54: ZF := 0 = mem[0x180008170, el]:u32 +00013d5a: RAX := 1 +00013d5e: goto %00013a02 + +00013a02: +00013a0a: RBX := mem[RSP + 0x30, el]:u64 +00013a14: RSI := mem[RSP + 0x38, el]:u64 +00013a1e: RDI := mem[RSP + 0x48, el]:u64 +00013a3b: #12582258 := RSP +00013a4c: OF := ~high:1[#12582258] & (high:1[#12582258] | high:1[RSP]) & + ~(high:1[#12582258] & high:1[RSP]) +00013a56: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013a5a: SF := high:1[RSP] +00013a5e: ZF := 0 = RSP +00013a6a: R14 := mem[RSP, el]:u64 +00013a6e: RSP := RSP + 8 +00013a7b: #12582255 := mem[RSP, el]:u64 +00013a7f: RSP := RSP + 8 +00013a82: call #12582255 with noreturn + +00013f86: +00013f9e: #12582231 := low:32[RDX] +00013fa2: RDX := pad:64[low:32[RDX] - 1] +00013fa6: CF := #12582231 < 1 +00013fac: OF := high:1[(#12582231 ^ 1) & (#12582231 ^ low:32[RDX])] +00013fb1: AF := 0x10 = (0x10 & (low:32[RDX] ^ #12582231 ^ 1)) +00013fb6: PF := + ~low:1[let $0 = low:32[RDX] >> 4 ^ low:32[RDX] in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013fba: SF := high:1[low:32[RDX]] +00013fbe: ZF := 0 = low:32[RDX] +00013fc5: when ZF goto %00013fc2 +00019567: goto %00014036 + +00013fc2: +00013fd1: RSP := RSP - 8 +00013fd6: mem := mem with [RSP, el]:u64 <- 0x180001385 +00013fd8: call @sub_18000111d with return %00013fda + +00014036: +0001404c: #12582224 := low:32[RDX] - 1 +00014050: CF := low:32[RDX] < 1 +00014056: OF := high:1[(low:32[RDX] ^ 1) & (low:32[RDX] ^ #12582224)] +0001405b: AF := 0x10 = (0x10 & (#12582224 ^ low:32[RDX] ^ 1)) +00014060: PF := + ~low:1[let $0 = #12582224 >> 4 ^ #12582224 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00014064: SF := high:1[#12582224] +00014068: ZF := 0 = #12582224 +0001406f: when ZF goto %0001406c +00019566: goto %00014088 + +0001406c: +0001407b: RSP := RSP - 8 +00014080: mem := mem with [RSP, el]:u64 <- 0x18000137E +00014082: call @sub_180001177 with return %00014084 + +00014084: +00014086: goto %00013fda + +00013fda: +00013fe0: RAX := pad:64[low:8[RAX]] +00013ffd: #12582228 := RSP +0001400e: OF := ~high:1[#12582228] & (high:1[#12582228] | high:1[RSP]) & + ~(high:1[#12582228] & high:1[RSP]) +00014018: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +0001401c: SF := high:1[RSP] +00014020: ZF := 0 = RSP +0001402d: #12582225 := mem[RSP, el]:u64 +00014031: RSP := RSP + 8 +00014034: call #12582225 with noreturn + +00014088: +0001408c: RAX := 1 +000140a9: #12582222 := RSP +000140ba: OF := ~high:1[#12582222] & (high:1[#12582222] | high:1[RSP]) & + ~(high:1[#12582222] & high:1[RSP]) +000140c4: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000140c8: SF := high:1[RSP] +000140cc: ZF := 0 = RSP +000140d9: #12582219 := mem[RSP, el]:u64 +000140dd: RSP := RSP + 8 +000140e0: call #12582219 with noreturn + +00019575: sub sub_180001518(sub_180001518_result) +000195d0: sub_180001518_result :: out u32 = low:32[RAX] + +00012ba0: +00012bad: mem := mem with [RSP + 8, el]:u64 <- RBX +00012bbb: #12582302 := RDI +00012bbf: RSP := RSP - 8 +00012bc5: mem := mem with [RSP, el]:u64 <- #12582302 +00012be3: RSP := RSP - 0x30 +00012c09: RDI := high:56[RDI].low:8[RCX] +00012c11: RAX := pad:64[mem[0x180008170, el]:u32] +00012c23: #12582298 := low:32[RAX] +00012c35: SF := high:1[#12582298] +00012c39: ZF := 0 = #12582298 +00012c48: when ~(ZF | SF) goto %00012c41 +00019579: goto %00013890 + +00012c41: +00012c65: RAX := pad:64[low:32[RAX] - 1] +00012c87: mem := mem with [0x180008170, el]:u32 <- low:32[RAX] +00012c92: RSP := RSP - 8 +00012c97: mem := mem with [RSP, el]:u64 <- 0x180001549 +00012c99: call @sub_180001154 with return %00012c9b + +00012c9b: +00012ca3: RBX := high:56[RBX].low:8[RAX] +00012caf: mem := mem with [RSP + 0x20] <- low:8[RAX] +00012cc7: #12582294 := mem[0x1800081B8, el]:u32 - 2 +00012ce3: ZF := 0 = #12582294 +00012cea: when ~ZF goto %00012ce7 +00019578: goto %00012d9d + +00012ce7: +00012cf1: RCX := 7 +00012cfc: RSP := RSP - 8 +00012d01: mem := mem with [RSP, el]:u64 <- 0x180001599 +00012d03: call @sub_18000114a with return %00012d05 + +00012d05: +00012d0b: call @interrupt:#3 with noreturn + +00012d0d: +00012d0f: call @interrupt:#3 with noreturn + +00012d11: +00012d13: call @interrupt:#3 with noreturn + +00012d15: +00012d17: call @interrupt:#3 with noreturn + +00012d19: +00012d1b: call @interrupt:#3 with noreturn + +00012d1d: +00012d1f: call @interrupt:#3 with noreturn + +00012d21: +00012d23: call @interrupt:#3 with noreturn + +00012d25: +00012d27: call @interrupt:#3 with noreturn + +00012d29: +00012d2b: call @interrupt:#3 with noreturn + +00012d2d: +00012d2f: call @interrupt:#3 with noreturn + +00012d31: +00012d33: call @interrupt:#3 with noreturn + +00012d35: +00012d37: call @interrupt:#3 with noreturn + +00012d39: +00012d3b: call @interrupt:#3 with noreturn + +00012d3d: +00012d3f: call @interrupt:#3 with noreturn + +00012d41: +00012d43: call @interrupt:#3 with noreturn + +00012d45: +00012d47: call @interrupt:#3 with noreturn + +00012d49: +00012d4b: call @interrupt:#3 with noreturn + +00012d4d: +00012d4f: call @interrupt:#3 with noreturn + +00012d51: +00012d53: call @interrupt:#3 with noreturn + +00012d55: +00012d57: call @interrupt:#3 with noreturn + +00012d59: +00012d5b: call @interrupt:#3 with noreturn + +00012d5d: +00012d5f: call @interrupt:#3 with noreturn + +00012d61: +00012d63: call @interrupt:#3 with noreturn + +00012d65: +00012d67: call @interrupt:#3 with noreturn + +00012d69: +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 +00019577: call @sub_1800015c0 with noreturn + +00012d9d: +00012da7: RSP := RSP - 8 +00012dac: mem := mem with [RSP, el]:u64 <- 0x18000155D +00012dae: call @sub_180001181 with return %0001351e + +0001351e: +00013527: RSP := RSP - 8 +0001352c: mem := mem with [RSP, el]:u64 <- 0x180001562 +0001352e: call @sub_18000110e with return %00013530 + +00013530: +00013539: RSP := RSP - 8 +0001353e: mem := mem with [RSP, el]:u64 <- 0x180001567 +00013540: call @sub_1800010d7 with return %00013542 + +00013542: +00013552: mem := mem with [0x1800081B8, el]:u32 <- 0 +00013555: OF := 0 +00013558: CF := 0 +00013560: PF := + ~low:1[let $0 = mem[0x1800081B8, el]:u32 >> 4 ^ + mem[0x1800081B8, el]:u32 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013564: SF := high:1[mem[0x1800081B8, el]:u32] +00013568: ZF := 0 = mem[0x1800081B8, el]:u32 +00013572: RCX := high:56[RCX].low:8[RBX] +0001357d: RSP := RSP - 8 +00013582: mem := mem with [RSP, el]:u64 <- 0x180001575 +00013584: call @sub_180001140 with return %00013586 + +00013752: +00013772: CF := #12582274 <> 0 +00013776: OF := #12582274 = 0x80 +00013780: PF := + ~low:1[let $0 = low:8[RAX] >> 4 ^ low:8[RAX] in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013784: SF := high:1[low:8[RAX]] +00013788: ZF := 0 = low:8[RAX] +000137ad: #12582272 := low:32[RBX] +000137b7: RBX := pad:64[#12582271 - #12582272 + pad:32[CF]] +000137be: OF := high:1[(#12582272 ^ #12582271) & (#12582271 ^ low:32[RBX])] +000137c7: CF := #12582271 < #12582272 + pad:32[CF] | #12582272 + pad:32[CF] < + #12582272 +000137d2: PF := + ~low:1[let $0 = low:32[RBX] >> 4 ^ low:32[RBX] in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000137d6: SF := high:1[low:32[RBX]] +000137da: ZF := 0 = low:32[RBX] +000137ec: RBX := pad:64[low:32[RBX] & 1] +000137ef: OF := 0 +000137f2: CF := 0 +000137fa: PF := + ~low:1[let $0 = low:32[RBX] >> 4 ^ low:32[RBX] in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000137fe: SF := high:1[low:32[RBX]] +00013802: ZF := 0 = low:32[RBX] +0001380d: RSP := RSP - 8 +00013812: mem := mem with [RSP, el]:u64 <- 0x18000158B +00013814: call @sub_180001118 with return %00013816 + +00013816: +0001381c: RAX := pad:64[low:32[RBX]] +00013821: goto %0001381f + +0001381f: +0001382a: RBX := mem[RSP + 0x40, el]:u64 +00013847: #12582268 := RSP +00013858: OF := ~high:1[#12582268] & (high:1[#12582268] | high:1[RSP]) & + ~(high:1[#12582268] & high:1[RSP]) +00013862: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00013866: SF := high:1[RSP] +0001386a: ZF := 0 = RSP +00013876: RDI := mem[RSP, el]:u64 +0001387a: RSP := RSP + 8 +00013887: #12582265 := mem[RSP, el]:u64 +0001388b: RSP := RSP + 8 +0001388e: call #12582265 with noreturn + +0001957a: sub sub_1800015c0(sub_1800015c0_result) +000195d1: sub_1800015c0_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 +00019589: goto %000190d6 + +000190d6: +000190f1: #12582123 := mem[0x180008170, el]:u32 - low:32[RDX] +000190fd: OF := high:1[(mem[0x180008170, el]:u32 ^ low:32[RDX]) & + (mem[0x180008170, el]:u32 ^ #12582123)] +00019103: AF := 0x10 = + (0x10 & (#12582123 ^ mem[0x180008170, el]:u32 ^ low:32[RDX])) +00019108: PF := + ~low:1[let $0 = #12582123 >> 4 ^ #12582123 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +0001910c: SF := high:1[#12582123] +00019110: ZF := 0 = #12582123 +0001911e: when ~(ZF | (SF | OF) & ~(SF & OF)) goto %00004c2e +00019588: goto %00019122 + +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 +00019587: goto %00018fc4 + +00018fc4: +00018fca: RAX := mem[0x180006880, el]:u64 +00018fdc: #12582130 := RAX +00018fdf: OF := 0 +00018fe2: CF := 0 +00018fe5: AF := unknown[bits]:u1 +00018fea: PF := + ~low:1[let $0 = #12582130 >> 4 ^ #12582130 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018fee: SF := high:1[#12582130] +00018ff2: ZF := 0 = #12582130 +00018ff9: when ~ZF goto %00018ff6 +00019586: goto %000190c8 + +00018ff6: +00019008: #12582128 := mem[0x18000B020, el]:u64 +0001900c: RSP := RSP - 8 +00019011: mem := mem with [RSP, el]:u64 <- 0x180001619 +00019014: call #12582128 with return %00019016 + +00019016: +0001901c: RBX := pad:64[low:32[RAX]] +00019028: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +0001903a: #12582127 := low:32[RAX] +0001903d: OF := 0 +00019040: CF := 0 +00019043: AF := unknown[bits]:u1 +00019048: PF := + ~low:1[let $0 = #12582127 >> 4 ^ #12582127 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +0001904c: SF := high:1[#12582127] +00019050: ZF := 0 = #12582127 +00019056: when ZF goto %00018b44 +00019585: goto %0001905a + +000190c8: +000190d0: mem := mem with [RSP + 0x30, el]:u32 <- 1 +000190d4: goto %0001905a + +0001905a: +00019060: R8 := RSI +00019068: RDX := pad:64[low:32[RDI]] +00019070: RCX := R14 +0001907b: RSP := RSP - 8 +00019080: mem := mem with [RSP, el]:u64 <- 0x180001634 +00019082: call @sub_180001358 with return %00019084 + +00019084: +0001908a: RBX := pad:64[low:32[RAX]] +00019096: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +000190a8: #12582125 := low:32[RAX] +000190ab: OF := 0 +000190ae: CF := 0 +000190b1: AF := unknown[bits]:u1 +000190b6: PF := + ~low:1[let $0 = #12582125 >> 4 ^ #12582125 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +000190ba: SF := high:1[#12582125] +000190be: ZF := 0 = #12582125 +000190c4: when ZF goto %00018b44 +00019584: 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 <- 0x18000164F +00004ca3: call @sub_1800010b4 with return %00018a5c + +00018a5c: +00018a62: RBX := pad:64[low:32[RAX]] +00018a6e: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +00018a86: #12582155 := low:32[RDI] - 1 +00018a8a: CF := low:32[RDI] < 1 +00018a90: OF := high:1[(low:32[RDI] ^ 1) & (low:32[RDI] ^ #12582155)] +00018a95: AF := 0x10 = (0x10 & (#12582155 ^ low:32[RDI] ^ 1)) +00018a9a: PF := + ~low:1[let $0 = #12582155 >> 4 ^ #12582155 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018a9e: SF := high:1[#12582155] +00018aa2: ZF := 0 = #12582155 +00018aa9: when ~ZF goto %00018aa6 +00019583: goto %00018e90 + +00018e90: +00018ea0: #12582137 := low:32[RAX] +00018ea3: OF := 0 +00018ea6: CF := 0 +00018ea9: AF := unknown[bits]:u1 +00018eae: PF := + ~low:1[let $0 = #12582137 >> 4 ^ #12582137 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018eb2: SF := high:1[#12582137] +00018eb6: ZF := 0 = #12582137 +00018ebc: when ~ZF goto %00018aa6 +00019582: goto %00018ec0 + +00018ec0: +00018ec6: R8 := RSI +00018ed2: RDX := 0 +00018ed5: AF := unknown[bits]:u1 +00018ed8: ZF := 1 +00018edb: PF := 1 +00018ede: OF := 0 +00018ee1: CF := 0 +00018ee4: SF := 0 +00018eec: RCX := R14 +00018ef7: RSP := RSP - 8 +00018efc: mem := mem with [RSP, el]:u64 <- 0x18000166B +00018efe: call @sub_1800010b4 with return %00018f00 + +00018f00: +00018f10: #12582135 := RSI +00018f13: OF := 0 +00018f16: CF := 0 +00018f19: AF := unknown[bits]:u1 +00018f1e: PF := + ~low:1[let $0 = #12582135 >> 4 ^ #12582135 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018f22: SF := high:1[#12582135] +00018f26: ZF := 0 = #12582135 +00018f30: RCX := 63:8[RCX].pad:8[~ZF] +00018f3b: RSP := RSP - 8 +00018f40: mem := mem with [RSP, el]:u64 <- 0x180001676 +00018f42: call @sub_180001518 with return %00018f44 + +00018f44: +00018f4a: RAX := mem[0x180006880, el]:u64 +00018f5c: #12582133 := RAX +00018f5f: OF := 0 +00018f62: CF := 0 +00018f65: AF := unknown[bits]:u1 +00018f6a: PF := + ~low:1[let $0 = #12582133 >> 4 ^ #12582133 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018f6e: SF := high:1[#12582133] +00018f72: ZF := 0 = #12582133 +00018f78: when ZF goto %00018aa6 +00019581: goto %00018f7c + +00018f7c: +00018f82: R8 := RSI +00018f8e: RDX := 0 +00018f91: AF := unknown[bits]:u1 +00018f94: ZF := 1 +00018f97: PF := 1 +00018f9a: OF := 0 +00018f9d: CF := 0 +00018fa0: SF := 0 +00018fa8: RCX := R14 +00018fb6: #12582131 := mem[0x18000B020, el]:u64 +00018fba: RSP := RSP - 8 +00018fbf: mem := mem with [RSP, el]:u64 <- 0x180001690 +00018fc2: call #12582131 with return %00018aa6 + +00018aa6: +00018abc: #12582153 := low:32[RDI] +00018abf: OF := 0 +00018ac2: CF := 0 +00018ac5: AF := unknown[bits]:u1 +00018aca: PF := + ~low:1[let $0 = #12582153 >> 4 ^ #12582153 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018ace: SF := high:1[#12582153] +00018ad2: ZF := 0 = #12582153 +00018ad9: when ZF goto %00018ad6 +00019580: goto %00018e54 + +00018e54: +00018e6a: #12582139 := low:32[RDI] - 3 +00018e6e: CF := low:32[RDI] < 3 +00018e74: OF := high:1[(low:32[RDI] ^ 3) & (low:32[RDI] ^ #12582139)] +00018e79: AF := 0x10 = (0x10 & (#12582139 ^ low:32[RDI] ^ 3)) +00018e7e: PF := + ~low:1[let $0 = #12582139 >> 4 ^ #12582139 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018e82: SF := high:1[#12582139] +00018e86: ZF := 0 = #12582139 +00018e8c: when ~ZF goto %00018b44 +0001957f: goto %00018ad6 + +00018ad6: +00018ae2: R8 := RSI +00018aea: RDX := pad:64[low:32[RDI]] +00018af2: RCX := R14 +00018afd: RSP := RSP - 8 +00018b02: mem := mem with [RSP, el]:u64 <- 0x1800016A6 +00018b04: call @sub_180001358 with return %00018b06 + +00018b06: +00018b0c: RBX := pad:64[low:32[RAX]] +00018b18: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +00018b2a: #12582151 := low:32[RAX] +00018b2d: OF := 0 +00018b30: CF := 0 +00018b33: AF := unknown[bits]:u1 +00018b38: PF := + ~low:1[let $0 = #12582151 >> 4 ^ #12582151 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018b3c: SF := high:1[#12582151] +00018b40: ZF := 0 = #12582151 +00018b47: when ZF goto %00018b44 +0001957e: goto %00018dbe + +00018dbe: +00018dc4: RAX := mem[0x180006880, el]:u64 +00018dd6: #12582142 := RAX +00018dd9: OF := 0 +00018ddc: CF := 0 +00018ddf: AF := unknown[bits]:u1 +00018de4: PF := + ~low:1[let $0 = #12582142 >> 4 ^ #12582142 in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018de8: SF := high:1[#12582142] +00018dec: ZF := 0 = #12582142 +00018df3: when ~ZF goto %00018df0 +0001957d: goto %00018e3c + +00018df0: +00018dfc: R8 := RSI +00018e04: RDX := pad:64[low:32[RDI]] +00018e0c: RCX := R14 +00018e1a: #12582140 := mem[0x18000B020, el]:u64 +00018e1e: RSP := RSP - 8 +00018e23: mem := mem with [RSP, el]:u64 <- 0x1800016D3 +00018e26: call #12582140 with return %00018e28 + +00018e28: +00018e2e: RBX := pad:64[low:32[RAX]] +00018e3a: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RAX] +0001957c: goto %00018b44 + +00018e3c: +00018e42: RBX := pad:64[low:32[RAX + 1]] +00018e4e: mem := mem with [RSP + 0x30, el]:u32 <- low:32[RBX] +00018e52: goto %00018b44 + +00018b44: +00018b4d: goto %00018b4b + +00018b4b: +00018b54: RAX := pad:64[low:32[RBX]] +0001957b: goto %00018b56 + +00018b56: +00018b5e: RBX := mem[RSP + 0x78, el]:u64 +00018b7b: #12582149 := RSP +00018b8c: OF := ~high:1[#12582149] & (high:1[#12582149] | high:1[RSP]) & + ~(high:1[#12582149] & high:1[RSP]) +00018b96: PF := + ~low:1[let $0 = RSP >> 4 ^ RSP in + let $1 = $0 >> 2 ^ $0 in $1 >> 1 ^ $1] +00018b9a: SF := high:1[RSP] +00018b9e: ZF := 0 = RSP +00018baa: R14 := mem[RSP, el]:u64 +00018bae: RSP := RSP + 8 +00018bba: RDI := mem[RSP, el]:u64 +00018bbe: RSP := RSP + 8 +00018bca: RSI := mem[RSP, el]:u64 +00018bce: RSP := RSP + 8 +00018bdb: #12582146 := mem[RSP, el]:u64 +00018bdf: RSP := RSP + 8 +00018be2: call #12582146 with noreturn + +0001958a: sub sub_180001d3c(sub_180001d3c_result) +000195d2: sub_180001d3c_result :: out u32 = low:32[RAX] + +0000d696: +0000d6b5: RSP := RSP - 0x18 +0000d6d9: R8 := RCX +0000d6df: RAX := 0x5A4D +0000d6fc: #12582860 := mem[0x180000000, el]:u16 - 0x5A4D +0000d71b: ZF := 0 = #12582860 +0000d722: when ~ZF goto %0000d71f +00019594: goto %0000d85d + +0000d85d: +0000d863: RCX := extend:64[mem[0x18000003C, el]:u32] +0000d869: RDX := 0x180000000 +0000d894: RCX := RCX + 0x180000000 +0000d8d3: #12582851 := mem[RCX, el]:u32 - 0x4550 +0000d8f3: ZF := 0 = #12582851 +0000d8f9: when ~ZF goto %0000d71f +00019593: goto %0000d8fd + +0000d8fd: +0000d901: RAX := 0x20B +0000d924: #12582849 := mem[RCX + 0x18, el]:u16 - 0x20B +0000d947: ZF := 0 = #12582849 +0000d94d: when ~ZF goto %0000d71f +00019592: goto %0000d951 + +0000d71f: +0000d731: RAX := 63:8[RAX].0 +0000d748: goto %0000d746 + +0000d951: +0000d978: R8 := R8 - 0x180000000 +0000d9a1: RDX := pad:64[mem[RCX + 0x14, el]:u16] +0000d9c2: RDX := RDX + 0x18 +0000da07: #12582840 := RCX +0000da0c: RDX := RDX + #12582840 +0000da37: RAX := pad:64[mem[RCX + 6, el]:u16] +0000da41: RCX := RAX + (RAX << 2) +0000da4b: R9 := RDX + (RCX << 3) +00019591: goto %0000da4d + +0000da4d: +0000da57: mem := mem with [RSP, el]:u64 <- RDX +0000da74: #12582838 := RDX - R9 +0000da93: ZF := 0 = #12582838 +0000da9a: when ZF goto %0000da97 +00019590: goto %0000db8b + +0000da97: +0000daa7: RDX := 0 +0001958f: goto %0000dabb + +0000db8b: +0000db93: RCX := pad:64[mem[RDX + 0xC, el]:u32] +0000dbb5: CF := R8 < RCX +0000dbd6: when CF goto %0000dbd3 +0001958e: goto %0000dc1d + +0000dc1d: +0000dc25: RAX := pad:64[mem[RDX + 8, el]:u32] +0000dc4b: #12582826 := low:32[RCX] +0000dc50: RAX := pad:64[low:32[RAX] + #12582826] +0000dc93: CF := R8 < RAX +0000dcb3: when CF goto %0000dabb +0001958d: goto %0000dbd3 + +0000dabb: +0000dacb: #12582836 := RDX +0000dae1: ZF := 0 = #12582836 +0000dae8: when ~ZF goto %0000dae5 +0001958c: goto %0000db67 + +0000dae5: +0000db07: #12582834 := mem[RDX + 0x24, el]:u32 +0000db14: OF := high:1[mem[RDX + 0x24, el]:u32 & + (mem[RDX + 0x24, el]:u32 ^ #12582834)] +0000db23: SF := high:1[#12582834] +0000db34: when ~((SF | OF) & ~(SF & OF)) goto %0000db2e +0001958b: goto %0000db43 + +0000db2e: +0000db3d: RAX := high:56[RAX].1 +0000db41: goto %0000d746 + +0000db43: +0000db4f: RAX := 63:8[RAX].0 +0000db65: goto %0000d746 + +0000db67: +0000db73: RAX := 63:8[RAX].0 +0000db89: goto %0000d746 + +0000d746: +0000d768: RSP := RSP + 0x18 +0000d794: #12582855 := mem[RSP, el]:u64 +0000d798: RSP := RSP + 8 +0000d79b: call #12582855 with noreturn + +0000dbd3: +0000dbf8: RDX := RDX + 0x28 +0000dc1b: goto %0000da4d + +00019595: sub sub_180002746(sub_180002746_result) +000195d3: sub_180002746_result :: out u32 = low:32[RAX] + +00004dd1: +00004dd5: call mem[0x18000A0F8, el]:u64 with noreturn + +00019596: sub sub_18000274c(sub_18000274c_result) +000195d4: sub_18000274c_result :: out u32 = low:32[RAX] + +00004dd7: +00004ddb: call mem[0x18000A100, el]:u64 with noreturn + +00019597: sub sub_180002752(sub_180002752_result) +000195d5: sub_180002752_result :: out u32 = low:32[RAX] + +00004ddd: +00004de1: call mem[0x18000A108, el]:u64 with noreturn + +00019598: sub sub_180002758(sub_180002758_result) +000195d6: sub_180002758_result :: out u32 = low:32[RAX] + +00004de3: +00004de7: call mem[0x18000A1A0, el]:u64 with noreturn + +00019599: sub sub_18000275e(sub_18000275e_result) +000195d7: sub_18000275e_result :: out u32 = low:32[RAX] + +00004de9: +00004ded: call mem[0x18000A178, el]:u64 with noreturn + +0001959a: sub sub_18000276a(sub_18000276a_result) +000195d8: sub_18000276a_result :: out u32 = low:32[RAX] + +00004df5: +00004df9: call mem[0x18000A188, el]:u64 with noreturn + +0001959b: sub sub_180002770(sub_180002770_result) +000195d9: sub_180002770_result :: out u32 = low:32[RAX] + +00004dfb: +00004dff: call mem[0x18000A190, el]:u64 with noreturn + +0001959c: sub sub_180002776(sub_180002776_result) +000195da: sub_180002776_result :: out u32 = low:32[RAX] + +00004e01: +00004e05: call mem[0x18000A198, el]:u64 with noreturn + +0001959d: sub sub_18000277c(sub_18000277c_result) +000195db: sub_18000277c_result :: out u32 = low:32[RAX] + +00004e07: +00004e0b: call mem[0x18000A1D0, el]:u64 with noreturn + +0001959e: sub sub_180002788(sub_180002788_result) +000195dc: sub_180002788_result :: out u32 = low:32[RAX] + +00004e13: +00004e17: call mem[0x18000A1B0, el]:u64 with noreturn + +0001959f: sub sub_180002794(sub_180002794_result) +000195dd: sub_180002794_result :: out u32 = low:32[RAX] + +00004e1f: +00004e23: call mem[0x18000A1C0, el]:u64 with noreturn + +000195a0: sub sub_18000279a(sub_18000279a_result) +000195de: sub_18000279a_result :: out u32 = low:32[RAX] + +00004e25: +00004e29: call mem[0x18000A1C8, el]:u64 with noreturn + +000195a1: sub sub_1800027a0(sub_1800027a0_result) +000195df: sub_1800027a0_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 + +000195a2: sub sub_1800027a4(sub_1800027a4_result) +000195e0: sub_1800027a4_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 + +000195a3: sub sub_1800027a8(sub_1800027a8_result) +000195e1: sub_1800027a8_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 + +000195a4: sub sub_1800027ac(sub_1800027ac_result) +000195e2: sub_1800027ac_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 + +000195a5: sub sub_1800027b0(sub_1800027b0_result) +000195e3: sub_1800027b0_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 + +00010de3: sub intrinsic:x86:lock() + + +00010e03: sub intrinsic:x86:unlock() + + +0001349d: sub intrinsic:llvm-x86_64:LFENCE() + + +00004d79: sub interrupt:#3(interrupt:#3_result) +000195e4: interrupt:#3_result :: out u32 = low:32[RAX] + +0000f628: sub interrupt:#41(interrupt:#41_result) +000195e5: interrupt:#41_result :: out u32 = low:32[RAX]