; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/assume @ 0x4429b0 */ | #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_ (uint32_t arg5, uint32_t arg4, int64_t arg3, uint32_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) */ 0x004429b0 push rbp | 0x004429b1 push r15 | 0x004429b3 push r14 | 0x004429b5 push r13 | 0x004429b7 push r12 | 0x004429b9 push rbx | 0x004429ba mov r12, rcx | r12 = rcx; 0x004429bd mov r15, rsi | r15 = rsi; 0x004429c0 shr r15, 6 | r15 >>= 6; 0x004429c4 lea r13, [rdi + r15*8] | r13 = rdi + r15*8; 0x004429c8 mov r9d, esi | r9d = esi; 0x004429cb and r9d, 0x3f | r9d &= 0x3f; 0x004429cf mov rbp, r13 | 0x004429d2 shr rbp, 3 | rbp >>= 3; 0x004429d6 mov r11, rcx | r11 = rcx; 0x004429d9 shr r11, 6 | r11 >>= 6; 0x004429dd lea r10, [rdx + r11*8] | r10 = rdx + r11*8; 0x004429e1 and ecx, 0x3f | ecx &= 0x3f; 0x004429e4 mov rbx, r10 | rbx = r10; 0x004429e7 shr rbx, 3 | rbx >>= 3; 0x004429eb sub rbp, rbx | rbp -= rbx; 0x004429ee mov ebx, r9d | ebx = r9d; 0x004429f1 sub ebx, ecx | ebx -= ecx; 0x004429f3 xor eax, eax | eax = 0; 0x004429f5 cmp ebx, 0x3f | 0x004429f8 seta al | al = (ebx > 0x3f) ? 1 : 0; 0x004429fb sub rbp, rax | rbp -= rax; 0x004429fe test rbp, rbp | | if (rbp <= 0) { 0x00442a01 jg 0x442a1d | 0x00442a03 lea eax, [rbx + 0x40] | eax = rbx + 0x40; 0x00442a06 cmp ebx, 0x40 | | if (ebx < 0x40) { 0x00442a09 cmovb eax, ebx | eax = ebx; | } 0x00442a0c test eax, eax | | if (eax == 0) { 0x00442a0e je 0x442b75 | goto label_6; | } 0x00442a14 test rbp, rbp | | if (rbp != 0) { 0x00442a17 jne 0x442b75 | goto label_6; | } | } 0x00442a1d test r8, r8 | | if (r8 == 0) { 0x00442a20 je 0x44345c | goto label_7; | } 0x00442a26 add rsi, r8 | rsi += r8; 0x00442a29 mov r15, rsi | r15 = rsi; 0x00442a2c shr r15, 6 | r15 >>= 6; 0x00442a30 lea r10, [rdi + r15*8] | r10 = rdi + r15*8; 0x00442a34 and esi, 0x3f | esi &= 0x3f; 0x00442a37 add r12, r8 | r12 += r8; 0x00442a3a mov r13, r12 | r13 = r12; 0x00442a3d shr r13, 6 | r13 >>= 6; 0x00442a41 lea rbx, [rdx + r13*8] | rbx = rdx + r13*8; 0x00442a45 and r12d, 0x3f | r12d &= 0x3f; | if (r12d != 0) { 0x00442a49 je 0x442ad7 | 0x00442a4f mov ebp, r12d | 0x00442a52 cmp rbp, r8 | | if (rbp >= r8) { 0x00442a55 jae 0x442bfd | goto label_8; | } 0x00442a5b mov qword [rsp - 0x18], rdi | *((rsp - 0x18)) = rdi; 0x00442a60 lea r9d, [rsi + 0x40] | r9d = rsi + 0x40; 0x00442a64 cmp esi, r12d | | if (esi >= r12d) { 0x00442a67 cmovae r9d, esi | r9d = esi; | } 0x00442a6b sbb r14, r14 | r14 -= r14; 0x00442a6e mov esi, r9d | esi = r9d; 0x00442a71 sub esi, r12d | esi -= r12d; 0x00442a74 mov qword [rsp - 0x20], r10 | *((rsp - 0x20)) = r10; 0x00442a79 lea rdi, [r10 + r14*8] | rdi = r10 + r14*8; 0x00442a7d mov qword [rsp - 0x28], rbx | *((rsp - 0x28)) = rbx; 0x00442a82 mov r11, qword [rbx] | r11 = *(rbx); 0x00442a85 mov r10d, 0x40 | r10d = 0x40; 0x00442a8b sub r10d, esi | r10d -= esi; 0x00442a8e sub r12d, r10d | r12d -= r10d; | if (r12d <= 0) { 0x00442a91 jbe 0x442c6f | goto label_9; | } 0x00442a97 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442a9e mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00442aa5 mov ecx, esi | ecx = esi; 0x00442aa7 shl rbx, cl | rbx <<= cl; 0x00442aaa not rbx | rbx = ~rbx; 0x00442aad mov r9, rdx | r9 = rdx; 0x00442ab0 mov rdx, r11 | rdx = r11; 0x00442ab3 shl rdx, cl | rdx <<= cl; 0x00442ab6 or rdx, rbx | rdx |= rbx; 0x00442ab9 and qword [rdi], rdx | *(rdi) &= rdx; 0x00442abc mov rdx, r9 | rdx = r9; 0x00442abf add rdi, 8 | rdi += 8; 0x00442ac3 mov ecx, r10d | ecx = r10d; 0x00442ac6 shr r11, cl | r11 >>= cl; 0x00442ac9 mov ecx, r12d | ecx = r12d; 0x00442acc shl rax, cl | rax <<= cl; 0x00442acf or r11, rax | r11 |= rax; 0x00442ad2 jmp 0x442ca4 | goto label_10; | } 0x00442ad7 xor r14d, r14d | r14d = 0; 0x00442ada test esi, esi | | if (esi == 0) { 0x00442adc je 0x442cc1 | goto label_11; | } | label_0: 0x00442ae2 cmp r8, 0x40 | | if (r8 < 0x40) { 0x00442ae6 jb 0x442cdf | goto label_12; | } 0x00442aec mov qword [rsp - 0x28], rbx | *((rsp - 0x28)) = rbx; 0x00442af1 mov qword [rsp - 0x20], r10 | *((rsp - 0x20)) = r10; 0x00442af6 mov r10d, 0x40 | r10d = 0x40; 0x00442afc sub r10d, esi | r10d -= esi; 0x00442aff mov r9d, esi | r9d = esi; 0x00442b02 mov r11, 0xffffffffffffffff | r11 = 0xffffffffffffffff; 0x00442b09 mov ecx, esi | ecx = esi; 0x00442b0b shl r11, cl | r11 <<= cl; 0x00442b0e mov r12, r11 | r12 = r11; 0x00442b11 not r12 | r12 = ~r12; 0x00442b14 add r15, r14 | r15 += r14; 0x00442b17 lea rdi, [rdi + r15*8] | rdi = rdi + r15*8; 0x00442b1b lea rdx, [rdx + r13*8 - 8] | rdx = rdx + r13*8 - 8; 0x00442b20 xor ecx, ecx | ecx = 0; 0x00442b22 nop word cs:[rax + rax] | 0x00442b2c nop dword [rax] | | do { 0x00442b30 mov rax, rcx | rax = rcx; 0x00442b33 mov rbp, qword [rdx + rcx*8] | rbp = *((rdx + rcx*8)); 0x00442b37 mov rbx, rbp | rbx = *((rdx + rcx*8)); 0x00442b3a mov ecx, r9d | ecx = r9d; 0x00442b3d shl rbx, cl | rbx <<= cl; 0x00442b40 or rbx, r12 | rbx |= r12; 0x00442b43 and qword [rdi + rax*8 - 8], rbx | *((rdi + rax*8 - 8)) &= rbx; 0x00442b48 mov ecx, r10d | ecx = r10d; 0x00442b4b shr rbp, cl | rbp >>= cl; 0x00442b4e or rbp, r11 | rbp |= r11; 0x00442b51 and qword [rdi + rax*8], rbp | *((rdi + rax*8)) &= rbp; 0x00442b55 lea rcx, [rax - 1] | rcx = rax - 1; 0x00442b59 add r8, 0xffffffffffffffc0 | r8 += 0xffffffffffffffc0; 0x00442b5d cmp r8, 0x3f | 0x00442b61 ja 0x442b30 | | } while (r8 > 0x3f); 0x00442b63 add r14, rcx | r14 += rcx; 0x00442b66 mov r10, qword [rsp - 0x20] | r10 = *((rsp - 0x20)); 0x00442b6b mov rbx, qword [rsp - 0x28] | rbx = *((rsp - 0x28)); 0x00442b70 jmp 0x443248 | goto label_13; | label_6: 0x00442b75 test r8, r8 | | if (r8 == 0) { 0x00442b78 je 0x44345c | goto label_7; | } 0x00442b7e test ecx, ecx | | if (ecx == 0) { 0x00442b80 je 0x442d1e | goto label_14; | } 0x00442b86 mov eax, 0x40 | eax = 0x40; 0x00442b8b mov ebp, 0x40 | 0x00442b90 sub ebp, ecx | ebp -= ecx; 0x00442b92 mov r12, qword [r10] | r12 = *(r10); 0x00442b95 shr r12, cl | r12 >>= cl; 0x00442b98 cmp rbp, r8 | | if (rbp >= r8) { 0x00442b9b jae 0x442d3f | goto label_15; | } 0x00442ba1 mov qword [rsp - 0x28], r10 | *((rsp - 0x28)) = r10; 0x00442ba6 mov r14, rdx | r14 = rdx; 0x00442ba9 cmp r9d, ecx | | if (r9d <= ecx) { 0x00442bac jbe 0x442de1 | goto label_16; | } 0x00442bb2 sub eax, r9d | eax -= r9d; 0x00442bb5 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00442bbc mov r10, rdi | r10 = rdi; 0x00442bbf mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x00442bc6 mov ecx, r9d | ecx = r9d; 0x00442bc9 shl rdi, cl | rdi <<= cl; 0x00442bcc not rdi | rdi = ~rdi; 0x00442bcf mov rsi, r12 | rsi = r12; 0x00442bd2 shl rsi, cl | rsi <<= cl; 0x00442bd5 or rsi, rdi | rsi |= rdi; 0x00442bd8 mov rdi, r10 | rdi = r10; 0x00442bdb and qword [r13], rsi | *(r13) &= rsi; 0x00442bdf mov ecx, eax | ecx = eax; 0x00442be1 shr r12, cl | r12 >>= cl; 0x00442be4 mov ecx, ebp | ecx = ebp; 0x00442be6 sub ecx, eax | ecx -= eax; 0x00442be8 shl rdx, cl | rdx <<= cl; 0x00442beb or rdx, r12 | rdx |= r12; 0x00442bee and qword [r13 + 8], rdx | *((r13 + 8)) &= rdx; 0x00442bf2 add r9d, ebp | r9d += ebp; 0x00442bf5 mov ebx, r9d | ebx = r9d; 0x00442bf8 jmp 0x442e1e | goto label_17; | label_8: 0x00442bfd lea edx, [rsi + 0x40] | edx = rsi + 0x40; 0x00442c00 cmp esi, r8d | | if (esi >= r8d) { 0x00442c03 cmovae edx, esi | edx = esi; | } 0x00442c06 sbb r9, r9 | r9 -= r9; 0x00442c09 sub r12d, r8d | r12d -= r8d; 0x00442c0c mov rsi, qword [rbx] | rsi = *(rbx); 0x00442c0f mov ecx, r12d | ecx = r12d; 0x00442c12 shr rsi, cl | rsi >>= cl; 0x00442c15 test r8d, r8d | | if (r8d == 0) { 0x00442c18 je 0x44345c | goto label_7; | } 0x00442c1e mov ecx, edx | ecx = edx; 0x00442c20 sub ecx, r8d | ecx -= r8d; 0x00442c23 mov eax, 0x40 | eax = 0x40; 0x00442c28 sub eax, ecx | eax -= ecx; 0x00442c2a cmp eax, r8d | | if (eax >= r8d) { 0x00442c2d jae 0x442ce6 | goto label_18; | } 0x00442c33 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00442c3a shl rdx, cl | rdx <<= cl; 0x00442c3d not rdx | rdx = ~rdx; 0x00442c40 mov rdi, rsi | rdi = rsi; 0x00442c43 shl rdi, cl | rdi <<= cl; 0x00442c46 or rdi, rdx | rdi |= rdx; 0x00442c49 and qword [r10 + r9*8], rdi | *((r10 + r9*8)) &= rdi; 0x00442c4d mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00442c54 mov ecx, eax | ecx = eax; 0x00442c56 shr rsi, cl | rsi >>= cl; 0x00442c59 sub r8d, eax | r8d -= eax; 0x00442c5c mov ecx, r8d | ecx = r8d; 0x00442c5f shl rdx, cl | rdx <<= cl; 0x00442c62 or rdx, rsi | rdx |= rsi; 0x00442c65 and qword [r10 + r9*8 + 8], rdx | *((r10 + r9*8 + 8)) &= rdx; 0x00442c6a jmp 0x44345c | goto label_7; | label_9: 0x00442c6f mov r10d, esi | r10d = esi; 0x00442c72 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00442c79 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442c80 mov ecx, esi | ecx = esi; 0x00442c82 shl rax, cl | rax <<= cl; 0x00442c85 not rax | rax = ~rax; 0x00442c88 mov ecx, r9d | ecx = r9d; 0x00442c8b shl rbx, cl | rbx <<= cl; 0x00442c8e cmp r9d, 0x40 | | if (r9d >= 0x40) { 0x00442c92 jae 0x44346e | goto label_19; | } | label_2: 0x00442c98 or rbx, rax | rbx |= rax; 0x00442c9b mov ecx, r10d | ecx = r10d; 0x00442c9e shl r11, cl | r11 <<= cl; 0x00442ca1 or r11, rbx | r11 |= rbx; | label_10: 0x00442ca4 and qword [rdi], r11 | *(rdi) &= r11; 0x00442ca7 sub r8, rbp | r8 -= rbp; 0x00442caa mov rdi, qword [rsp - 0x18] | rdi = *((rsp - 0x18)); 0x00442caf mov r10, qword [rsp - 0x20] | r10 = *((rsp - 0x20)); 0x00442cb4 mov rbx, qword [rsp - 0x28] | rbx = *((rsp - 0x28)); 0x00442cb9 test esi, esi | | if (esi != 0) { 0x00442cbb jne 0x442ae2 | goto label_0; | } | label_11: 0x00442cc1 cmp r8, 0x40 | | if (r8 >= 0x40) { 0x00442cc5 jb 0x442cdf | 0x00442cc7 lea r11, [r8 - 0x40] | r11 = r8 - 0x40; 0x00442ccb cmp r11, 0xc0 | | if (r11 >= 0xc0) { 0x00442cd2 jae 0x442d97 | goto label_20; | } 0x00442cd8 xor ecx, ecx | ecx = 0; 0x00442cda jmp 0x44321c | goto label_21; | } | label_12: 0x00442cdf xor ecx, ecx | ecx = 0; 0x00442ce1 jmp 0x443248 | goto label_13; | label_18: 0x00442ce6 mov eax, ecx | eax = ecx; 0x00442ce8 mov rbp, 0xffffffffffffffff | 0x00442cef mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00442cf6 shl rbx, cl | rbx <<= cl; 0x00442cf9 not rbx | rbx = ~rbx; 0x00442cfc mov ecx, edx | ecx = edx; 0x00442cfe shl rbp, cl | rbp <<= cl; 0x00442d01 cmp edx, 0x40 | | if (edx >= 0x40) { 0x00442d04 jae 0x443475 | goto label_22; | } | label_3: 0x00442d0a or rbp, rbx | rbp |= rbx; 0x00442d0d mov ecx, eax | ecx = eax; 0x00442d0f shl rsi, cl | rsi <<= cl; 0x00442d12 or rsi, rbp | rsi |= rbp; 0x00442d15 and qword [r10 + r9*8], rsi | *((r10 + r9*8)) &= rsi; 0x00442d19 jmp 0x44345c | goto label_7; | label_14: 0x00442d1e xor r12d, r12d | r12d = 0; 0x00442d21 test r9d, r9d | | if (r9d == 0) { 0x00442d24 je 0x442e47 | goto label_23; | } | do { 0x00442d2a mov ebx, r9d | ebx = r9d; 0x00442d2d mov rbp, r12 | 0x00442d30 cmp r8, 0x40 | | if (r8 >= 0x40) { 0x00442d34 jae 0x442f77 | goto label_24; | } 0x00442d3a jmp 0x4433d0 | goto label_25; | label_15: 0x00442d3f test r8d, r8d | | if (r8d == 0) { 0x00442d42 je 0x44345c | goto label_7; | } 0x00442d48 mov eax, 0x40 | eax = 0x40; 0x00442d4d sub eax, r9d | eax -= r9d; 0x00442d50 cmp eax, r8d | | if (eax >= r8d) { 0x00442d53 jae 0x44317d | goto label_26; | } 0x00442d59 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00442d60 mov ecx, r9d | ecx = r9d; 0x00442d63 shl rdx, cl | rdx <<= cl; 0x00442d66 not rdx | rdx = ~rdx; 0x00442d69 mov rdi, r12 | rdi = r12; 0x00442d6c shl rdi, cl | rdi <<= cl; 0x00442d6f or rdi, rdx | rdi |= rdx; 0x00442d72 and qword [r13], rdi | *(r13) &= rdi; 0x00442d76 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00442d7d mov ecx, eax | ecx = eax; 0x00442d7f shr r12, cl | r12 >>= cl; 0x00442d82 sub r8d, eax | r8d -= eax; 0x00442d85 mov ecx, r8d | ecx = r8d; 0x00442d88 shl rdx, cl | rdx <<= cl; 0x00442d8b or rdx, r12 | rdx |= r12; 0x00442d8e and qword [r13 + 8], rdx | *((r13 + 8)) &= rdx; 0x00442d92 jmp 0x44345c | goto label_7; | label_20: 0x00442d97 mov r12, rdx | r12 = rdx; 0x00442d9a shr r11, 6 | r11 >>= 6; 0x00442d9e lea rax, [r14 + r15] | rax = r14 + r15; 0x00442da2 mov rcx, r11 | rcx = r11; 0x00442da5 not rcx | rcx = ~rcx; 0x00442da8 lea rdx, [rax + rcx] | rdx = rax + rcx; 0x00442dac lea rdx, [rdi + rdx*8] | rdx = rdi + rdx*8; 0x00442db0 mov qword [rsp - 0x28], rbx | *((rsp - 0x28)) = rbx; 0x00442db5 cmp rdx, rbx | | if (rdx >= rbx) { 0x00442db8 jae 0x443017 | goto label_27; | } 0x00442dbe lea rdx, [rdi + rax*8] | rdx = rdi + rax*8; 0x00442dc2 add rcx, r13 | rcx += r13; 0x00442dc5 lea rcx, [r12 + rcx*8] | rcx = r12 + rcx*8; 0x00442dc9 cmp rcx, rdx | | if (rcx >= rdx) { 0x00442dcc jae 0x443017 | goto label_27; | } 0x00442dd2 xor ecx, ecx | ecx = 0; 0x00442dd4 mov rdx, r12 | rdx = r12; 0x00442dd7 mov rbx, qword [rsp - 0x28] | rbx = *((rsp - 0x28)); 0x00442ddc jmp 0x44321c | goto label_21; | label_16: 0x00442de1 lea ebx, [rbp + r9] | ebx = rbp + r9; 0x00442de6 mov r10d, r9d | r10d = r9d; 0x00442de9 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00442df0 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00442df7 mov ecx, r9d | ecx = r9d; 0x00442dfa shl rax, cl | rax <<= cl; 0x00442dfd not rax | rax = ~rax; 0x00442e00 mov ecx, ebx | ecx = ebx; 0x00442e02 shl rdx, cl | rdx <<= cl; 0x00442e05 cmp ebx, 0x40 | | if (ebx >= 0x40) { 0x00442e08 jae 0x443480 | goto label_28; | } | label_4: 0x00442e0e or rdx, rax | rdx |= rax; 0x00442e11 mov ecx, r10d | ecx = r10d; 0x00442e14 shl r12, cl | r12 <<= cl; 0x00442e17 or r12, rdx | r12 |= rdx; 0x00442e1a and qword [r13], r12 | *(r13) &= r12; | label_17: 0x00442e1e sub r8, rbp | r8 -= rbp; 0x00442e21 mov r12d, 1 | r12d = 1; 0x00442e27 cmp ebx, 0x40 | 0x00442e2a mov rdx, r14 | rdx = r14; | if (ebx < 0x40) { 0x00442e2d jb 0x442f66 | goto label_29; | } 0x00442e33 add ebx, 0xffffffc0 | ebx += 0xffffffc0; 0x00442e36 mov r9d, ebx | r9d = ebx; 0x00442e39 mov r10, qword [rsp - 0x28] | r10 = *((rsp - 0x28)); 0x00442e3e test r9d, r9d | 0x00442e41 jne 0x442d2a | | } while (r9d != 0); | label_23: 0x00442e47 xor ebx, ebx | ebx = 0; 0x00442e49 cmp r8, 0x40 | | if (r8 < 0x40) { 0x00442e4d jb 0x443175 | goto label_30; | } 0x00442e53 mov qword [rsp - 0x28], r10 | *((rsp - 0x28)) = r10; 0x00442e58 lea rax, [r8 - 0x40] | rax = r8 - 0x40; 0x00442e5c mov rcx, rax | rcx = rax; 0x00442e5f shr rcx, 6 | rcx >>= 6; 0x00442e63 lea r14, [rcx + r12] | r14 = rcx + r12; 0x00442e67 mov r9, r12 | r9 = r12; 0x00442e6a cmp rax, 0xc0 | | if (rax < 0xc0) { 0x00442e70 jb 0x443341 | goto label_31; | } 0x00442e76 lea rax, [r12 + r15] | rax = r12 + r15; 0x00442e7a mov rbx, rdx | rbx = rdx; 0x00442e7d lea rdx, [rdi + rax*8] | rdx = rdi + rax*8; 0x00442e81 lea rsi, [r12 + r11] | rsi = r12 + r11; 0x00442e85 mov rbp, rdi | 0x00442e88 lea rdi, [rsi + rcx] | rdi = rsi + rcx; 0x00442e8c lea rdi, [rbx + rdi*8 + 8] | rdi = rbx + rdi*8 + 8; 0x00442e91 cmp rdx, rdi | 0x00442e94 mov rdx, rbx | rdx = rbx; 0x00442e97 mov rdi, rbp | rdi = rbp; | if (rdx < rdi) { 0x00442e9a jae 0x442eb7 | 0x00442e9c add rax, rcx | rax += rcx; 0x00442e9f lea rax, [rdi + rax*8 + 8] | rax = rdi + rax*8 + 8; 0x00442ea4 lea rdx, [rbx + rsi*8] | rdx = rbx + rsi*8; 0x00442ea8 mov r9, r12 | r9 = r12; 0x00442eab cmp rdx, rax | 0x00442eae mov rdx, rbx | rdx = rbx; | if (rdx < rax) { 0x00442eb1 jb 0x443341 | goto label_31; | } | } 0x00442eb7 mov qword [rsp - 0x18], r13 | *((rsp - 0x18)) = r13; 0x00442ebc lea rsi, [rcx + 1] | rsi = rcx + 1; 0x00442ec0 mov r13, rsi | r13 = rsi; 0x00442ec3 and r13, 0xfffffffffffffffc | r13 &= 0xfffffffffffffffc; 0x00442ec7 lea rax, [r13 - 4] | rax = r13 - 4; 0x00442ecb mov r9, rax | r9 = rax; 0x00442ece shr r9, 2 | r9 >>= 2; 0x00442ed2 inc r9 | r9++; 0x00442ed5 test rax, rax | | if (rax == 0) { 0x00442ed8 je 0x4432f6 | goto label_32; | } 0x00442ede mov qword [rsp - 0x20], rsi | *((rsp - 0x20)) = rsi; 0x00442ee3 mov rsi, r9 | rsi = r9; 0x00442ee6 and rsi, 0xfffffffffffffffe | rsi &= 0xfffffffffffffffe; 0x00442eea neg rsi | rsi = -rsi; 0x00442eed xor ebp, ebp | ebp = 0; 0x00442eef mov rbx, qword [rsp - 0x18] | rbx = *((rsp - 0x18)); 0x00442ef4 mov r10, r12 | r10 = r12; 0x00442ef7 mov r12, qword [rsp - 0x28] | r12 = *((rsp - 0x28)); | do { 0x00442efc mov rax, r10 | rax = r10; 0x00442eff or rax, rbp | rax |= rbp; 0x00442f02 movups xmm0, xmmword [r12 + rax*8] | __asm ("movups xmm0, xmmword [r12 + rax*8]"); 0x00442f07 movups xmm1, xmmword [r12 + rax*8 + 0x10] | __asm ("movups xmm1, xmmword [r12 + rax*8 + 0x10]"); 0x00442f0d movups xmm2, xmmword [rbx + rax*8] | __asm ("movups xmm2, xmmword [rbx + rax*8]"); 0x00442f11 andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x00442f14 movups xmm0, xmmword [rbx + rax*8 + 0x10] | __asm ("movups xmm0, xmmword [rbx + rax*8 + 0x10]"); 0x00442f19 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x00442f1c movups xmmword [rbx + rax*8], xmm2 | __asm ("movups xmmword [rbx + rax*8], xmm2"); 0x00442f20 movups xmmword [rbx + rax*8 + 0x10], xmm0 | __asm ("movups xmmword [rbx + rax*8 + 0x10], xmm0"); 0x00442f25 lea rax, [rbp + 4] | rax = rbp + 4; 0x00442f29 or rax, r10 | rax |= r10; 0x00442f2c movups xmm0, xmmword [r12 + rax*8] | __asm ("movups xmm0, xmmword [r12 + rax*8]"); 0x00442f31 movups xmm1, xmmword [r12 + rax*8 + 0x10] | __asm ("movups xmm1, xmmword [r12 + rax*8 + 0x10]"); 0x00442f37 movups xmm2, xmmword [rbx + rax*8] | __asm ("movups xmm2, xmmword [rbx + rax*8]"); 0x00442f3b andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x00442f3e movups xmm0, xmmword [rbx + rax*8 + 0x10] | __asm ("movups xmm0, xmmword [rbx + rax*8 + 0x10]"); 0x00442f43 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x00442f46 movups xmmword [rbx + rax*8], xmm2 | __asm ("movups xmmword [rbx + rax*8], xmm2"); 0x00442f4a movups xmmword [rbx + rax*8 + 0x10], xmm0 | __asm ("movups xmmword [rbx + rax*8 + 0x10], xmm0"); 0x00442f4f add rbp, 8 | rbp += 8; 0x00442f53 add rsi, 2 | rsi += 2; 0x00442f57 jne 0x442efc | | } while (rsi != 0); 0x00442f59 mov r12, r10 | r12 = r10; 0x00442f5c mov rsi, qword [rsp - 0x20] | rsi = *((rsp - 0x20)); 0x00442f61 jmp 0x4432f8 | goto label_33; | label_29: 0x00442f66 xor ebp, ebp | ebp = 0; 0x00442f68 mov r10, qword [rsp - 0x28] | r10 = *((rsp - 0x28)); 0x00442f6d cmp r8, 0x40 | | if (r8 < 0x40) { 0x00442f71 jb 0x4433d0 | goto label_25; | } | label_24: 0x00442f77 mov qword [rsp - 0x28], r10 | *((rsp - 0x28)) = r10; 0x00442f7c mov qword [rsp - 0x18], r13 | *((rsp - 0x18)) = r13; 0x00442f81 mov qword [rsp - 8], rdx | *((rsp - 8)) = rdx; 0x00442f86 mov r13d, 0x40 | r13d = 0x40; 0x00442f8c mov r14, 0xffffffffffffffff | r14 = 0xffffffffffffffff; 0x00442f93 mov ecx, ebx | ecx = ebx; 0x00442f95 shl r14, cl | r14 <<= cl; 0x00442f98 sub r13d, ebx | r13d -= ebx; 0x00442f9b mov dword [rsp - 0xc], ebx | *((rsp - 0xc)) = ebx; 0x00442f9f mov r9d, ebx | r9d = ebx; 0x00442fa2 mov rsi, rbp | rsi = rbp; 0x00442fa5 mov rbp, r14 | 0x00442fa8 not rbp | rbp = ~rbp; 0x00442fab lea rcx, [r8 - 0x40] | rcx = r8 - 0x40; 0x00442faf mov rbx, rcx | rbx = rcx; 0x00442fb2 shr rbx, 6 | rbx >>= 6; 0x00442fb6 lea rdx, [rsi + r15] | rdx = rsi + r15; 0x00442fba mov r10, qword [rdi + rdx*8] | r10 = *((rdi + rdx*8)); 0x00442fbe test cl, 0x40 | | if ((cl & 0x40) != 0) { 0x00442fc1 jne 0x4430b7 | goto label_34; | } 0x00442fc7 mov rax, qword [rsp - 0x28] | rax = *((rsp - 0x28)); 0x00442fcc mov rdx, qword [rax + r12*8] | rdx = *((rax + r12*8)); 0x00442fd0 mov rax, rdi | rax = rdi; 0x00442fd3 mov rdi, rdx | rdi = rdx; 0x00442fd6 mov ecx, r9d | ecx = r9d; 0x00442fd9 shl rdi, cl | rdi <<= cl; 0x00442fdc or rdi, rbp | rdi |= rbp; 0x00442fdf and rdi, r10 | rdi &= r10; 0x00442fe2 mov ecx, r13d | ecx = r13d; 0x00442fe5 shr rdx, cl | rdx >>= cl; 0x00442fe8 mov rcx, qword [rsp - 0x18] | rcx = *((rsp - 0x18)); 0x00442fed mov qword [rcx + rsi*8], rdi | *((rcx + rsi*8)) = rdi; 0x00442ff1 or rdx, r14 | rdx |= r14; 0x00442ff4 and rdx, qword [rcx + rsi*8 + 8] | rdx &= *((rcx + rsi*8 + 8)); 0x00442ff9 mov qword [rcx + rsi*8 + 8], rdx | *((rcx + rsi*8 + 8)) = rdx; 0x00442ffe lea rdi, [rsi + 1] | rdi = rsi + 1; 0x00443002 lea rcx, [r12 + 1] | rcx = r12 + 1; 0x00443007 mov qword [rsp - 0x20], rdi | *((rsp - 0x20)) = rdi; 0x0044300c mov rdi, rax | rdi = rax; 0x0044300f mov r10, rdx | r10 = rdx; 0x00443012 jmp 0x4430bf | goto label_35; | label_27: 0x00443017 mov qword [rsp - 0x20], r10 | *((rsp - 0x20)) = r10; 0x0044301c inc r11 | r11++; 0x0044301f mov r9, r11 | r9 = r11; 0x00443022 and r9, 0xfffffffffffffffc | r9 &= 0xfffffffffffffffc; 0x00443026 lea rcx, [r9 - 4] | rcx = r9 - 4; 0x0044302a mov r10, rcx | r10 = rcx; 0x0044302d shr r10, 2 | r10 >>= 2; 0x00443031 inc r10 | r10++; 0x00443034 test rcx, rcx | | if (rcx == 0) { 0x00443037 je 0x4431be | goto label_36; | } 0x0044303d mov rdx, r12 | rdx = r12; 0x00443040 lea rcx, [r12 + r13*8 - 0x10] | rcx = r12 + r13*8 - 0x10; 0x00443045 lea rax, [rdi + rax*8 - 0x10] | rax = rdi + rax*8 - 0x10; 0x0044304a mov rbx, r10 | rbx = r10; 0x0044304d and rbx, 0xfffffffffffffffe | rbx &= 0xfffffffffffffffe; 0x00443051 neg rbx | rbx = -rbx; 0x00443054 mov rbp, 0xfffffffffffffffe | 0x0044305b nop dword [rax + rax] | | do { 0x00443060 movups xmm0, xmmword [rcx + rbp*8] | __asm ("movups xmm0, xmmword [rcx + rbp*8]"); 0x00443064 movups xmm1, xmmword [rcx + rbp*8 + 0x10] | __asm ("movups xmm1, xmmword [rcx + rbp*8 + 0x10]"); 0x00443069 movups xmm2, xmmword [rax + rbp*8 - 0x20] | __asm ("movups xmm2, xmmword [rax + rbp*8 - 0x20]"); 0x0044306e movups xmm3, xmmword [rax + rbp*8 - 0x10] | __asm ("movups xmm3, xmmword [rax + rbp*8 - 0x10]"); 0x00443073 movups xmm4, xmmword [rax + rbp*8] | __asm ("movups xmm4, xmmword [rax + rbp*8]"); 0x00443077 andps xmm4, xmm0 | __asm ("andps xmm4, xmm0"); 0x0044307a movups xmm0, xmmword [rax + rbp*8 + 0x10] | __asm ("movups xmm0, xmmword [rax + rbp*8 + 0x10]"); 0x0044307f andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x00443082 movups xmmword [rax + rbp*8 + 0x10], xmm0 | __asm ("movups xmmword [rax + rbp*8 + 0x10], xmm0"); 0x00443087 movups xmmword [rax + rbp*8], xmm4 | __asm ("movups xmmword [rax + rbp*8], xmm4"); 0x0044308b movups xmm0, xmmword [rcx + rbp*8 - 0x20] | __asm ("movups xmm0, xmmword [rcx + rbp*8 - 0x20]"); 0x00443090 andps xmm0, xmm2 | __asm ("andps xmm0, xmm2"); 0x00443093 movups xmm1, xmmword [rcx + rbp*8 - 0x10] | __asm ("movups xmm1, xmmword [rcx + rbp*8 - 0x10]"); 0x00443098 andps xmm1, xmm3 | __asm ("andps xmm1, xmm3"); 0x0044309b movups xmmword [rax + rbp*8 - 0x10], xmm1 | __asm ("movups xmmword [rax + rbp*8 - 0x10], xmm1"); 0x004430a0 movups xmmword [rax + rbp*8 - 0x20], xmm0 | __asm ("movups xmmword [rax + rbp*8 - 0x20], xmm0"); 0x004430a5 add rbp, 0xfffffffffffffff8 | rbp += 0xfffffffffffffff8; 0x004430a9 add rbx, 2 | rbx += 2; 0x004430ad jne 0x443060 | | } while (rbx != 0); 0x004430af inc rbp | rbp++; 0x004430b2 jmp 0x4431c8 | goto label_37; | label_34: 0x004430b7 mov qword [rsp - 0x20], rsi | *((rsp - 0x20)) = rsi; 0x004430bc mov rcx, r12 | rcx = r12; | label_35: 0x004430bf mov rsi, qword [rsp - 8] | rsi = *((rsp - 8)); 0x004430c4 add r12, rbx | r12 += rbx; 0x004430c7 test rbx, rbx | | if (rbx == 0) { 0x004430ca je 0x443156 | goto label_38; | } 0x004430d0 add r11, rcx | r11 += rcx; 0x004430d3 lea rdx, [rsi + r11*8 + 8] | rdx = rsi + r11*8 + 8; 0x004430d8 mov r11, r12 | r11 = r12; 0x004430db sub r12, rcx | r12 -= rcx; 0x004430de inc r12 | r12++; 0x004430e1 add r15, qword [rsp - 0x20] | r15 += *((rsp - 0x20)); 0x004430e6 lea rbx, [rdi + r15*8 + 0x10] | rbx = rdi + r15*8 + 0x10; 0x004430eb xor edi, edi | edi = 0; 0x004430ed nop dword [rax] | | do { 0x004430f0 mov rax, qword [rdx + rdi*8 - 8] | rax = *((rdx + rdi*8 - 8)); 0x004430f5 mov rsi, rax | rsi = *((rdx + rdi*8 - 8)); 0x004430f8 mov ecx, r9d | ecx = r9d; 0x004430fb shl rsi, cl | rsi <<= cl; 0x004430fe or rsi, rbp | rsi |= rbp; 0x00443101 and rsi, r10 | rsi &= r10; 0x00443104 mov qword [rbx + rdi*8 - 0x10], rsi | *((rbx + rdi*8 - 0x10)) = rsi; 0x00443109 mov ecx, r13d | ecx = r13d; 0x0044310c shr rax, cl | rax >>= cl; 0x0044310f or rax, r14 | rax |= r14; 0x00443112 and rax, qword [rbx + rdi*8 - 8] | rax &= *((rbx + rdi*8 - 8)); 0x00443117 mov qword [rbx + rdi*8 - 8], rax | *((rbx + rdi*8 - 8)) = rax; 0x0044311c mov r10, qword [rdx + rdi*8] | r10 = *((rdx + rdi*8)); 0x00443120 mov rsi, r10 | rsi = *((rdx + rdi*8)); 0x00443123 mov ecx, r9d | ecx = r9d; 0x00443126 shl rsi, cl | rsi <<= cl; 0x00443129 or rsi, rbp | rsi |= rbp; 0x0044312c and rsi, rax | rsi &= rax; 0x0044312f mov ecx, r13d | ecx = r13d; 0x00443132 shr r10, cl | r10 >>= cl; 0x00443135 mov qword [rbx + rdi*8 - 8], rsi | *((rbx + rdi*8 - 8)) = rsi; 0x0044313a or r10, r14 | r10 |= r14; 0x0044313d and r10, qword [rbx + rdi*8] | r10 &= *((rbx + rdi*8)); 0x00443141 mov qword [rbx + rdi*8], r10 | *((rbx + rdi*8)) = r10; 0x00443145 add rdi, 2 | rdi += 2; 0x00443149 cmp r12, rdi | 0x0044314c jne 0x4430f0 | | } while (r12 != rdi); 0x0044314e add qword [rsp - 0x20], rdi | *((rsp - 0x20)) += rdi; 0x00443153 mov r12, r11 | r12 = r11; | label_38: 0x00443156 inc r12 | r12++; 0x00443159 and r8d, 0x3f | r8d &= 0x3f; 0x0044315d mov r13, qword [rsp - 0x18] | r13 = *((rsp - 0x18)); 0x00443162 mov r10, qword [rsp - 0x28] | r10 = *((rsp - 0x28)); 0x00443167 mov ebx, dword [rsp - 0xc] | ebx = *((rsp - 0xc)); 0x0044316b mov rbp, qword [rsp - 0x20] | rbp = *((rsp - 0x20)); 0x00443170 jmp 0x4433d0 | goto label_25; | label_30: 0x00443175 mov rbp, r12 | 0x00443178 jmp 0x4433d0 | goto label_25; | label_26: 0x0044317d add r8d, r9d | r8d += r9d; 0x00443180 mov eax, r9d | eax = r9d; 0x00443183 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x0044318a mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x00443191 mov ecx, r9d | ecx = r9d; 0x00443194 shl rdi, cl | rdi <<= cl; 0x00443197 not rdi | rdi = ~rdi; 0x0044319a mov ecx, r8d | ecx = r8d; 0x0044319d shl rdx, cl | rdx <<= cl; 0x004431a0 cmp r8d, 0x40 | | if (r8d >= 0x40) { 0x004431a4 jae 0x443487 | goto label_39; | } | label_5: 0x004431aa or rdx, rdi | rdx |= rdi; 0x004431ad mov ecx, eax | ecx = eax; 0x004431af shl r12, cl | r12 <<= cl; 0x004431b2 or r12, rdx | r12 |= rdx; 0x004431b5 and qword [r13], r12 | *(r13) &= r12; 0x004431b9 jmp 0x44345c | goto label_7; | label_36: 0x004431be mov rbp, 0xffffffffffffffff | 0x004431c5 mov rdx, r12 | rdx = r12; | label_37: 0x004431c8 mov rax, r9 | rax = r9; 0x004431cb shl rax, 6 | rax <<= 6; 0x004431cf test r10b, 1 | 0x004431d3 mov r10, qword [rsp - 0x20] | r10 = *((rsp - 0x20)); 0x004431d8 mov rbx, qword [rsp - 0x28] | rbx = *((rsp - 0x28)); | if ((r10b & 1) != 0) { 0x004431dd je 0x44320b | 0x004431df lea rcx, [r14 + rbp] | rcx = r14 + rbp; 0x004431e3 movups xmm0, xmmword [rbx + rbp*8 - 0x18] | __asm ("movups xmm0, xmmword [rbx + rbp*8 - 0x18]"); 0x004431e8 movups xmm1, xmmword [rbx + rbp*8 - 8] | __asm ("movups xmm1, xmmword [rbx + rbp*8 - 8]"); 0x004431ed movups xmm2, xmmword [r10 + rcx*8 - 0x18] | __asm ("movups xmm2, xmmword [r10 + rcx*8 - 0x18]"); 0x004431f3 andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x004431f6 movups xmm0, xmmword [r10 + rcx*8 - 8] | __asm ("movups xmm0, xmmword [r10 + rcx*8 - 8]"); 0x004431fc andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x004431ff movups xmmword [r10 + rcx*8 - 8], xmm0 | __asm ("movups xmmword [r10 + rcx*8 - 8], xmm0"); 0x00443205 movups xmmword [r10 + rcx*8 - 0x18], xmm2 | __asm ("movups xmmword [r10 + rcx*8 - 0x18], xmm2"); | } 0x0044320b sub r14, r9 | r14 -= r9; 0x0044320e mov rcx, r9 | rcx = r9; 0x00443211 neg rcx | rcx = -rcx; 0x00443214 sub r8, rax | r8 -= rax; 0x00443217 cmp r11, r9 | | if (r11 == r9) { 0x0044321a je 0x443248 | goto label_13; | } | label_21: 0x0044321c lea rax, [rdi + r15*8 - 8] | rax = rdi + r15*8 - 8; 0x00443221 lea rdx, [rdx + r13*8 - 8] | rdx = rdx + r13*8 - 8; 0x00443226 nop word cs:[rax + rax] | | do { 0x00443230 mov rdi, qword [rdx + rcx*8] | rdi = *((rdx + rcx*8)); 0x00443234 and qword [rax + r14*8], rdi | *((rax + r14*8)) &= rdi; 0x00443238 dec rcx | rcx--; 0x0044323b dec r14 | r14--; 0x0044323e add r8, 0xffffffffffffffc0 | r8 += 0xffffffffffffffc0; 0x00443242 cmp r8, 0x3f | 0x00443246 ja 0x443230 | | } while (r8 > 0x3f); | label_13: 0x00443248 test r8d, r8d | | if (r8d == 0) { 0x0044324b je 0x44345c | goto label_7; | } 0x00443251 mov eax, esi | eax = esi; 0x00443253 or eax, 0x40 | eax |= 0x40; 0x00443256 cmp esi, r8d | | if (esi >= r8d) { 0x00443259 cmovae eax, esi | eax = esi; | } 0x0044325c sbb r14, 0 | 0x00443260 mov edx, eax | edx = eax; 0x00443262 mov rbp, qword [rbx + rcx*8 - 8] | rbp = *((rbx + rcx*8 - 8)); 0x00443267 mov ecx, r8d | ecx = r8d; 0x0044326a neg cl | cl = -cl; 0x0044326c shr rbp, cl | rbp >>= cl; 0x0044326f sub edx, r8d | edx -= r8d; 0x00443272 mov esi, 0x40 | esi = 0x40; 0x00443277 sub esi, edx | esi -= edx; 0x00443279 cmp esi, r8d | | if (esi < r8d) { 0x0044327c jae 0x4432bc | 0x0044327e mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00443285 mov ecx, edx | ecx = edx; 0x00443287 shl rax, cl | rax <<= cl; 0x0044328a not rax | rax = ~rax; 0x0044328d mov rdi, rbp | rdi = rbp; 0x00443290 shl rdi, cl | rdi <<= cl; 0x00443293 or rdi, rax | rdi |= rax; 0x00443296 and qword [r10 + r14*8], rdi | *((r10 + r14*8)) &= rdi; 0x0044329a mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x004432a1 mov ecx, esi | ecx = esi; 0x004432a3 shr rbp, cl | rbp >>= cl; 0x004432a6 sub r8d, esi | r8d -= esi; 0x004432a9 mov ecx, r8d | ecx = r8d; 0x004432ac shl rax, cl | rax <<= cl; 0x004432af or rax, rbp | rax |= rbp; 0x004432b2 and qword [r10 + r14*8 + 8], rax | *((r10 + r14*8 + 8)) &= rax; 0x004432b7 jmp 0x44345c | goto label_7; | } 0x004432bc mov esi, edx | esi = edx; 0x004432be mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x004432c5 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x004432cc mov ecx, edx | ecx = edx; 0x004432ce shl rbx, cl | rbx <<= cl; 0x004432d1 not rbx | rbx = ~rbx; 0x004432d4 mov ecx, eax | ecx = eax; 0x004432d6 shl rdi, cl | rdi <<= cl; 0x004432d9 cmp eax, 0x40 | | if (eax >= 0x40) { 0x004432dc jae 0x443467 | goto label_40; | } | label_1: 0x004432e2 or rdi, rbx | rdi |= rbx; 0x004432e5 mov ecx, esi | ecx = esi; 0x004432e7 shl rbp, cl | rbp <<= cl; 0x004432ea or rbp, rdi | rbp |= rdi; 0x004432ed and qword [r10 + r14*8], rbp | *((r10 + r14*8)) &= rbp; 0x004432f1 jmp 0x44345c | goto label_7; | label_32: 0x004432f6 xor ebp, ebp | ebp = 0; | label_33: 0x004432f8 test r9b, 1 | | if ((r9b & 1) != 0) { 0x004432fc je 0x44332c | 0x004432fe or rbp, r12 | rbp |= r12; 0x00443301 mov rax, qword [rsp - 0x28] | rax = *((rsp - 0x28)); 0x00443306 movups xmm0, xmmword [rax + rbp*8] | __asm ("movups xmm0, xmmword [rax + rbp*8]"); 0x0044330a movups xmm1, xmmword [rax + rbp*8 + 0x10] | __asm ("movups xmm1, xmmword [rax + rbp*8 + 0x10]"); 0x0044330f mov rax, qword [rsp - 0x18] | rax = *((rsp - 0x18)); 0x00443314 movups xmm2, xmmword [rax + rbp*8] | __asm ("movups xmm2, xmmword [rax + rbp*8]"); 0x00443318 andps xmm2, xmm0 | __asm ("andps xmm2, xmm0"); 0x0044331b movups xmm0, xmmword [rax + rbp*8 + 0x10] | __asm ("movups xmm0, xmmword [rax + rbp*8 + 0x10]"); 0x00443320 andps xmm0, xmm1 | __asm ("andps xmm0, xmm1"); 0x00443323 movups xmmword [rax + rbp*8], xmm2 | __asm ("movups xmmword [rax + rbp*8], xmm2"); 0x00443327 movups xmmword [rax + rbp*8 + 0x10], xmm0 | __asm ("movups xmmword [rax + rbp*8 + 0x10], xmm0"); | } 0x0044332c lea r9, [r12 + r13] | r9 = r12 + r13; 0x00443330 mov rbp, r9 | 0x00443333 cmp rsi, r13 | 0x00443336 mov r13, qword [rsp - 0x18] | r13 = *((rsp - 0x18)); | if (rsi == r13) { 0x0044333b je 0x4433bf | goto label_41; | } | label_31: 0x00443341 mov r10, rdx | r10 = rdx; 0x00443344 mov eax, r14d | eax = r14d; 0x00443347 sub eax, r9d | eax -= r9d; 0x0044334a inc eax | eax++; 0x0044334c mov rsi, r14 | rsi = r14; 0x0044334f sub rsi, r9 | rsi -= r9; 0x00443352 and rax, 3 | rax &= 3; | if (rax == 0) { 0x00443356 je 0x443375 | goto label_42; | } 0x00443358 mov rbp, r9 | 0x0044335b mov rbx, qword [rsp - 0x28] | rbx = *((rsp - 0x28)); | do { 0x00443360 lea r9, [rbp + 1] | r9 = rbp + 1; 0x00443364 mov rdx, qword [rbx + rbp*8] | rdx = *((rbx + rbp*8)); 0x00443368 and qword [r13 + rbp*8], rdx | *((r13 + rbp*8)) &= rdx; 0x0044336d mov rbp, r9 | 0x00443370 dec rax | rax--; 0x00443373 jne 0x443360 | | } while (rax != 0); | label_42: 0x00443375 mov rbp, r9 | 0x00443378 cmp rsi, 3 | | if (rsi < 3) { 0x0044337c jb 0x4433bf | goto label_41; | } 0x0044337e lea rax, [r12 + rcx + 1] | rax = r12 + rcx + 1; 0x00443383 lea rcx, [r10 + r11*8 + 0x18] | rcx = r10 + r11*8 + 0x18; 0x00443388 lea rdx, [rdi + r15*8 + 0x18] | rdx = rdi + r15*8 + 0x18; | do { 0x0044338d mov rsi, qword [rcx + r9*8 - 0x18] | rsi = *((rcx + r9*8 - 0x18)); 0x00443392 and qword [rdx + r9*8 - 0x18], rsi | *((rdx + r9*8 - 0x18)) &= rsi; 0x00443397 mov rsi, qword [rcx + r9*8 - 0x10] | rsi = *((rcx + r9*8 - 0x10)); 0x0044339c and qword [rdx + r9*8 - 0x10], rsi | *((rdx + r9*8 - 0x10)) &= rsi; 0x004433a1 mov rsi, qword [rcx + r9*8 - 8] | rsi = *((rcx + r9*8 - 8)); 0x004433a6 and qword [rdx + r9*8 - 8], rsi | *((rdx + r9*8 - 8)) &= rsi; 0x004433ab lea rbp, [r9 + 4] | rbp = r9 + 4; 0x004433af mov rsi, qword [rcx + r9*8] | rsi = *((rcx + r9*8)); 0x004433b3 and qword [rdx + r9*8], rsi | *((rdx + r9*8)) &= rsi; 0x004433b7 mov r9, rbp | r9 = rbp; 0x004433ba cmp rax, rbp | 0x004433bd jne 0x44338d | | } while (rax != rbp); | label_41: 0x004433bf inc r14 | r14++; 0x004433c2 and r8d, 0x3f | r8d &= 0x3f; 0x004433c6 mov r12, r14 | r12 = r14; 0x004433c9 mov r10, qword [rsp - 0x28] | r10 = *((rsp - 0x28)); 0x004433ce xor ebx, ebx | ebx = 0; | label_25: 0x004433d0 test r8, r8 | | if (r8 == 0) { 0x004433d3 je 0x44345c | goto label_7; | } 0x004433d9 mov rdx, qword [r10 + r12*8] | rdx = *((r10 + r12*8)); 0x004433dd mov eax, 0x40 | eax = 0x40; 0x004433e2 sub eax, ebx | eax -= ebx; 0x004433e4 cmp eax, r8d | | if (eax < r8d) { 0x004433e7 jae 0x443425 | 0x004433e9 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x004433f0 mov ecx, ebx | ecx = ebx; 0x004433f2 shl rsi, cl | rsi <<= cl; 0x004433f5 not rsi | rsi = ~rsi; 0x004433f8 mov rdi, rdx | rdi = rdx; 0x004433fb shl rdi, cl | rdi <<= cl; 0x004433fe or rdi, rsi | rdi |= rsi; 0x00443401 and qword [r13 + rbp*8], rdi | *((r13 + rbp*8)) &= rdi; 0x00443406 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x0044340d mov ecx, eax | ecx = eax; 0x0044340f shr rdx, cl | rdx >>= cl; 0x00443412 sub r8d, eax | r8d -= eax; 0x00443415 mov ecx, r8d | ecx = r8d; 0x00443418 shl rsi, cl | rsi <<= cl; 0x0044341b or rsi, rdx | rsi |= rdx; 0x0044341e and qword [r13 + rbp*8 + 8], rsi | *((r13 + rbp*8 + 8)) &= rsi; 0x00443423 jmp 0x44345c | goto label_7; | } 0x00443425 add r8d, ebx | r8d += ebx; 0x00443428 mov eax, ebx | eax = ebx; 0x0044342a mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x00443431 mov rdi, 0xffffffffffffffff | rdi = 0xffffffffffffffff; 0x00443438 mov ecx, ebx | ecx = ebx; 0x0044343a shl rdi, cl | rdi <<= cl; 0x0044343d not rdi | rdi = ~rdi; 0x00443440 mov ecx, r8d | ecx = r8d; 0x00443443 shl rsi, cl | rsi <<= cl; 0x00443446 cmp r8d, 0x40 | 0x0044344a jae 0x44347c | | while (1) { 0x0044344c or rsi, rdi | rsi |= rdi; 0x0044344f mov ecx, eax | ecx = eax; 0x00443451 shl rdx, cl | rdx <<= cl; 0x00443454 or rdx, rsi | rdx |= rsi; 0x00443457 and qword [r13 + rbp*8], rdx | *((r13 + rbp*8)) &= rdx; | label_7: 0x0044345c pop rbx | 0x0044345d pop r12 | r12 = rbx; 0x0044345f pop r13 | r13 = rbx; 0x00443461 pop r14 | r14 = rbx; 0x00443463 pop r15 | r15 = rbx; 0x00443465 pop rbp | 0x00443466 ret | return rax; | label_40: 0x00443467 xor edi, edi | edi = 0; 0x00443469 jmp 0x4432e2 | goto label_1; | label_19: 0x0044346e xor ebx, ebx | ebx = 0; 0x00443470 jmp 0x442c98 | goto label_2; | label_22: 0x00443475 xor ebp, ebp | ebp = 0; 0x00443477 jmp 0x442d0a | goto label_3; 0x0044347c xor esi, esi | esi = 0; 0x0044347e jmp 0x44344c | | } | label_28: 0x00443480 xor edx, edx | edx = 0; 0x00443482 jmp 0x442e0e | goto label_4; | label_39: 0x00443487 xor edx, edx | edx = 0; 0x00443489 jmp 0x4431aa | goto label_5; | }