; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/none @ 0x442b80 */ | #include | ; (fcn) method.BloombergLP::bdlb::BitStringUtil.andEqual_unsigned_long__unsigned_long__unsigned_long_const__unsigned_long__unsigned_long_ () | int64_t method_BloombergLP::bdlb::BitStringUtil_andEqual_unsigned_long_unsigned_long_unsigned_long_const_unsigned_long_unsigned_long_ (int32_t arg5, int64_t arg4, int64_t arg3, int32_t arg2, int64_t arg1) { | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::bdlb::BitStringUtil::andEqual(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long) */ 0x00442b80 push rbp | 0x00442b81 push r15 | 0x00442b83 push r14 | 0x00442b85 push r13 | 0x00442b87 push r12 | 0x00442b89 push rbx | 0x00442b8a mov r10, rcx | r10 = rcx; 0x00442b8d mov r15, rsi | r15 = rsi; 0x00442b90 shr r15, 6 | r15 >>= 6; 0x00442b94 lea r14, [rdi + r15*8] | r14 = rdi + r15*8; 0x00442b98 mov r9d, esi | r9d = esi; 0x00442b9b and r9d, 0x3f | r9d &= 0x3f; 0x00442b9f mov rcx, r14 | rcx = r14; 0x00442ba2 shr rcx, 3 | rcx >>= 3; 0x00442ba6 mov r12, r10 | r12 = r10; 0x00442ba9 shr r12, 6 | r12 >>= 6; 0x00442bad lea r11, [rdx + r12*8] | r11 = rdx + r12*8; 0x00442bb1 mov eax, r10d | eax = r10d; 0x00442bb4 and eax, 0x3f | eax &= 0x3f; 0x00442bb7 mov rbp, r11 | 0x00442bba shr rbp, 3 | rbp >>= 3; 0x00442bbe sub rcx, rbp | rcx -= rbp; 0x00442bc1 mov ebp, r9d | 0x00442bc4 sub ebp, eax | ebp -= eax; 0x00442bc6 xor ebx, ebx | ebx = 0; 0x00442bc8 cmp ebp, 0x3f | 0x00442bcb seta bl | bl = (ebp > 0x3f) ? 1 : 0; 0x00442bce sub rcx, rbx | rcx -= rbx; 0x00442bd1 test rcx, rcx | | if (rcx <= 0) { 0x00442bd4 jg 0x442bf0 | 0x00442bd6 lea ebx, [rbp + 0x40] | ebx = rbp + 0x40; 0x00442bd9 cmp ebp, 0x40 | | if (ebp < 0x40) { 0x00442bdc cmovb ebx, ebp | ebx = ebp; | } 0x00442bdf test ebx, ebx | | if (ebx == 0) { 0x00442be1 je 0x442d40 | goto label_12; | } 0x00442be7 test rcx, rcx | | if (rcx != 0) { 0x00442bea jne 0x442d40 | goto label_12; | } | } 0x00442bf0 test r8, r8 | | if (r8 == 0) { 0x00442bf3 je 0x443652 | goto label_13; | } 0x00442bf9 add rsi, r8 | rsi += r8; 0x00442bfc mov r15, rsi | r15 = rsi; 0x00442bff shr r15, 6 | r15 >>= 6; 0x00442c03 lea r11, [rdi + r15*8] | r11 = rdi + r15*8; 0x00442c07 and esi, 0x3f | esi &= 0x3f; 0x00442c0a add r10, r8 | r10 += r8; 0x00442c0d mov r12, r10 | r12 = r10; 0x00442c10 shr r12, 6 | r12 >>= 6; 0x00442c14 lea rbx, [rdx + r12*8] | rbx = rdx + r12*8; 0x00442c18 and r10d, 0x3f | r10d &= 0x3f; | if (r10d != 0) { 0x00442c1c je 0x442cb1 | 0x00442c22 mov r13d, r10d | r13d = r10d; 0x00442c25 cmp r13, r8 | | if (r13 >= r8) { 0x00442c28 jae 0x442dbb | goto label_14; | } 0x00442c2e mov qword [rsp - 0x20], rdx | *((rsp - 0x20)) = rdx; 0x00442c33 lea r9d, [rsi + 0x40] | r9d = rsi + 0x40; 0x00442c37 cmp esi, r10d | | if (esi >= r10d) { 0x00442c3a cmovae r9d, esi | r9d = esi; | } 0x00442c3e sbb r14, r14 | r14 -= r14; 0x00442c41 mov esi, r9d | esi = r9d; 0x00442c44 sub esi, r10d | esi -= r10d; 0x00442c47 mov qword [rsp - 0x18], r11 | *((rsp - 0x18)) = r11; 0x00442c4c lea rdx, [r11 + r14*8] | rdx = r11 + r14*8; 0x00442c50 mov r11, qword [rbx] | r11 = *(rbx); 0x00442c53 mov eax, 0x40 | eax = 0x40; 0x00442c58 sub eax, esi | eax -= esi; 0x00442c5a sub r10d, eax | r10d -= eax; | if (r10d <= 0) { 0x00442c5d jle 0x442e4e | goto label_15; | } 0x00442c63 mov r9, rbx | r9 = rbx; 0x00442c66 cmp esi, 0x3f | | if (esi <= 0x3f) { 0x00442c69 jg 0x442c86 | 0x00442c6b mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00442c72 mov ecx, esi | ecx = esi; 0x00442c74 shl rbx, cl | rbx <<= cl; 0x00442c77 not rbx | rbx = ~rbx; 0x00442c7a mov rbp, r11 | 0x00442c7d shl rbp, cl | rbp <<= cl; 0x00442c80 or rbp, rbx | rbp |= rbx; 0x00442c83 and qword [rdx], rbp | *(rdx) &= rbp; | } 0x00442c86 mov ecx, eax | ecx = eax; 0x00442c88 shr r11, cl | r11 >>= cl; 0x00442c8b mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442c92 mov ecx, r10d | ecx = r10d; 0x00442c95 shl rax, cl | rax <<= cl; 0x00442c98 cmp r10d, 0x40 | 0x00442c9c mov rbx, r9 | rbx = r9; | if (r10d >= 0x40) { 0x00442c9f jge 0x44366b | goto label_16; | } | label_4: 0x00442ca5 or r11, rax | r11 |= rax; 0x00442ca8 add rdx, 8 | rdx += 8; 0x00442cac jmp 0x442e8e | goto label_17; | } 0x00442cb1 xor r14d, r14d | r14d = 0; 0x00442cb4 test esi, esi | | if (esi == 0) { 0x00442cb6 je 0x442ea6 | goto label_18; | } | label_1: 0x00442cbc cmp r8, 0x40 | | if (r8 < 0x40) { 0x00442cc0 jb 0x442ece | goto label_19; | } 0x00442cc6 mov qword [rsp - 0x20], rbx | *((rsp - 0x20)) = rbx; 0x00442ccb mov qword [rsp - 0x18], r11 | *((rsp - 0x18)) = r11; 0x00442cd0 mov r10, 0xffffffffffffffff | r10 = 0xffffffffffffffff; 0x00442cd7 mov ecx, esi | ecx = esi; 0x00442cd9 shl r10, cl | r10 <<= cl; 0x00442cdc mov r9d, esi | r9d = esi; 0x00442cdf mov r11, r10 | r11 = r10; 0x00442ce2 not r11 | r11 = ~r11; 0x00442ce5 mov r13d, 0x40 | r13d = 0x40; 0x00442ceb sub r13d, esi | r13d -= esi; 0x00442cee add r15, r14 | r15 += r14; 0x00442cf1 lea rdi, [rdi + r15*8] | rdi = rdi + r15*8; 0x00442cf5 lea rdx, [rdx + r12*8 - 8] | rdx = rdx + r12*8 - 8; 0x00442cfa xor ebp, ebp | ebp = 0; 0x00442cfc nop dword [rax] | | do { 0x00442d00 mov rbx, qword [rdx + rbp*8] | rbx = *((rdx + rbp*8)); 0x00442d04 cmp esi, 0x3f | | if (esi > 0x3f) { 0x00442d07 jg 0x442d3c | goto label_20; | } 0x00442d09 mov rax, rbx | rax = rbx; 0x00442d0c mov ecx, r9d | ecx = r9d; 0x00442d0f shl rax, cl | rax <<= cl; 0x00442d12 or rax, r11 | rax |= r11; 0x00442d15 and qword [rdi + rbp*8 - 8], rax | *((rdi + rbp*8 - 8)) &= rax; 0x00442d1a mov rax, r10 | rax = r10; | label_0: 0x00442d1d mov ecx, r13d | ecx = r13d; 0x00442d20 shr rbx, cl | rbx >>= cl; 0x00442d23 or rbx, rax | rbx |= rax; 0x00442d26 and qword [rdi + rbp*8], rbx | *((rdi + rbp*8)) &= rbx; 0x00442d2a dec rbp | rbp--; 0x00442d2d add r8, 0xffffffffffffffc0 | r8 += 0xffffffffffffffc0; 0x00442d31 cmp r8, 0x3f | 0x00442d35 ja 0x442d00 | | } while (r8 > 0x3f); 0x00442d37 jmp 0x442e3c | goto label_21; | label_20: 0x00442d3c xor eax, eax | eax = 0; 0x00442d3e jmp 0x442d1d | goto label_0; | label_12: 0x00442d40 test r8, r8 | | if (r8 == 0) { 0x00442d43 je 0x443652 | goto label_13; | } 0x00442d49 test eax, eax | | if (eax == 0) { 0x00442d4b je 0x442f16 | goto label_22; | } 0x00442d51 mov ebx, 0x40 | ebx = 0x40; 0x00442d56 mov ebp, 0x40 | 0x00442d5b sub ebp, eax | ebp -= eax; 0x00442d5d mov r13, qword [r11] | r13 = *(r11); 0x00442d60 mov ecx, eax | ecx = eax; 0x00442d62 shr r13, cl | r13 >>= cl; 0x00442d65 cmp rbp, r8 | | if (rbp >= r8) { 0x00442d68 jae 0x442f33 | goto label_23; | } 0x00442d6e mov r10, 0xffffffffffffffff | r10 = 0xffffffffffffffff; 0x00442d75 mov ecx, r9d | ecx = r9d; 0x00442d78 shl r10, cl | r10 <<= cl; 0x00442d7b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x00442d82 mov ecx, r9d | ecx = r9d; 0x00442d85 not r10 | r10 = ~r10; 0x00442d88 cmp r9d, eax | | if (r9d <= eax) { 0x00442d8b jbe 0x442fdf | goto label_24; | } 0x00442d91 sub ebx, r9d | ebx -= r9d; 0x00442d94 mov rax, r13 | rax = r13; 0x00442d97 shl rax, cl | rax <<= cl; 0x00442d9a or rax, r10 | rax |= r10; 0x00442d9d and qword [r14], rax | *(r14) &= rax; 0x00442da0 mov ecx, ebx | ecx = ebx; 0x00442da2 shr r13, cl | r13 >>= cl; 0x00442da5 mov ecx, ebp | ecx = ebp; 0x00442da7 sub ecx, ebx | ecx -= ebx; 0x00442da9 shl rsi, cl | rsi <<= cl; 0x00442dac or rsi, r13 | rsi |= r13; 0x00442daf and qword [r14 + 8], rsi | *((r14 + 8)) &= rsi; 0x00442db3 add r9d, ebp | r9d += ebp; 0x00442db6 jmp 0x443003 | goto label_25; | label_14: 0x00442dbb lea eax, [rsi + 0x40] | eax = rsi + 0x40; 0x00442dbe cmp esi, r8d | | if (esi >= r8d) { 0x00442dc1 cmovae eax, esi | eax = esi; | } 0x00442dc4 sbb r9, r9 | r9 -= r9; 0x00442dc7 sub r10d, r8d | r10d -= r8d; 0x00442dca mov rsi, qword [rbx] | rsi = *(rbx); 0x00442dcd mov ecx, r10d | ecx = r10d; 0x00442dd0 shr rsi, cl | rsi >>= cl; 0x00442dd3 test r8d, r8d | | if (r8d == 0) { 0x00442dd6 je 0x443652 | goto label_13; | } 0x00442ddc mov ecx, eax | ecx = eax; 0x00442dde sub ecx, r8d | ecx -= r8d; 0x00442de1 mov edx, 0x40 | edx = 0x40; 0x00442de6 sub edx, ecx | edx -= ecx; 0x00442de8 cmp edx, r8d | | if (edx >= r8d) { 0x00442deb jge 0x442ed5 | goto label_26; | } 0x00442df1 cmp ecx, 0x3f | | if (ecx <= 0x3f) { 0x00442df4 jg 0x442e10 | 0x00442df6 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442dfd shl rax, cl | rax <<= cl; 0x00442e00 not rax | rax = ~rax; 0x00442e03 mov rdi, rsi | rdi = rsi; 0x00442e06 shl rdi, cl | rdi <<= cl; 0x00442e09 or rdi, rax | rdi |= rax; 0x00442e0c and qword [r11 + r9*8], rdi | *((r11 + r9*8)) &= rdi; | } 0x00442e10 mov ecx, edx | ecx = edx; 0x00442e12 shr rsi, cl | rsi >>= cl; 0x00442e15 sub r8d, edx | r8d -= edx; 0x00442e18 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442e1f mov ecx, r8d | ecx = r8d; 0x00442e22 shl rax, cl | rax <<= cl; 0x00442e25 cmp r8d, 0x40 | | if (r8d >= 0x40) { 0x00442e29 jge 0x443679 | goto label_27; | } | label_6: 0x00442e2f or rsi, rax | rsi |= rax; 0x00442e32 and qword [r11 + r9*8 + 8], rsi | *((r11 + r9*8 + 8)) &= rsi; 0x00442e37 jmp 0x443652 | goto label_13; | label_21: 0x00442e3c add r14, rbp | r14 += rbp; 0x00442e3f mov r11, qword [rsp - 0x18] | r11 = *((rsp - 0x18)); 0x00442e44 mov rbx, qword [rsp - 0x20] | rbx = *((rsp - 0x20)); 0x00442e49 jmp 0x443408 | goto label_28; | label_15: 0x00442e4e cmp esi, 0x3f | | if (esi <= 0x3f) { 0x00442e51 jg 0x442e91 | 0x00442e53 mov rbp, rbx | 0x00442e56 mov r10d, esi | r10d = esi; 0x00442e59 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00442e60 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442e67 mov ecx, esi | ecx = esi; 0x00442e69 shl rax, cl | rax <<= cl; 0x00442e6c not rax | rax = ~rax; 0x00442e6f mov ecx, r9d | ecx = r9d; 0x00442e72 shl rbx, cl | rbx <<= cl; 0x00442e75 cmp r9d, 0x40 | | if (r9d >= 0x40) { 0x00442e79 jae 0x443672 | goto label_29; | } | label_5: 0x00442e7f or rbx, rax | rbx |= rax; 0x00442e82 mov ecx, r10d | ecx = r10d; 0x00442e85 shl r11, cl | r11 <<= cl; 0x00442e88 or r11, rbx | r11 |= rbx; 0x00442e8b mov rbx, rbp | rbx = rbp; | label_17: 0x00442e8e and qword [rdx], r11 | *(rdx) &= r11; | } 0x00442e91 sub r8, r13 | r8 -= r13; 0x00442e94 mov rdx, qword [rsp - 0x20] | rdx = *((rsp - 0x20)); 0x00442e99 mov r11, qword [rsp - 0x18] | r11 = *((rsp - 0x18)); 0x00442e9e test esi, esi | | if (esi != 0) { 0x00442ea0 jne 0x442cbc | goto label_1; | } | label_18: 0x00442ea6 cmp r8, 0x40 | | if (r8 >= 0x40) { 0x00442eaa jb 0x442ece | 0x00442eac mov qword [rsp - 0x18], r11 | *((rsp - 0x18)) = r11; 0x00442eb1 lea r11, [r8 - 0x40] | r11 = r8 - 0x40; 0x00442eb5 cmp r11, 0xc0 | | if (r11 >= 0xc0) { 0x00442ebc jae 0x442f99 | goto label_30; | } 0x00442ec2 xor ebp, ebp | ebp = 0; 0x00442ec4 mov r11, qword [rsp - 0x18] | r11 = *((rsp - 0x18)); 0x00442ec9 jmp 0x4433dc | goto label_31; | } | label_19: 0x00442ece xor ebp, ebp | ebp = 0; 0x00442ed0 jmp 0x443408 | goto label_28; | label_26: 0x00442ed5 cmp ecx, 0x3f | | if (ecx > 0x3f) { 0x00442ed8 jg 0x443652 | goto label_13; | } 0x00442ede mov edx, ecx | edx = ecx; 0x00442ee0 mov rbp, 0xffffffffffffffff | 0x00442ee7 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00442eee shl rbx, cl | rbx <<= cl; 0x00442ef1 not rbx | rbx = ~rbx; 0x00442ef4 mov ecx, eax | ecx = eax; 0x00442ef6 shl rbp, cl | rbp <<= cl; 0x00442ef9 cmp eax, 0x40 | | if (eax >= 0x40) { 0x00442efc jae 0x443680 | goto label_32; | } | label_7: 0x00442f02 or rbp, rbx | rbp |= rbx; 0x00442f05 mov ecx, edx | ecx = edx; 0x00442f07 shl rsi, cl | rsi <<= cl; 0x00442f0a or rsi, rbp | rsi |= rbp; 0x00442f0d and qword [r11 + r9*8], rsi | *((r11 + r9*8)) &= rsi; 0x00442f11 jmp 0x443652 | goto label_13; | label_22: 0x00442f16 xor ebp, ebp | ebp = 0; 0x00442f18 test r9d, r9d | | if (r9d == 0) { 0x00442f1b je 0x443022 | goto label_33; | } | do { 0x00442f21 mov rbx, rbp | rbx = rbp; 0x00442f24 cmp r8, 0x40 | | if (r8 >= 0x40) { 0x00442f28 jae 0x44314b | goto label_34; | } 0x00442f2e jmp 0x4435b2 | goto label_35; | label_23: 0x00442f33 test r8d, r8d | | if (r8d == 0) { 0x00442f36 je 0x443652 | goto label_13; | } 0x00442f3c mov eax, 0x40 | eax = 0x40; 0x00442f41 sub eax, r9d | eax -= r9d; 0x00442f44 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x00442f4b mov ecx, r9d | ecx = r9d; 0x00442f4e shl rsi, cl | rsi <<= cl; 0x00442f51 mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x00442f58 mov edx, r9d | edx = r9d; 0x00442f5b not rsi | rsi = ~rsi; 0x00442f5e cmp eax, r8d | | if (eax >= r8d) { 0x00442f61 jge 0x443352 | goto label_36; | } 0x00442f67 mov rbp, r13 | 0x00442f6a mov ecx, edx | ecx = edx; 0x00442f6c shl rbp, cl | rbp <<= cl; 0x00442f6f or rbp, rsi | rbp |= rsi; 0x00442f72 and qword [r14], rbp | *(r14) &= rbp; 0x00442f75 mov ecx, eax | ecx = eax; 0x00442f77 shr r13, cl | r13 >>= cl; 0x00442f7a sub r8d, eax | r8d -= eax; 0x00442f7d mov ecx, r8d | ecx = r8d; 0x00442f80 shl rdi, cl | rdi <<= cl; 0x00442f83 cmp r8d, 0x40 | | if (r8d >= 0x40) { 0x00442f87 jge 0x443699 | goto label_37; | } | label_10: 0x00442f8d or r13, rdi | r13 |= rdi; 0x00442f90 and qword [r14 + 8], r13 | *((r14 + 8)) &= r13; 0x00442f94 jmp 0x443652 | goto label_13; | label_30: 0x00442f99 mov r13, rdx | r13 = rdx; 0x00442f9c shr r11, 6 | r11 >>= 6; 0x00442fa0 lea rax, [r14 + r15] | rax = r14 + r15; 0x00442fa4 mov rcx, r11 | rcx = r11; 0x00442fa7 not rcx | rcx = ~rcx; 0x00442faa lea rdx, [rax + rcx] | rdx = rax + rcx; 0x00442fae lea rdx, [rdi + rdx*8] | rdx = rdi + rdx*8; 0x00442fb2 cmp rdx, rbx | | if (rdx >= rbx) { 0x00442fb5 jae 0x4431e2 | goto label_38; | } 0x00442fbb lea rdx, [rdi + rax*8] | rdx = rdi + rax*8; 0x00442fbf add rcx, r12 | rcx += r12; 0x00442fc2 lea rcx, [r13 + rcx*8] | rcx = r13 + rcx*8; 0x00442fc7 cmp rcx, rdx | | if (rcx >= rdx) { 0x00442fca jae 0x4431e2 | goto label_38; | } 0x00442fd0 xor ebp, ebp | ebp = 0; 0x00442fd2 mov rdx, r13 | rdx = r13; 0x00442fd5 mov r11, qword [rsp - 0x18] | r11 = *((rsp - 0x18)); 0x00442fda jmp 0x4433dc | goto label_31; | label_24: 0x00442fdf mov rax, rcx | rax = rcx; 0x00442fe2 add r9d, ebp | r9d += ebp; 0x00442fe5 mov ecx, r9d | ecx = r9d; 0x00442fe8 shl rsi, cl | rsi <<= cl; 0x00442feb cmp r9d, 0x40 | | if (r9d >= 0x40) { 0x00442fef jae 0x443692 | goto label_39; | } | label_9: 0x00442ff5 mov ecx, eax | ecx = eax; 0x00442ff7 shl r13, cl | r13 <<= cl; 0x00442ffa or rsi, r10 | rsi |= r10; 0x00442ffd or rsi, r13 | rsi |= r13; 0x00443000 and qword [r14], rsi | *(r14) &= rsi; | label_25: 0x00443003 sub r8, rbp | r8 -= rbp; 0x00443006 mov ebp, 1 | 0x0044300b cmp r9d, 0x40 | | if (r9d < 0x40) { 0x0044300f jb 0x44313f | goto label_40; | } 0x00443015 add r9d, 0xffffffc0 | r9d += 0xffffffc0; 0x00443019 test r9d, r9d | 0x0044301c jne 0x442f21 | | } while (r9d != 0); | label_33: 0x00443022 xor r9d, r9d | r9d = 0; 0x00443025 cmp r8, 0x40 | | if (r8 < 0x40) { 0x00443029 jb 0x44334a | goto label_41; | } 0x0044302f mov qword [rsp - 0x18], r11 | *((rsp - 0x18)) = r11; 0x00443034 lea rax, [r8 - 0x40] | rax = r8 - 0x40; 0x00443038 mov r13, rax | r13 = rax; 0x0044303b shr r13, 6 | r13 >>= 6; 0x0044303f lea r10, [r13 + rbp] | r10 = r13 + rbp; 0x00443044 mov rsi, rbp | rsi = rbp; 0x00443047 cmp rax, 0xc0 | 0x0044304d mov qword [rsp - 0x20], rbp | *((rsp - 0x20)) = rbp; | if (rax < 0xc0) { 0x00443052 jb 0x44351f | goto label_42; | } 0x00443058 lea rax, [rbp + r15] | rax = rbp + r15; 0x0044305d mov r11, rdx | r11 = rdx; 0x00443060 lea rdx, [rdi + rax*8] | rdx = rdi + rax*8; 0x00443064 lea rcx, [rbp + r12] | rcx = rbp + r12; 0x00443069 lea rsi, [rcx + r13] | rsi = rcx + r13; 0x0044306d lea rsi, [r11 + rsi*8 + 8] | rsi = r11 + rsi*8 + 8; 0x00443072 cmp rdx, rsi | | if (rdx < rsi) { 0x00443075 jae 0x443092 | 0x00443077 mov rdx, r11 | rdx = r11; 0x0044307a add rax, r13 | rax += r13; 0x0044307d lea rax, [rdi + rax*8 + 8] | rax = rdi + rax*8 + 8; 0x00443082 lea rcx, [r11 + rcx*8] | rcx = r11 + rcx*8; 0x00443086 mov rsi, rbp | rsi = rbp; 0x00443089 cmp rcx, rax | | if (rcx < rax) { 0x0044308c jb 0x44351f | goto label_42; | } | } 0x00443092 lea rcx, [r13 + 1] | rcx = r13 + 1; 0x00443096 mov rax, rcx | rax = rcx; 0x00443099 and rax, 0xfffffffffffffffc | rax &= 0xfffffffffffffffc; 0x0044309d mov qword [rsp - 8], rax | *((rsp - 8)) = rax; 0x004430a2 lea rdx, [rax - 4] | rdx = rax - 4; 0x004430a6 mov rbx, rdx | rbx = rdx; 0x004430a9 shr rbx, 2 | rbx >>= 2; 0x004430ad inc rbx | rbx++; 0x004430b0 test rdx, rdx | | if (rdx == 0) { 0x004430b3 je 0x4434cc | goto label_43; | } 0x004430b9 mov qword [rsp - 0x10], rcx | *((rsp - 0x10)) = rcx; 0x004430be mov rsi, rbx | rsi = rbx; 0x004430c1 and rsi, 0xfffffffffffffffe | rsi &= 0xfffffffffffffffe; 0x004430c5 neg rsi | rsi = -rsi; 0x004430c8 xor ebp, ebp | ebp = 0; 0x004430ca mov rax, qword [rsp - 0x18] | rax = *((rsp - 0x18)); 0x004430cf mov rcx, qword [rsp - 0x20] | rcx = *((rsp - 0x20)); | do { 0x004430d4 mov rdx, rcx | rdx = *((rsp - 0x20)); 0x004430d7 or rdx, rbp | rdx |= rbp; 0x004430da movups xmm0, xmmword [rax + rdx*8] | __asm ("movups xmm0, xmmword [rax + rdx*8]"); 0x004430de movups xmm1, xmmword [rax + rdx*8 + 0x10] | __asm ("movups xmm1, xmmword [rax + rdx*8 + 0x10]"); 0x004430e3 movups xmm2, xmmword [r14 + rdx*8] | __asm ("movups xmm2, xmmword [r14 + rdx*8]"); 0x004430e8 andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x004430eb movups xmm0, xmmword [r14 + rdx*8 + 0x10] | __asm ("movups xmm0, xmmword [r14 + rdx*8 + 0x10]"); 0x004430f1 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x004430f4 movups xmmword [r14 + rdx*8], xmm2 | __asm ("movups xmmword [r14 + rdx*8], xmm2"); 0x004430f9 movups xmmword [r14 + rdx*8 + 0x10], xmm0 | __asm ("movups xmmword [r14 + rdx*8 + 0x10], xmm0"); 0x004430ff lea rdx, [rbp + 4] | rdx = rbp + 4; 0x00443103 or rdx, rcx | rdx |= rcx; 0x00443106 movups xmm0, xmmword [rax + rdx*8] | __asm ("movups xmm0, xmmword [rax + rdx*8]"); 0x0044310a movups xmm1, xmmword [rax + rdx*8 + 0x10] | __asm ("movups xmm1, xmmword [rax + rdx*8 + 0x10]"); 0x0044310f movups xmm2, xmmword [r14 + rdx*8] | __asm ("movups xmm2, xmmword [r14 + rdx*8]"); 0x00443114 andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x00443117 movups xmm0, xmmword [r14 + rdx*8 + 0x10] | __asm ("movups xmm0, xmmword [r14 + rdx*8 + 0x10]"); 0x0044311d andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x00443120 movups xmmword [r14 + rdx*8], xmm2 | __asm ("movups xmmword [r14 + rdx*8], xmm2"); 0x00443125 movups xmmword [r14 + rdx*8 + 0x10], xmm0 | __asm ("movups xmmword [r14 + rdx*8 + 0x10], xmm0"); 0x0044312b add rbp, 8 | rbp += 8; 0x0044312f add rsi, 2 | rsi += 2; 0x00443133 jne 0x4430d4 | | } while (rsi != 0); 0x00443135 mov rcx, qword [rsp - 0x10] | rcx = *((rsp - 0x10)); 0x0044313a jmp 0x4434ce | goto label_44; | label_40: 0x0044313f xor ebx, ebx | ebx = 0; 0x00443141 cmp r8, 0x40 | | if (r8 < 0x40) { 0x00443145 jb 0x4435b2 | goto label_35; | } | label_34: 0x0044314b mov qword [rsp - 0x18], r11 | *((rsp - 0x18)) = r11; 0x00443150 mov qword [rsp - 8], r14 | *((rsp - 8)) = r14; 0x00443155 mov qword [rsp - 0x20], rdx | *((rsp - 0x20)) = rdx; 0x0044315a mov r13d, r9d | r13d = r9d; 0x0044315d mov r14, 0xffffffffffffffff | r14 = 0xffffffffffffffff; 0x00443164 mov ecx, r9d | ecx = r9d; 0x00443167 shl r14, cl | r14 <<= cl; 0x0044316a mov r11, r14 | r11 = r14; 0x0044316d not r11 | r11 = ~r11; 0x00443170 mov esi, 0x40 | esi = 0x40; 0x00443175 sub esi, r9d | esi -= r9d; 0x00443178 lea rcx, [r8 - 0x40] | rcx = r8 - 0x40; 0x0044317c mov rax, rcx | rax = rcx; 0x0044317f shr rax, 6 | rax >>= 6; 0x00443183 mov qword [rsp - 0x10], rax | *((rsp - 0x10)) = rax; 0x00443188 lea rdx, [rbx + r15] | rdx = rbx + r15; 0x0044318c mov r10, qword [rdi + rdx*8] | r10 = *((rdi + rdx*8)); 0x00443190 test cl, 0x40 | | if ((cl & 0x40) != 0) { 0x00443193 jne 0x443289 | goto label_45; | } 0x00443199 mov rcx, qword [rsp - 0x18] | rcx = *((rsp - 0x18)); 0x0044319e mov rax, rbx | rax = rbx; 0x004431a1 mov rbx, qword [rcx + rbp*8] | rbx = *((rcx + rbp*8)); 0x004431a5 mov rdx, rbx | rdx = *((rcx + rbp*8)); 0x004431a8 mov ecx, r13d | ecx = r13d; 0x004431ab shl rdx, cl | rdx <<= cl; 0x004431ae or rdx, r11 | rdx |= r11; 0x004431b1 and rdx, r10 | rdx &= r10; 0x004431b4 mov ecx, esi | ecx = esi; 0x004431b6 shr rbx, cl | rbx >>= cl; 0x004431b9 mov rcx, qword [rsp - 8] | rcx = *((rsp - 8)); 0x004431be mov qword [rcx + rax*8], rdx | *((rcx + rax*8)) = rdx; 0x004431c2 or rbx, r14 | rbx |= r14; 0x004431c5 and rbx, qword [rcx + rax*8 + 8] | rbx &= *((rcx + rax*8 + 8)); 0x004431ca mov qword [rcx + rax*8 + 8], rbx | *((rcx + rax*8 + 8)) = rbx; 0x004431cf lea rdx, [rax + 1] | rdx = rax + 1; 0x004431d3 lea rcx, [rbp + 1] | rcx = rbp + 1; 0x004431d7 mov r10, rbx | r10 = rbx; 0x004431da mov rbx, rdx | rbx = rdx; 0x004431dd jmp 0x44328c | goto label_46; | label_38: 0x004431e2 mov qword [rsp - 0x20], rbx | *((rsp - 0x20)) = rbx; 0x004431e7 inc r11 | r11++; 0x004431ea mov r9, r11 | r9 = r11; 0x004431ed and r9, 0xfffffffffffffffc | r9 &= 0xfffffffffffffffc; 0x004431f1 lea rcx, [r9 - 4] | rcx = r9 - 4; 0x004431f5 mov r10, rcx | r10 = rcx; 0x004431f8 shr r10, 2 | r10 >>= 2; 0x004431fc inc r10 | r10++; 0x004431ff test rcx, rcx | | if (rcx == 0) { 0x00443202 je 0x443378 | goto label_47; | } 0x00443208 mov rdx, r13 | rdx = r13; 0x0044320b lea rcx, [r13 + r12*8 - 0x10] | rcx = r13 + r12*8 - 0x10; 0x00443210 lea rbp, [rdi + rax*8 - 0x10] | rbp = rdi + rax*8 - 0x10; 0x00443215 mov rax, r10 | rax = r10; 0x00443218 and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x0044321c neg rax | rax = -rax; 0x0044321f mov rbx, 0xfffffffffffffffe | rbx = 0xfffffffffffffffe; 0x00443226 nop word cs:[rax + rax] | | do { 0x00443230 movups xmm0, xmmword [rcx + rbx*8] | __asm ("movups xmm0, xmmword [rcx + rbx*8]"); 0x00443234 movups xmm1, xmmword [rcx + rbx*8 + 0x10] | __asm ("movups xmm1, xmmword [rcx + rbx*8 + 0x10]"); 0x00443239 movups xmm2, xmmword [rbp + rbx*8 - 0x20] | __asm ("movups xmm2, xmmword [rbp + rbx*8 - 0x20]"); 0x0044323e movups xmm3, xmmword [rbp + rbx*8 - 0x10] | __asm ("movups xmm3, xmmword [rbp + rbx*8 - 0x10]"); 0x00443243 movups xmm4, xmmword [rbp + rbx*8] | __asm ("movups xmm4, xmmword [rbp + rbx*8]"); 0x00443248 andps xmm4, xmm0 | __asm ("andps xmm4, xmm0"); 0x0044324b movups xmm0, xmmword [rbp + rbx*8 + 0x10] | __asm ("movups xmm0, xmmword [rbp + rbx*8 + 0x10]"); 0x00443250 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x00443253 movups xmmword [rbp + rbx*8 + 0x10], xmm0 | __asm ("movups xmmword [rbp + rbx*8 + 0x10], xmm0"); 0x00443258 movups xmmword [rbp + rbx*8], xmm4 | __asm ("movups xmmword [rbp + rbx*8], xmm4"); 0x0044325d movups xmm0, xmmword [rcx + rbx*8 - 0x20] | __asm ("movups xmm0, xmmword [rcx + rbx*8 - 0x20]"); 0x00443262 andps xmm0, xmm2 | __asm ("andps xmm0, xmm2"); 0x00443265 movups xmm1, xmmword [rcx + rbx*8 - 0x10] | __asm ("movups xmm1, xmmword [rcx + rbx*8 - 0x10]"); 0x0044326a andps xmm1, xmm3 | __asm ("andps xmm1, xmm3"); 0x0044326d movups xmmword [rbp + rbx*8 - 0x10], xmm1 | __asm ("movups xmmword [rbp + rbx*8 - 0x10], xmm1"); 0x00443272 movups xmmword [rbp + rbx*8 - 0x20], xmm0 | __asm ("movups xmmword [rbp + rbx*8 - 0x20], xmm0"); 0x00443277 add rbx, 0xfffffffffffffff8 | rbx += 0xfffffffffffffff8; 0x0044327b add rax, 2 | rax += 2; 0x0044327f jne 0x443230 | | } while (rax != 0); 0x00443281 inc rbx | rbx++; 0x00443284 jmp 0x443382 | goto label_48; | label_45: 0x00443289 mov rcx, rbp | rcx = rbp; | label_46: 0x0044328c mov rax, qword [rsp - 0x20] | rax = *((rsp - 0x20)); 0x00443291 mov rdx, qword [rsp - 0x10] | rdx = *((rsp - 0x10)); 0x00443296 add rbp, rdx | rbp += rdx; 0x00443299 test rdx, rdx | | if (rdx == 0) { 0x0044329c je 0x443339 | goto label_49; | } 0x004432a2 add r12, rcx | r12 += rcx; 0x004432a5 lea rdx, [rax + r12*8 + 8] | rdx = rax + r12*8 + 8; 0x004432aa mov qword [rsp - 0x20], rbp | *((rsp - 0x20)) = rbp; 0x004432af mov r12, rbp | r12 = rbp; 0x004432b2 sub r12, rcx | r12 -= rcx; 0x004432b5 inc r12 | r12++; 0x004432b8 mov qword [rsp - 0x10], rbx | *((rsp - 0x10)) = rbx; 0x004432bd add r15, rbx | r15 += rbx; 0x004432c0 lea rbx, [rdi + r15*8 + 0x10] | rbx = rdi + r15*8 + 0x10; 0x004432c5 xor edi, edi | edi = 0; 0x004432c7 nop word [rax + rax] | | do { 0x004432d0 mov rbp, qword [rdx + rdi*8 - 8] | rbp = *((rdx + rdi*8 - 8)); 0x004432d5 mov rax, rbp | rax = *((rdx + rdi*8 - 8)); 0x004432d8 mov ecx, r13d | ecx = r13d; 0x004432db shl rax, cl | rax <<= cl; 0x004432de or rax, r11 | rax |= r11; 0x004432e1 and rax, r10 | rax &= r10; 0x004432e4 mov qword [rbx + rdi*8 - 0x10], rax | *((rbx + rdi*8 - 0x10)) = rax; 0x004432e9 mov ecx, esi | ecx = esi; 0x004432eb shr rbp, cl | rbp >>= cl; 0x004432ee or rbp, r14 | rbp |= r14; 0x004432f1 and rbp, qword [rbx + rdi*8 - 8] | rbp &= *((rbx + rdi*8 - 8)); 0x004432f6 mov qword [rbx + rdi*8 - 8], rbp | *((rbx + rdi*8 - 8)) = rbp; 0x004432fb mov r10, qword [rdx + rdi*8] | r10 = *((rdx + rdi*8)); 0x004432ff mov rax, r10 | rax = *((rdx + rdi*8)); 0x00443302 mov ecx, r13d | ecx = r13d; 0x00443305 shl rax, cl | rax <<= cl; 0x00443308 or rax, r11 | rax |= r11; 0x0044330b and rax, rbp | rax &= rbp; 0x0044330e mov ecx, esi | ecx = esi; 0x00443310 shr r10, cl | r10 >>= cl; 0x00443313 mov qword [rbx + rdi*8 - 8], rax | *((rbx + rdi*8 - 8)) = rax; 0x00443318 or r10, r14 | r10 |= r14; 0x0044331b and r10, qword [rbx + rdi*8] | r10 &= *((rbx + rdi*8)); 0x0044331f mov qword [rbx + rdi*8], r10 | *((rbx + rdi*8)) = r10; 0x00443323 add rdi, 2 | rdi += 2; 0x00443327 cmp r12, rdi | 0x0044332a jne 0x4432d0 | | } while (r12 != rdi); 0x0044332c mov rbx, qword [rsp - 0x10] | rbx = *((rsp - 0x10)); 0x00443331 add rbx, rdi | rbx += rdi; 0x00443334 mov rbp, qword [rsp - 0x20] | rbp = *((rsp - 0x20)); | label_49: 0x00443339 inc rbp | rbp++; 0x0044333c and r8d, 0x3f | r8d &= 0x3f; 0x00443340 mov r14, qword [rsp - 8] | r14 = *((rsp - 8)); 0x00443345 jmp 0x4435ad | goto label_50; | label_41: 0x0044334a mov rbx, rbp | rbx = rbp; 0x0044334d jmp 0x4435b2 | goto label_35; | label_36: 0x00443352 add r9d, r8d | r9d += r8d; 0x00443355 mov ecx, r9d | ecx = r9d; 0x00443358 shl rdi, cl | rdi <<= cl; 0x0044335b cmp r9d, 0x40 | | if (r9d >= 0x40) { 0x0044335f jge 0x4436a0 | goto label_51; | } | label_11: 0x00443365 mov ecx, edx | ecx = edx; 0x00443367 shl r13, cl | r13 <<= cl; 0x0044336a or rdi, rsi | rdi |= rsi; 0x0044336d or rdi, r13 | rdi |= r13; 0x00443370 and qword [r14], rdi | *(r14) &= rdi; 0x00443373 jmp 0x443652 | goto label_13; | label_47: 0x00443378 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x0044337f mov rdx, r13 | rdx = r13; | label_48: 0x00443382 mov rax, r9 | rax = r9; 0x00443385 shl rax, 6 | rax <<= 6; 0x00443389 test r10b, 1 | | if ((r10b & 1) != 0) { 0x0044338d je 0x4433c1 | 0x0044338f lea rcx, [r14 + rbx] | rcx = r14 + rbx; 0x00443393 mov rbp, qword [rsp - 0x20] | rbp = *((rsp - 0x20)); 0x00443398 movups xmm0, xmmword [rbp + rbx*8 - 0x18] | __asm ("movups xmm0, xmmword [rbp + rbx*8 - 0x18]"); 0x0044339d movups xmm1, xmmword [rbp + rbx*8 - 8] | __asm ("movups xmm1, xmmword [rbp + rbx*8 - 8]"); 0x004433a2 mov rbp, qword [rsp - 0x18] | rbp = *((rsp - 0x18)); 0x004433a7 movups xmm2, xmmword [rbp + rcx*8 - 0x18] | __asm ("movups xmm2, xmmword [rbp + rcx*8 - 0x18]"); 0x004433ac andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x004433af movups xmm0, xmmword [rbp + rcx*8 - 8] | __asm ("movups xmm0, xmmword [rbp + rcx*8 - 8]"); 0x004433b4 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x004433b7 movups xmmword [rbp + rcx*8 - 8], xmm0 | __asm ("movups xmmword [rbp + rcx*8 - 8], xmm0"); 0x004433bc movups xmmword [rbp + rcx*8 - 0x18], xmm2 | __asm ("movups xmmword [rbp + rcx*8 - 0x18], xmm2"); | } 0x004433c1 sub r14, r9 | r14 -= r9; 0x004433c4 mov rbp, r9 | 0x004433c7 neg rbp | rbp = -rbp; 0x004433ca sub r8, rax | r8 -= rax; 0x004433cd cmp r11, r9 | 0x004433d0 mov r11, qword [rsp - 0x18] | r11 = *((rsp - 0x18)); 0x004433d5 mov rbx, qword [rsp - 0x20] | rbx = *((rsp - 0x20)); | if (r11 == r9) { 0x004433da je 0x443408 | goto label_28; | } | label_31: 0x004433dc lea rax, [rdi + r15*8 - 8] | rax = rdi + r15*8 - 8; 0x004433e1 lea rcx, [rdx + r12*8 - 8] | rcx = rdx + r12*8 - 8; 0x004433e6 nop word cs:[rax + rax] | | do { 0x004433f0 mov rdx, qword [rcx + rbp*8] | rdx = *((rcx + rbp*8)); 0x004433f4 and qword [rax + r14*8], rdx | *((rax + r14*8)) &= rdx; 0x004433f8 dec rbp | rbp--; 0x004433fb dec r14 | r14--; 0x004433fe add r8, 0xffffffffffffffc0 | r8 += 0xffffffffffffffc0; 0x00443402 cmp r8, 0x3f | 0x00443406 ja 0x4433f0 | | } while (r8 > 0x3f); | label_28: 0x00443408 test r8d, r8d | | if (r8d == 0) { 0x0044340b je 0x443652 | goto label_13; | } 0x00443411 lea edx, [rsi + 0x40] | edx = rsi + 0x40; 0x00443414 cmp esi, r8d | | if (esi >= r8d) { 0x00443417 cmovae edx, esi | edx = esi; | } 0x0044341a sbb r14, 0 | 0x0044341e mov eax, edx | eax = edx; 0x00443420 mov rbp, qword [rbx + rbp*8 - 8] | rbp = *((rbx + rbp*8 - 8)); 0x00443425 mov ecx, r8d | ecx = r8d; 0x00443428 neg cl | cl = -cl; 0x0044342a shr rbp, cl | rbp >>= cl; 0x0044342d sub eax, r8d | eax -= r8d; 0x00443430 mov esi, 0x40 | esi = 0x40; 0x00443435 sub esi, eax | esi -= eax; 0x00443437 cmp esi, r8d | | if (esi < r8d) { 0x0044343a jge 0x443489 | 0x0044343c cmp eax, 0x3f | | if (eax <= 0x3f) { 0x0044343f jg 0x44345d | 0x00443441 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00443448 mov ecx, eax | ecx = eax; 0x0044344a shl rdx, cl | rdx <<= cl; 0x0044344d not rdx | rdx = ~rdx; 0x00443450 mov rdi, rbp | rdi = rbp; 0x00443453 shl rdi, cl | rdi <<= cl; 0x00443456 or rdi, rdx | rdi |= rdx; 0x00443459 and qword [r11 + r14*8], rdi | *((r11 + r14*8)) &= rdi; | } 0x0044345d mov ecx, esi | ecx = esi; 0x0044345f shr rbp, cl | rbp >>= cl; 0x00443462 sub r8d, esi | r8d -= esi; 0x00443465 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x0044346c mov ecx, r8d | ecx = r8d; 0x0044346f shl rax, cl | rax <<= cl; 0x00443472 cmp r8d, 0x40 | | if (r8d >= 0x40) { 0x00443476 jge 0x44365d | goto label_52; | } | label_2: 0x0044347c or rbp, rax | rbp |= rax; 0x0044347f and qword [r11 + r14*8 + 8], rbp | *((r11 + r14*8 + 8)) &= rbp; 0x00443484 jmp 0x443652 | goto label_13; | } 0x00443489 cmp eax, 0x3f | | if (eax > 0x3f) { 0x0044348c jg 0x443652 | goto label_13; | } 0x00443492 mov esi, eax | esi = eax; 0x00443494 mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x0044349b mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x004434a2 mov ecx, eax | ecx = eax; 0x004434a4 shl rbx, cl | rbx <<= cl; 0x004434a7 not rbx | rbx = ~rbx; 0x004434aa mov ecx, edx | ecx = edx; 0x004434ac shl rdi, cl | rdi <<= cl; 0x004434af cmp edx, 0x40 | | if (edx >= 0x40) { 0x004434b2 jge 0x443664 | goto label_53; | } | label_3: 0x004434b8 or rdi, rbx | rdi |= rbx; 0x004434bb mov ecx, esi | ecx = esi; 0x004434bd shl rbp, cl | rbp <<= cl; 0x004434c0 or rbp, rdi | rbp |= rdi; 0x004434c3 and qword [r11 + r14*8], rbp | *((r11 + r14*8)) &= rbp; 0x004434c7 jmp 0x443652 | goto label_13; | label_43: 0x004434cc xor ebp, ebp | ebp = 0; | label_44: 0x004434ce test bl, 1 | 0x004434d1 mov rdx, r11 | rdx = r11; | if ((bl & 1) != 0) { 0x004434d4 je 0x443505 | 0x004434d6 or rbp, qword [rsp - 0x20] | rbp |= *((rsp - 0x20)); 0x004434db mov rax, qword [rsp - 0x18] | rax = *((rsp - 0x18)); 0x004434e0 movups xmm0, xmmword [rax + rbp*8] | __asm ("movups xmm0, xmmword [rax + rbp*8]"); 0x004434e4 movups xmm1, xmmword [rax + rbp*8 + 0x10] | __asm ("movups xmm1, xmmword [rax + rbp*8 + 0x10]"); 0x004434e9 movups xmm2, xmmword [r14 + rbp*8] | __asm ("movups xmm2, xmmword [r14 + rbp*8]"); 0x004434ee andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x004434f1 movups xmm0, xmmword [r14 + rbp*8 + 0x10] | __asm ("movups xmm0, xmmword [r14 + rbp*8 + 0x10]"); 0x004434f7 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x004434fa movups xmmword [r14 + rbp*8], xmm2 | __asm ("movups xmmword [r14 + rbp*8], xmm2"); 0x004434ff movups xmmword [r14 + rbp*8 + 0x10], xmm0 | __asm ("movups xmmword [r14 + rbp*8 + 0x10], xmm0"); | } 0x00443505 mov rax, qword [rsp - 0x20] | rax = *((rsp - 0x20)); 0x0044350a mov rbp, qword [rsp - 8] | rbp = *((rsp - 8)); 0x0044350f lea rsi, [rax + rbp] | rsi = rax + rbp; 0x00443513 mov rbx, rsi | rbx = rsi; 0x00443516 cmp rcx, rbp | | if (rcx == rbp) { 0x00443519 je 0x4435a3 | goto label_54; | } | label_42: 0x0044351f mov r11, rdx | r11 = rdx; 0x00443522 mov eax, r10d | eax = r10d; 0x00443525 sub eax, esi | eax -= esi; 0x00443527 inc eax | eax++; 0x00443529 mov rcx, r10 | rcx = r10; 0x0044352c sub rcx, rsi | rcx -= rsi; 0x0044352f and rax, 3 | rax &= 3; | if (rax == 0) { 0x00443533 je 0x443554 | goto label_55; | } 0x00443535 mov rbp, rsi | 0x00443538 mov rbx, qword [rsp - 0x18] | rbx = *((rsp - 0x18)); 0x0044353d nop dword [rax] | | do { 0x00443540 lea rsi, [rbp + 1] | rsi = rbp + 1; 0x00443544 mov rdx, qword [rbx + rbp*8] | rdx = *((rbx + rbp*8)); 0x00443548 and qword [r14 + rbp*8], rdx | *((r14 + rbp*8)) &= rdx; 0x0044354c mov rbp, rsi | 0x0044354f dec rax | rax--; 0x00443552 jne 0x443540 | | } while (rax != 0); | label_55: 0x00443554 mov rbx, rsi | rbx = rsi; 0x00443557 cmp rcx, 3 | 0x0044355b mov rax, qword [rsp - 0x20] | rax = *((rsp - 0x20)); | if (rcx < 3) { 0x00443560 jb 0x4435a3 | goto label_54; | } 0x00443562 lea rax, [rax + r13 + 1] | rax = rax + r13 + 1; 0x00443567 lea rcx, [r11 + r12*8 + 0x18] | rcx = r11 + r12*8 + 0x18; 0x0044356c lea rdx, [rdi + r15*8 + 0x18] | rdx = rdi + r15*8 + 0x18; | do { 0x00443571 mov rdi, qword [rcx + rsi*8 - 0x18] | rdi = *((rcx + rsi*8 - 0x18)); 0x00443576 and qword [rdx + rsi*8 - 0x18], rdi | *((rdx + rsi*8 - 0x18)) &= rdi; 0x0044357b mov rdi, qword [rcx + rsi*8 - 0x10] | rdi = *((rcx + rsi*8 - 0x10)); 0x00443580 and qword [rdx + rsi*8 - 0x10], rdi | *((rdx + rsi*8 - 0x10)) &= rdi; 0x00443585 mov rdi, qword [rcx + rsi*8 - 8] | rdi = *((rcx + rsi*8 - 8)); 0x0044358a and qword [rdx + rsi*8 - 8], rdi | *((rdx + rsi*8 - 8)) &= rdi; 0x0044358f lea rbx, [rsi + 4] | rbx = rsi + 4; 0x00443593 mov rdi, qword [rcx + rsi*8] | rdi = *((rcx + rsi*8)); 0x00443597 and qword [rdx + rsi*8], rdi | *((rdx + rsi*8)) &= rdi; 0x0044359b mov rsi, rbx | rsi = rbx; 0x0044359e cmp rax, rbx | 0x004435a1 jne 0x443571 | | } while (rax != rbx); | label_54: 0x004435a3 inc r10 | r10++; 0x004435a6 and r8d, 0x3f | r8d &= 0x3f; 0x004435aa mov rbp, r10 | | label_50: 0x004435ad mov r11, qword [rsp - 0x18] | r11 = *((rsp - 0x18)); | label_35: 0x004435b2 test r8, r8 | | if (r8 == 0) { 0x004435b5 je 0x443652 | goto label_13; | } 0x004435bb mov rdx, qword [r11 + rbp*8] | rdx = *((r11 + rbp*8)); 0x004435bf mov eax, 0x40 | eax = 0x40; 0x004435c4 sub eax, r9d | eax -= r9d; 0x004435c7 cmp eax, r8d | | if (eax >= r8d) { 0x004435ca jge 0x443614 | goto label_56; | } 0x004435cc cmp r9d, 0x3f | | if (r9d <= 0x3f) { 0x004435d0 jg 0x4435ef | 0x004435d2 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004435d9 mov ecx, r9d | ecx = r9d; 0x004435dc shl rsi, cl | rsi <<= cl; 0x004435df not rsi | rsi = ~rsi; 0x004435e2 mov rdi, rdx | rdi = rdx; 0x004435e5 shl rdi, cl | rdi <<= cl; 0x004435e8 or rdi, rsi | rdi |= rsi; 0x004435eb and qword [r14 + rbx*8], rdi | *((r14 + rbx*8)) &= rdi; | } 0x004435ef mov ecx, eax | ecx = eax; 0x004435f1 shr rdx, cl | rdx >>= cl; 0x004435f4 sub r8d, eax | r8d -= eax; 0x004435f7 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x004435fe mov ecx, r8d | ecx = r8d; 0x00443601 shl rax, cl | rax <<= cl; 0x00443604 cmp r8d, 0x40 | 0x00443608 jge 0x443687 | | while (1) { 0x0044360a or rdx, rax | rdx |= rax; 0x0044360d and qword [r14 + rbx*8 + 8], rdx | *((r14 + rbx*8 + 8)) &= rdx; 0x00443612 jmp 0x443652 | goto label_13; | label_56: 0x00443614 cmp r9d, 0x3f | | if (r9d <= 0x3f) { 0x00443618 jg 0x443652 | 0x0044361a mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x00443621 mov ecx, r9d | ecx = r9d; 0x00443624 shl rdi, cl | rdi <<= cl; 0x00443627 mov eax, r9d | eax = r9d; 0x0044362a mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x00443631 not rdi | rdi = ~rdi; 0x00443634 add r8d, r9d | r8d += r9d; 0x00443637 mov ecx, r8d | ecx = r8d; 0x0044363a shl rsi, cl | rsi <<= cl; 0x0044363d cmp r8d, 0x40 | | if (r8d >= 0x40) { 0x00443641 jge 0x44368e | goto label_57; | } | label_8: 0x00443643 or rsi, rdi | rsi |= rdi; 0x00443646 mov ecx, eax | ecx = eax; 0x00443648 shl rdx, cl | rdx <<= cl; 0x0044364b or rdx, rsi | rdx |= rsi; 0x0044364e and qword [r14 + rbx*8], rdx | *((r14 + rbx*8)) &= rdx; | } | label_13: 0x00443652 pop rbx | 0x00443653 pop r12 | r12 = rbx; 0x00443655 pop r13 | r13 = rbx; 0x00443657 pop r14 | r14 = rbx; 0x00443659 pop r15 | r15 = rbx; 0x0044365b pop rbp | 0x0044365c ret | return rax; | label_52: 0x0044365d xor eax, eax | eax = 0; 0x0044365f jmp 0x44347c | goto label_2; | label_53: 0x00443664 xor edi, edi | edi = 0; 0x00443666 jmp 0x4434b8 | goto label_3; | label_16: 0x0044366b xor eax, eax | eax = 0; 0x0044366d jmp 0x442ca5 | goto label_4; | label_29: 0x00443672 xor ebx, ebx | ebx = 0; 0x00443674 jmp 0x442e7f | goto label_5; | label_27: 0x00443679 xor eax, eax | eax = 0; 0x0044367b jmp 0x442e2f | goto label_6; | label_32: 0x00443680 xor ebp, ebp | ebp = 0; 0x00443682 jmp 0x442f02 | goto label_7; 0x00443687 xor eax, eax | eax = 0; 0x00443689 jmp 0x44360a | | } | label_57: 0x0044368e xor esi, esi | esi = 0; 0x00443690 jmp 0x443643 | goto label_8; | label_39: 0x00443692 xor esi, esi | esi = 0; 0x00443694 jmp 0x442ff5 | goto label_9; | label_37: 0x00443699 xor edi, edi | edi = 0; 0x0044369b jmp 0x442f8d | goto label_10; | label_51: 0x004436a0 xor edi, edi | edi = 0; 0x004436a2 jmp 0x443365 | goto label_11; | }