00494ef8: sub memcmp(memcmp_s1, memcmp_s2, memcmp_n, memcmp_result) 0049cde9: memcmp_s1 :: in out u64 = RDI 0049cdea: memcmp_s2 :: in out u64 = RSI 0049cdeb: memcmp_n :: in u64 = RDX 0049cdec: memcmp_result :: out u32 = RAX 001452e3: 00145316: RDX := RDX - RCX 0014534d: #12567515 := R8 - 8 00145351: CF := R8 < 8 00145361: PF := ~low:1[let $2660 = #12567515 >> 4 ^ #12567515 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00145369: ZF := 0 = #12567515 00145370: when CF goto %0014536d 00494ef9: goto %00146ee5 00146ee5: 00146ef5: #12567338 := low:8[RCX] & 7 00146efb: CF := 0 00146f03: PF := ~low:1[let $2660 = #12567338 >> 4 ^ #12567338 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146f0b: ZF := 0 = #12567338 00146f12: when ZF goto %00146f0f 00494efa: goto %00146f55 00146f55: 00494efb: goto %00146f57 00146f57: 00146f61: RAX := high:56[RAX].mem[RCX] 00146f88: #12567334 := low:8[RAX] - mem[RCX + RDX] 00146f8f: CF := low:8[RAX] < mem[RCX + RDX] 00146fa5: PF := ~low:1[let $2660 = #12567334 >> 4 ^ #12567334 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146fad: ZF := 0 = #12567334 00146fb3: when ~ZF goto %001453d5 00494efc: goto %00146fb7 00146fb7: 00146fd3: RCX := RCX + 1 00147009: R8 := R8 - 1 00147021: ZF := 0 = R8 00147033: #12567328 := low:8[RCX] & 7 00147039: CF := 0 00147041: PF := ~low:1[let $2660 = #12567328 >> 4 ^ #12567328 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00147049: ZF := 0 = #12567328 0014704f: when ~ZF goto %00146f57 00494efd: goto %00146f0f 00146f0f: 00146f1b: R9 := R8 00146f30: #12567336 := R9 00146f34: R9 := R9 >> 3 00146f38: CF := high:1[#12567336 << 0x3D] 00146f40: ZF := 0 = R9 00146f45: PF := ~low:1[let $2660 = R9 >> 4 ^ R9 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146f51: when ~ZF goto %0014547d 00494efe: goto %0014536d 0014547d: 00145490: #12567503 := R9 00145494: R9 := R9 >> 2 00145498: CF := high:1[#12567503 << 0x3E] 001454a0: ZF := 0 = R9 001454a5: PF := ~low:1[let $2660 = R9 >> 4 ^ R9 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 001454b2: when ZF goto %001454af 00494eff: goto %00146bf5 00146bf5: 00146bfd: RAX := mem[RCX, el]:u64 00146c24: #12567358 := RAX - mem[RCX + RDX, el]:u64 00146c2b: CF := RAX < mem[RCX + RDX, el]:u64 00146c41: PF := ~low:1[let $2660 = #12567358 >> 4 ^ #12567358 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146c49: ZF := 0 = #12567358 00146c4f: when ~ZF goto %0014554d 00494f00: goto %00146c53 00146c53: 00146c5b: RAX := mem[RCX + 8, el]:u64 00146c82: #12567356 := RAX - mem[RCX + RDX + 8, el]:u64 00146c89: CF := RAX < mem[RCX + RDX + 8, el]:u64 00146c9f: PF := ~low:1[let $2660 = #12567356 >> 4 ^ #12567356 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146ca7: ZF := 0 = #12567356 00146cad: when ~ZF goto %00146bb5 00494f01: goto %00146cb1 00146cb1: 00146cb9: RAX := mem[RCX + 0x10, el]:u64 00146ce0: #12567354 := RAX - mem[RCX + RDX + 0x10, el]:u64 00146ce7: CF := RAX < mem[RCX + RDX + 0x10, el]:u64 00146cfd: PF := ~low:1[let $2660 = #12567354 >> 4 ^ #12567354 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146d05: ZF := 0 = #12567354 00146d0b: when ~ZF goto %00146b75 00494f02: goto %00146d0f 00146d0f: 00146d17: RAX := mem[RCX + 0x18, el]:u64 00146d3e: #12567352 := RAX - mem[RCX + RDX + 0x18, el]:u64 00146d5b: PF := ~low:1[let $2660 = #12567352 >> 4 ^ #12567352 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146d63: ZF := 0 = #12567352 00146d69: when ~ZF goto %00146b35 00494f03: goto %00146d6d 00146b35: 00146b50: #12567367 := RCX 00146b54: RCX := RCX + 8 00146b59: CF := RCX < #12567367 00146b6b: PF := ~low:1[let $2660 = RCX >> 4 ^ RCX in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146b73: ZF := 0 = RCX 00494f04: goto %00146b75 00146b75: 00146b90: #12567364 := RCX 00146b94: RCX := RCX + 8 00146b99: CF := RCX < #12567364 00146bab: PF := ~low:1[let $2660 = RCX >> 4 ^ RCX in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146bb3: ZF := 0 = RCX 00494f05: goto %00146bb5 00146bb5: 00146bd0: #12567361 := RCX 00146bd4: RCX := RCX + 8 00146bd9: CF := RCX < #12567361 00146beb: PF := ~low:1[let $2660 = RCX >> 4 ^ RCX in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146bf3: ZF := 0 = RCX 00494f06: goto %0014554d 00146d6d: 00146d88: #12567350 := RCX 00146d8c: RCX := RCX + 0x20 00146d91: CF := RCX < #12567350 00146dab: ZF := 0 = RCX 00146dc7: R9 := R9 - 1 00146dd7: PF := ~low:1[let $2660 = R9 >> 4 ^ R9 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146ddf: ZF := 0 = R9 00146de5: when ~ZF goto %00146bf5 00494f07: goto %00146de9 00146de9: 00146df9: R8 := R8 & 0x1F 00146dff: CF := 0 00146e07: PF := ~low:1[let $2660 = R8 >> 4 ^ R8 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146e0f: ZF := 0 = R8 00494f08: goto %001454af 001454af: 001454bb: R9 := R8 001454d0: #12567501 := R9 001454d4: R9 := R9 >> 3 001454d8: CF := high:1[#12567501 << 0x3D] 001454e0: ZF := 0 = R9 001454e5: PF := ~low:1[let $2660 = R9 >> 4 ^ R9 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 001454f1: when ZF goto %0014536d 00494f09: goto %001454f5 001454f5: 001454fd: RAX := mem[RCX, el]:u64 00145524: #12567499 := RAX - mem[RCX + RDX, el]:u64 0014552b: CF := RAX < mem[RCX + RDX, el]:u64 00145541: PF := ~low:1[let $2660 = #12567499 >> 4 ^ #12567499 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00145549: ZF := 0 = #12567499 00145550: when ~ZF goto %0014554d 00494f0a: goto %00146a8d 0014554d: 0014555d: RCX := mem[RDX + RCX, el]:u64 00145573: RAX := extract:7:0[RAX].extract:15:8[RAX].extract:23:16[RAX].extract:31:24[RAX].extract:39:32[RAX].extract:47:40[RAX].extract:55:48[RAX].extract:63:56[RAX] 00145589: RCX := extract:7:0[RCX].extract:15:8[RCX].extract:23:16[RCX].extract:31:24[RCX].extract:39:32[RCX].extract:47:40[RCX].extract:55:48[RCX].extract:63:56[RCX] 001455ab: CF := RAX < RCX 001455ea: #12567495 := low:32[RAX] 001455ee: #12567494 := low:32[RAX] 001455f4: RAX := pad:64[#12567494 - #12567495 + pad:32[CF]] 00145604: CF := #12567494 < #12567495 + pad:32[CF] | #12567495 + pad:32[CF] < #12567495 00145634: #12567491 := low:32[RAX] 00145639: RAX := pad:64[#12567491 - 0xFFFFFFFF + pad:32[CF]] 0014564f: PF := ~low:1[let $2660 = low:32[RAX] >> 4 ^ low:32[RAX] in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00145657: ZF := 0 = low:32[RAX] 00145664: #12567489 := mem[RSP, el]:u64 00145668: RSP := RSP + 8 0014566b: call #12567489 with noreturn 00146a8d: 00146aa8: #12567373 := RCX 00146aac: RCX := RCX + 8 00146ab1: CF := RCX < #12567373 00146acb: ZF := 0 = RCX 00146ae7: R9 := R9 - 1 00146af7: PF := ~low:1[let $2660 = R9 >> 4 ^ R9 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146aff: ZF := 0 = R9 00146b05: when ~ZF goto %001454f5 00494f0b: goto %00146b09 00146b09: 00146b19: R8 := R8 & 7 00146b1f: CF := 0 00146b27: PF := ~low:1[let $2660 = R8 >> 4 ^ R8 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146b2f: ZF := 0 = R8 00146b33: goto %0014536d 0014536d: 00145383: #12567513 := R8 00145389: CF := 0 00145391: PF := ~low:1[let $2660 = #12567513 >> 4 ^ #12567513 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00145399: ZF := 0 = #12567513 001453a0: when ZF goto %0014539d 00494f0c: goto %00146e11 00146e11: 00146e1b: RAX := high:56[RAX].mem[RCX] 00146e42: #12567344 := low:8[RAX] - mem[RCX + RDX] 00146e49: CF := low:8[RAX] < mem[RCX + RDX] 00146e5f: PF := ~low:1[let $2660 = #12567344 >> 4 ^ #12567344 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146e67: ZF := 0 = #12567344 00146e6d: when ~ZF goto %001453d5 00494f0d: goto %00146e71 001453d5: 001453f8: #12567510 := low:32[RAX] 001453fc: #12567509 := low:32[RAX] 00145402: RAX := pad:64[#12567509 - #12567510 + pad:32[CF]] 00145412: CF := #12567509 < #12567510 + pad:32[CF] | #12567510 + pad:32[CF] < #12567510 00145442: #12567506 := low:32[RAX] 00145447: RAX := pad:64[#12567506 - 0xFFFFFFFF + pad:32[CF]] 0014545d: PF := ~low:1[let $2660 = low:32[RAX] >> 4 ^ low:32[RAX] in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00145465: ZF := 0 = low:32[RAX] 00145472: #12567504 := mem[RSP, el]:u64 00145476: RSP := RSP + 8 00145479: call #12567504 with noreturn 00146e71: 00146e8d: RCX := RCX + 1 00146ea7: ZF := 0 = RCX 00146ec3: R8 := R8 - 1 00146ed3: PF := ~low:1[let $2660 = R8 >> 4 ^ R8 in let $2661 = $2660 >> 2 ^ $2660 in $2661 >> 1 ^ $2661] 00146edb: ZF := 0 = R8 00146ee1: when ~ZF goto %00146e11 00494f0e: goto %0014539d 0014539d: 001453ad: RAX := 0 001453b3: ZF := 1 001453b6: PF := 1 001453cc: #12567511 := mem[RSP, el]:u64 001453d0: RSP := RSP + 8 001453d3: call #12567511 with noreturn