; assembly | /* r2dec pseudo code output */ | /* baljsn_datumutil.t/none @ 0x445e20 */ | #include | ; (fcn) sym._anonymous_namespace_::Mover_BloombergLP::bdlb::BitStringImpUtil::setEqBits__BloombergLP::bdlb::BitStringImpUtil::setEqWord_::right_unsigned_long__unsigned_long__unsigned_long_const__unsigned_long__unsigned_long_ () | int64_t anonymous_namespace_::Mover_BloombergLP::bdlb::BitStringImpUtil::setEqBits_BloombergLP::bdlb::BitStringImpUtil::setEqWord_::right_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; | /* (anonymous namespace)::Mover<&BloombergLP::bdlb::BitStringImpUtil::setEqBits, &BloombergLP::bdlb::BitStringImpUtil::setEqWord>::right(unsigned long*, unsigned long, unsigned long const*, unsigned long, unsigned long) */ 0x00445e20 push rbp | 0x00445e21 push r15 | 0x00445e23 push r14 | 0x00445e25 push r13 | 0x00445e27 push r12 | 0x00445e29 push rbx | 0x00445e2a test r8, r8 | | if (r8 == 0) { 0x00445e2d je 0x446293 | goto label_5; | } 0x00445e33 mov rax, rcx | rax = rcx; 0x00445e36 add rsi, r8 | rsi += r8; 0x00445e39 mov r15, rsi | r15 = rsi; 0x00445e3c shr r15, 6 | r15 >>= 6; 0x00445e40 lea r12, [rdi + r15*8] | r12 = rdi + r15*8; 0x00445e44 and esi, 0x3f | esi &= 0x3f; 0x00445e47 add rax, r8 | rax += r8; 0x00445e4a mov rbp, rax | 0x00445e4d shr rbp, 6 | rbp >>= 6; 0x00445e51 lea r10, [rdx + rbp*8] | r10 = rdx + rbp*8; 0x00445e55 and eax, 0x3f | eax &= 0x3f; | if (eax != 0) { 0x00445e58 je 0x445f21 | 0x00445e5e mov r9d, eax | r9d = eax; 0x00445e61 cmp r9, r8 | | if (r9 >= r8) { 0x00445e64 jae 0x445fff | goto label_6; | } 0x00445e6a lea ecx, [rsi + 0x40] | ecx = rsi + 0x40; 0x00445e6d cmp esi, eax | | if (esi >= eax) { 0x00445e6f cmovae ecx, esi | ecx = esi; | } 0x00445e72 sbb r11, r11 | r11 -= r11; 0x00445e75 mov esi, ecx | esi = ecx; 0x00445e77 sub esi, eax | esi -= eax; 0x00445e79 lea r13, [r12 + r11*8] | r13 = r12 + r11*8; 0x00445e7d mov r14, qword [r10] | r14 = *(r10); 0x00445e80 mov ecx, 0x40 | ecx = 0x40; 0x00445e85 sub ecx, esi | ecx -= esi; 0x00445e87 sub eax, ecx | eax -= ecx; 0x00445e89 mov qword [rsp - 0x20], rbp | *((rsp - 0x20)) = rbp; | if (eax <= 0) { 0x00445e8e jle 0x4460b8 | goto label_7; | } 0x00445e94 mov qword [rsp - 0x18], r10 | *((rsp - 0x18)) = r10; 0x00445e99 mov r10d, ecx | r10d = ecx; 0x00445e9c cmp esi, 0x40 | 0x00445e9f mov qword [rsp - 0x10], rdx | *((rsp - 0x10)) = rdx; | if (esi < 0x40) { 0x00445ea4 jge 0x445edd | 0x00445ea6 mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00445ead mov rbp, 0xffffffffffffffff | 0x00445eb4 shl rbp, cl | rbp <<= cl; 0x00445eb7 test esi, esi | | if (esi > 0) { 0x00445eb9 jle 0x445ec1 | 0x00445ebb not rbp | rbp = ~rbp; 0x00445ebe mov rbx, rbp | rbx = rbp; | } 0x00445ec1 mov rdx, r14 | rdx = r14; 0x00445ec4 and rdx, rbx | rdx &= rbx; 0x00445ec7 mov ecx, esi | ecx = esi; 0x00445ec9 shl rbx, cl | rbx <<= cl; 0x00445ecc not rbx | rbx = ~rbx; 0x00445ecf shl rdx, cl | rdx <<= cl; 0x00445ed2 and rbx, qword [r13] | rbx &= *(r13); 0x00445ed6 or rdx, rbx | rdx |= rbx; 0x00445ed9 mov qword [r13], rdx | *(r13) = rdx; | } 0x00445edd mov ecx, r10d | ecx = r10d; 0x00445ee0 shr r14, cl | r14 >>= cl; 0x00445ee3 add r13, 8 | r13 += 8; 0x00445ee7 mov rbp, 0xffffffffffffffff | 0x00445eee mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x00445ef5 mov ecx, eax | ecx = eax; 0x00445ef7 shl rbx, cl | rbx <<= cl; 0x00445efa cmp eax, 0x3f | 0x00445efd mov rdx, qword [rsp - 0x10] | rdx = *((rsp - 0x10)); | if (eax <= 0x3f) { 0x00445f02 jg 0x445f0a | 0x00445f04 not rbx | rbx = ~rbx; 0x00445f07 mov rbp, rbx | | } 0x00445f0a and r14, rbp | r14 &= rbp; 0x00445f0d not rbp | rbp = ~rbp; 0x00445f10 and rbp, qword [r13] | rbp &= *(r13); 0x00445f14 or rbp, r14 | rbp |= r14; 0x00445f17 mov r10, qword [rsp - 0x18] | r10 = *((rsp - 0x18)); 0x00445f1c jmp 0x4460e5 | goto label_8; | } 0x00445f21 xor r11d, r11d | r11d = 0; 0x00445f24 test esi, esi | | if (esi == 0) { 0x00445f26 je 0x4460f9 | goto label_9; | } | label_0: 0x00445f2c cmp r8, 0x40 | | if (r8 < 0x40) { 0x00445f30 jb 0x44616a | goto label_10; | } 0x00445f36 mov qword [rsp - 0x18], r10 | *((rsp - 0x18)) = r10; 0x00445f3b mov qword [rsp - 8], r12 | *((rsp - 8)) = r12; 0x00445f40 mov r10d, 0x40 | r10d = 0x40; 0x00445f46 sub r10d, esi | r10d -= esi; 0x00445f49 mov r9d, esi | r9d = esi; 0x00445f4c mov ecx, esi | ecx = esi; 0x00445f4e neg ecx | ecx = -ecx; 0x00445f50 mov r13, 0xffffffffffffffff | r13 = 0xffffffffffffffff; 0x00445f57 mov r12, 0xffffffffffffffff | r12 = 0xffffffffffffffff; 0x00445f5e shl r12, cl | r12 <<= cl; 0x00445f61 test esi, esi | 0x00445f63 not r12 | r12 = ~r12; | if (esi <= 0) { 0x00445f66 cmovle r12, r13 | r12 = r13; | } 0x00445f6a mov r14, r12 | r14 = r12; 0x00445f6d mov ecx, esi | ecx = esi; 0x00445f6f shl r14, cl | r14 <<= cl; 0x00445f72 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00445f79 shl rax, cl | rax <<= cl; 0x00445f7c cmp esi, 0x3f | | if (esi <= 0x3f) { 0x00445f7f jg 0x445f87 | 0x00445f81 not rax | rax = ~rax; 0x00445f84 mov r13, rax | r13 = rax; | } 0x00445f87 not r14 | r14 = ~r14; 0x00445f8a mov rbx, r13 | rbx = r13; 0x00445f8d not rbx | rbx = ~rbx; 0x00445f90 add r15, r11 | r15 += r11; 0x00445f93 lea rdi, [rdi + r15*8] | rdi = rdi + r15*8; 0x00445f97 lea r15, [rdx + rbp*8 - 8] | r15 = rdx + rbp*8 - 8; 0x00445f9c xor eax, eax | eax = 0; 0x00445f9e nop | | do { 0x00445fa0 mov rdx, qword [r15 + rax*8] | rdx = *((r15 + rax*8)); 0x00445fa4 cmp esi, 0x3f | | if (esi <= 0x3f) { 0x00445fa7 jg 0x445fc5 | 0x00445fa9 mov rbp, rdx | 0x00445fac and rbp, r12 | rbp &= r12; 0x00445faf mov ecx, r9d | ecx = r9d; 0x00445fb2 shl rbp, cl | rbp <<= cl; 0x00445fb5 mov rcx, qword [rdi + rax*8 - 8] | rcx = *((rdi + rax*8 - 8)); 0x00445fba and rcx, r14 | rcx &= r14; 0x00445fbd or rbp, rcx | rbp |= rcx; 0x00445fc0 mov qword [rdi + rax*8 - 8], rbp | *((rdi + rax*8 - 8)) = rbp; | } 0x00445fc5 mov ecx, r10d | ecx = r10d; 0x00445fc8 shr rdx, cl | rdx >>= cl; 0x00445fcb lea rcx, [rax - 1] | rcx = rax - 1; 0x00445fcf mov rbp, qword [rdi + rax*8] | rbp = *((rdi + rax*8)); 0x00445fd3 and rbp, rbx | rbp &= rbx; 0x00445fd6 and rdx, r13 | rdx &= r13; 0x00445fd9 or rdx, rbp | rdx |= rbp; 0x00445fdc mov qword [rdi + rax*8], rdx | *((rdi + rax*8)) = rdx; 0x00445fe0 add r8, 0xffffffffffffffc0 | r8 += 0xffffffffffffffc0; 0x00445fe4 mov rax, rcx | rax = rcx; 0x00445fe7 cmp r8, 0x3f | 0x00445feb ja 0x445fa0 | | } while (r8 > 0x3f); 0x00445fed add r11, rcx | r11 += rcx; 0x00445ff0 mov r12, qword [rsp - 8] | r12 = *((rsp - 8)); 0x00445ff5 mov r10, qword [rsp - 0x18] | r10 = *((rsp - 0x18)); 0x00445ffa jmp 0x44616c | goto label_1; | label_6: 0x00445fff lea edx, [rsi + 0x40] | edx = rsi + 0x40; 0x00446002 cmp esi, r8d | | if (esi >= r8d) { 0x00446005 cmovae edx, esi | edx = esi; | } 0x00446008 sbb rdi, rdi | rdi -= rdi; 0x0044600b sub eax, r8d | eax -= r8d; 0x0044600e mov rbx, qword [r10] | rbx = *(r10); 0x00446011 mov ecx, eax | ecx = eax; 0x00446013 shr rbx, cl | rbx >>= cl; 0x00446016 test r8d, r8d | | if (r8d == 0) { 0x00446019 je 0x446293 | goto label_5; | } 0x0044601f sub edx, r8d | edx -= r8d; 0x00446022 mov eax, 0x40 | eax = 0x40; 0x00446027 sub eax, edx | eax -= edx; 0x00446029 cmp eax, r8d | | if (eax >= r8d) { 0x0044602c jge 0x446255 | goto label_11; | } 0x00446032 cmp edx, 0x40 | | if (edx >= 0x40) { 0x00446035 jge 0x446370 | goto label_12; | } 0x0044603b mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x00446042 mov ecx, eax | ecx = eax; 0x00446044 shl rsi, cl | rsi <<= cl; 0x00446047 mov rbp, 0xffffffffffffffff | 0x0044604e mov r9d, eax | r9d = eax; 0x00446051 test edx, edx | | if (edx > 0) { 0x00446053 jle 0x44605b | 0x00446055 not rsi | rsi = ~rsi; 0x00446058 mov rbp, rsi | | } 0x0044605b mov rsi, rbx | rsi = rbx; 0x0044605e and rsi, rbp | rsi &= rbp; 0x00446061 mov ecx, edx | ecx = edx; 0x00446063 shl rbp, cl | rbp <<= cl; 0x00446066 not rbp | rbp = ~rbp; 0x00446069 shl rsi, cl | rsi <<= cl; 0x0044606c and rbp, qword [r12 + rdi*8] | rbp &= *((r12 + rdi*8)); 0x00446070 or rsi, rbp | rsi |= rbp; 0x00446073 mov qword [r12 + rdi*8], rsi | *((r12 + rdi*8)) = rsi; | label_4: 0x00446077 mov ecx, r9d | ecx = r9d; 0x0044607a shr rbx, cl | rbx >>= cl; 0x0044607d sub r8d, eax | r8d -= eax; 0x00446080 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00446087 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x0044608e mov ecx, r8d | ecx = r8d; 0x00446091 shl rdx, cl | rdx <<= cl; 0x00446094 cmp r8d, 0x3f | | if (r8d <= 0x3f) { 0x00446098 jg 0x4460a0 | 0x0044609a not rdx | rdx = ~rdx; 0x0044609d mov rax, rdx | rax = rdx; | } 0x004460a0 and rbx, rax | rbx &= rax; 0x004460a3 not rax | rax = ~rax; 0x004460a6 and rax, qword [r12 + rdi*8 + 8] | rax &= *((r12 + rdi*8 + 8)); 0x004460ab or rax, rbx | rax |= rbx; 0x004460ae mov qword [r12 + rdi*8 + 8], rax | *((r12 + rdi*8 + 8)) = rax; 0x004460b3 jmp 0x446293 | goto label_5; | label_7: 0x004460b8 cmp esi, 0x3f | | if (esi <= 0x3f) { 0x004460bb jg 0x4460e9 | 0x004460bd mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x004460c4 mov ecx, r9d | ecx = r9d; 0x004460c7 shl rax, cl | rax <<= cl; 0x004460ca not rax | rax = ~rax; 0x004460cd and r14, rax | r14 &= rax; 0x004460d0 mov ecx, esi | ecx = esi; 0x004460d2 shl rax, cl | rax <<= cl; 0x004460d5 not rax | rax = ~rax; 0x004460d8 and rax, qword [r13] | rax &= *(r13); 0x004460dc shl r14, cl | r14 <<= cl; 0x004460df or r14, rax | r14 |= rax; 0x004460e2 mov rbp, r14 | | label_8: 0x004460e5 mov qword [r13], rbp | *(r13) = rbp; | } 0x004460e9 sub r8, r9 | r8 -= r9; 0x004460ec mov rbp, qword [rsp - 0x20] | rbp = *((rsp - 0x20)); 0x004460f1 test esi, esi | | if (esi != 0) { 0x004460f3 jne 0x445f2c | goto label_0; | } | label_9: 0x004460f9 cmp r8, 0x40 | | if (r8 < 0x40) { 0x004460fd jb 0x44616a | goto label_10; | } 0x004460ff lea r14, [r8 - 0x40] | r14 = r8 - 0x40; 0x00446103 cmp r14, 0xc0 | | if (r14 >= 0xc0) { 0x0044610a jb 0x44613f | 0x0044610c shr r14, 6 | r14 >>= 6; 0x00446110 lea rbx, [r11 + r15] | rbx = r11 + r15; 0x00446114 mov rax, r14 | rax = r14; 0x00446117 not rax | rax = ~rax; 0x0044611a lea rcx, [rbx + rax] | rcx = rbx + rax; 0x0044611e lea rcx, [rdi + rcx*8] | rcx = rdi + rcx*8; 0x00446122 cmp rcx, r10 | | if (rcx >= r10) { 0x00446125 jae 0x44629e | goto label_13; | } 0x0044612b lea rcx, [rdi + rbx*8] | rcx = rdi + rbx*8; 0x0044612f add rax, rbp | rax += rbp; 0x00446132 lea rax, [rdx + rax*8] | rax = rdx + rax*8; 0x00446136 cmp rax, rcx | | if (rax >= rcx) { 0x00446139 jae 0x44629e | goto label_13; | } | } 0x0044613f xor ecx, ecx | ecx = 0; | label_2: 0x00446141 lea rax, [rdi + r15*8 - 8] | rax = rdi + r15*8 - 8; 0x00446146 lea rdx, [rdx + rbp*8 - 8] | rdx = rdx + rbp*8 - 8; 0x0044614b nop dword [rax + rax] | | do { 0x00446150 mov rdi, qword [rdx + rcx*8] | rdi = *((rdx + rcx*8)); 0x00446154 dec rcx | rcx--; 0x00446157 mov qword [rax + r11*8], rdi | *((rax + r11*8)) = rdi; 0x0044615b dec r11 | r11--; 0x0044615e add r8, 0xffffffffffffffc0 | r8 += 0xffffffffffffffc0; 0x00446162 cmp r8, 0x3f | 0x00446166 ja 0x446150 | | } while (r8 > 0x3f); 0x00446168 jmp 0x44616c | goto label_1; | label_10: 0x0044616a xor ecx, ecx | ecx = 0; | label_1: 0x0044616c test r8d, r8d | | if (r8d != 0) { 0x0044616f je 0x446293 | 0x00446175 lea eax, [rsi + 0x40] | eax = rsi + 0x40; 0x00446178 cmp esi, r8d | | if (esi >= r8d) { 0x0044617b cmovae eax, esi | eax = esi; | } 0x0044617e sbb r11, 0 | 0x00446182 mov rsi, qword [r10 + rcx*8 - 8] | rsi = *((r10 + rcx*8 - 8)); 0x00446187 mov ecx, r8d | ecx = r8d; 0x0044618a neg cl | cl = -cl; 0x0044618c shr rsi, cl | rsi >>= cl; 0x0044618f sub eax, r8d | eax -= r8d; 0x00446192 mov edx, 0x40 | edx = 0x40; 0x00446197 sub edx, eax | edx -= eax; 0x00446199 cmp edx, r8d | | if (edx < r8d) { 0x0044619c jge 0x446225 | 0x004461a2 cmp eax, 0x40 | | if (eax >= 0x40) { 0x004461a5 jge 0x446368 | goto label_14; | } 0x004461ab mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; 0x004461b2 mov ecx, edx | ecx = edx; 0x004461b4 shl rbx, cl | rbx <<= cl; 0x004461b7 mov rbp, 0xffffffffffffffff | 0x004461be mov r9d, edx | r9d = edx; 0x004461c1 test eax, eax | | if (eax > 0) { 0x004461c3 jle 0x4461cb | 0x004461c5 not rbx | rbx = ~rbx; 0x004461c8 mov rbp, rbx | | } 0x004461cb mov rdi, rsi | rdi = rsi; 0x004461ce and rdi, rbp | rdi &= rbp; 0x004461d1 mov ecx, eax | ecx = eax; 0x004461d3 shl rbp, cl | rbp <<= cl; 0x004461d6 not rbp | rbp = ~rbp; 0x004461d9 shl rdi, cl | rdi <<= cl; 0x004461dc and rbp, qword [r12 + r11*8] | rbp &= *((r12 + r11*8)); 0x004461e0 or rdi, rbp | rdi |= rbp; 0x004461e3 mov qword [r12 + r11*8], rdi | *((r12 + r11*8)) = rdi; | label_3: 0x004461e7 mov ecx, r9d | ecx = r9d; 0x004461ea shr rsi, cl | rsi >>= cl; 0x004461ed sub r8d, edx | r8d -= edx; 0x004461f0 mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x004461f7 mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x004461fe mov ecx, r8d | ecx = r8d; 0x00446201 shl rdx, cl | rdx <<= cl; 0x00446204 cmp r8d, 0x3f | | if (r8d <= 0x3f) { 0x00446208 jg 0x446210 | 0x0044620a not rdx | rdx = ~rdx; 0x0044620d mov rax, rdx | rax = rdx; | } 0x00446210 and rsi, rax | rsi &= rax; 0x00446213 not rax | rax = ~rax; 0x00446216 and rax, qword [r12 + r11*8 + 8] | rax &= *((r12 + r11*8 + 8)); 0x0044621b or rax, rsi | rax |= rsi; 0x0044621e mov qword [r12 + r11*8 + 8], rax | *((r12 + r11*8 + 8)) = rax; 0x00446223 jmp 0x446293 | | } else { 0x00446225 cmp eax, 0x3f | | if (eax > 0x3f) { 0x00446228 jg 0x446293 | goto label_5; | } 0x0044622a mov rdx, 0xffffffffffffffff | rdx = 0xffffffffffffffff; 0x00446231 mov ecx, r8d | ecx = r8d; 0x00446234 shl rdx, cl | rdx <<= cl; 0x00446237 not rdx | rdx = ~rdx; 0x0044623a and rsi, rdx | rsi &= rdx; 0x0044623d mov ecx, eax | ecx = eax; 0x0044623f shl rdx, cl | rdx <<= cl; 0x00446242 not rdx | rdx = ~rdx; 0x00446245 shl rsi, cl | rsi <<= cl; 0x00446248 and rdx, qword [r12 + r11*8] | rdx &= *((r12 + r11*8)); 0x0044624c or rsi, rdx | rsi |= rdx; 0x0044624f mov qword [r12 + r11*8], rsi | *((r12 + r11*8)) = rsi; 0x00446253 jmp 0x446293 | goto label_5; | label_11: 0x00446255 cmp edx, 0x3f | | if (edx > 0x3f) { 0x00446258 jg 0x446293 | goto label_5; | } 0x0044625a mov rax, 0xffffffffffffffff | rax = 0xffffffffffffffff; 0x00446261 mov rsi, 0xffffffffffffffff | rsi = 0xffffffffffffffff; 0x00446268 mov ecx, r8d | ecx = r8d; 0x0044626b shl rsi, cl | rsi <<= cl; 0x0044626e cmp r8d, 0x3f | | if (r8d <= 0x3f) { 0x00446272 jg 0x44627a | 0x00446274 not rsi | rsi = ~rsi; 0x00446277 mov rax, rsi | rax = rsi; | } 0x0044627a and rbx, rax | rbx &= rax; 0x0044627d mov ecx, edx | ecx = edx; 0x0044627f shl rax, cl | rax <<= cl; 0x00446282 not rax | rax = ~rax; 0x00446285 shl rbx, cl | rbx <<= cl; 0x00446288 and rax, qword [r12 + rdi*8] | rax &= *((r12 + rdi*8)); 0x0044628c or rbx, rax | rbx |= rax; 0x0044628f mov qword [r12 + rdi*8], rbx | *((r12 + rdi*8)) = rbx; | } | } | label_5: 0x00446293 pop rbx | 0x00446294 pop r12 | r12 = rbx; 0x00446296 pop r13 | r13 = rbx; 0x00446298 pop r14 | r14 = rbx; 0x0044629a pop r15 | r15 = rbx; 0x0044629c pop rbp | 0x0044629d ret | return rax; | label_13: 0x0044629e mov r13, r10 | r13 = r10; 0x004462a1 inc r14 | r14++; 0x004462a4 mov r9, r14 | r9 = r14; 0x004462a7 and r9, 0xfffffffffffffffc | r9 &= 0xfffffffffffffffc; 0x004462ab lea rax, [r9 - 4] | rax = r9 - 4; 0x004462af mov r10, rax | r10 = rax; 0x004462b2 shr r10, 2 | r10 >>= 2; 0x004462b6 inc r10 | r10++; 0x004462b9 test rax, rax | | if (rax == 0) { 0x004462bc je 0x44631b | goto label_15; | } 0x004462be mov qword [rsp - 0x20], rbp | *((rsp - 0x20)) = rbp; 0x004462c3 lea rbp, [rdx + rbp*8 - 0x10] | rbp = rdx + rbp*8 - 0x10; 0x004462c8 lea rcx, [rdi + rbx*8 - 0x10] | rcx = rdi + rbx*8 - 0x10; 0x004462cd mov rax, r10 | rax = r10; 0x004462d0 and rax, 0xfffffffffffffffe | rax &= 0xfffffffffffffffe; 0x004462d4 neg rax | rax = -rax; 0x004462d7 mov rbx, 0xfffffffffffffffe | rbx = 0xfffffffffffffffe; 0x004462de nop | | do { 0x004462e0 movups xmm0, xmmword [rbp + rbx*8] | __asm ("movups xmm0, xmmword [rbp + rbx*8]"); 0x004462e5 movups xmm1, xmmword [rbp + rbx*8 + 0x10] | __asm ("movups xmm1, xmmword [rbp + rbx*8 + 0x10]"); 0x004462ea movups xmmword [rcx + rbx*8 + 0x10], xmm1 | __asm ("movups xmmword [rcx + rbx*8 + 0x10], xmm1"); 0x004462ef movups xmmword [rcx + rbx*8], xmm0 | __asm ("movups xmmword [rcx + rbx*8], xmm0"); 0x004462f3 movups xmm0, xmmword [rbp + rbx*8 - 0x20] | __asm ("movups xmm0, xmmword [rbp + rbx*8 - 0x20]"); 0x004462f8 movups xmm1, xmmword [rbp + rbx*8 - 0x10] | __asm ("movups xmm1, xmmword [rbp + rbx*8 - 0x10]"); 0x004462fd movups xmmword [rcx + rbx*8 - 0x10], xmm1 | __asm ("movups xmmword [rcx + rbx*8 - 0x10], xmm1"); 0x00446302 movups xmmword [rcx + rbx*8 - 0x20], xmm0 | __asm ("movups xmmword [rcx + rbx*8 - 0x20], xmm0"); 0x00446307 add rbx, 0xfffffffffffffff8 | rbx += 0xfffffffffffffff8; 0x0044630b add rax, 2 | rax += 2; 0x0044630f jne 0x4462e0 | | } while (rax != 0); 0x00446311 inc rbx | rbx++; 0x00446314 mov rbp, qword [rsp - 0x20] | rbp = *((rsp - 0x20)); 0x00446319 jmp 0x446322 | goto label_16; | label_15: 0x0044631b mov rbx, 0xffffffffffffffff | rbx = 0xffffffffffffffff; | label_16: 0x00446322 mov rax, r9 | rax = r9; 0x00446325 shl rax, 6 | rax <<= 6; 0x00446329 test r10b, 1 | 0x0044632d mov r10, r13 | r10 = r13; | if ((r10b & 1) != 0) { 0x00446330 je 0x44634e | 0x00446332 lea rcx, [r11 + rbx] | rcx = r11 + rbx; 0x00446336 movups xmm0, xmmword [r10 + rbx*8 - 0x18] | __asm ("movups xmm0, xmmword [r10 + rbx*8 - 0x18]"); 0x0044633c movups xmm1, xmmword [r10 + rbx*8 - 8] | __asm ("movups xmm1, xmmword [r10 + rbx*8 - 8]"); 0x00446342 movups xmmword [r12 + rcx*8 - 8], xmm1 | __asm ("movups xmmword [r12 + rcx*8 - 8], xmm1"); 0x00446348 movups xmmword [r12 + rcx*8 - 0x18], xmm0 | __asm ("movups xmmword [r12 + rcx*8 - 0x18], xmm0"); | } 0x0044634e sub r11, r9 | r11 -= r9; 0x00446351 mov rcx, r9 | rcx = r9; 0x00446354 neg rcx | rcx = -rcx; 0x00446357 sub r8, rax | r8 -= rax; 0x0044635a cmp r14, r9 | | if (r14 == r9) { 0x0044635d je 0x44616c | goto label_1; | } 0x00446363 jmp 0x446141 | goto label_2; | label_14: 0x00446368 mov r9d, edx | r9d = edx; 0x0044636b jmp 0x4461e7 | goto label_3; | label_12: 0x00446370 mov r9d, eax | r9d = eax; 0x00446373 jmp 0x446077 | goto label_4; | }