Function at 0x1401689e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov r13, qword [rcx + 8]
mov rax, qword [rsp + 0x100]
mov rdi, qword [rcx + 0x70]
mov r10d, dword [rcx + 0x114]
mov r11d, dword [rcx + 0x110]
mov r14d, dword [rcx + 0x18]
mov qword [rsp + 0xf0], r8
mov r8, r9
mov r12, r9
mov rbx, rdx
sub r8, r13
mov qword [rsp + 0x28], rdi
mov edi, dword [rcx + 0x108]
add r8d, eax
add rax, r12
mov r9d, dword [rcx + 0x100]
mov edx, dword [rcx + 0x28]
mov qword [rsp + 0x38], rax
sub rax, 8
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xf0]
mov dword [rsp + 0x58], edi
mov r15d, dword [rax]
mov eax, dword [rax + 4]
mov dword [rsp + 0x34], eax
cmp r10d, 1
jbe 0x140165735
lea eax, [r10 + 1]
mov dword [rsp + 0x5c], r9d
mov ecx, r14d
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x48], edx
cmp r11d, 6
je 0x140164d7d
cmp r11d, 7
je 0x140165242
cmp r11d, 5
je 0x14016488a
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x70], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140164440
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140164455
mov dword [rsp + 0x60], r15d
xor r15d, r15d
mov eax, 0x20
sub eax, dword [rsp + 0x58]
mov dword [rsp + 0x58], eax
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x50]
lea r8, [rsi + rax]
lea r9, [r8 + 1]
cmp r9, qword [rsp + 0x40]
jae 0x14016683a
imul eax, dword [rsi + 1], 0x9e3779b1
mov cl, byte [rsp + 0x58]
mov r14d, r15d
imul edx, dword [rsi], 0x9e3779b1
mov qword [rsp + 0x88], r14
mov r10d, eax
mov rax, qword [rsp + 0x28]
shr edx, cl
shr r10d, cl
mov rcx, r10
mov eax, dword [rax + rdx*4]
mov r10, qword [rsp + 0x50]
mov rbp, r8
sub rbp, qword [rsp + 0x88]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x48], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + rdx*4], r11d
mov edx, dword [r8]
cmp dword [rsp + 0x48], edx
jne 0x140164532
test r15d, r15d
je 0x140164532
mov al, byte [rbp - 1]
cmp byte [r8 - 1], al
mov dword [rsp + 0x48], r15d
sete al
sub rdi, r13
mov dword [rsp + 0x64], r11d
mov r15d, dword [rsp + 0x34]
movzx eax, al
mov dword [r14 + rcx*4], edi
mov rdi, r8
mov r14d, 1
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
jmp 0x140164658
mov r14d, dword [rsi]
mov r11d, r14d
xor r11d, 1
mov dword [rsp + 0x48], r11d
cmp dword [rsp + 0x68], eax
ja 0x140164554
mov r11d, eax
mov r11d, dword [r13 + r11]
mov dword [rsp + 0x48], r11d
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x64], ebp
lea r11, [r11 + rcx*4]
cmp dword [rsp + 0x48], r14d
jne 0x140164584
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x14016461e
imul edx, edx, 0x9e3779b1
mov cl, byte [rsp + 0x58]
mov eax, dword [r11]
mov dword [r11], ebp
shr edx, cl
cmp dword [rsp + 0x68], eax
ja 0x1401645a5
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x1401645aa
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x1401645c2
cmp r10, 4
ja 0x14016461e
mov rsi, qword [rsp + 0x28]
sub r8, r13
mov dword [rsi + rdx*4], r8d
jmp 0x14016461e
imul r11d, dword [r9], 0x9e3779b1
mov cl, byte [rsp + 0x58]
lea rbp, [r8 + r10]
mov rax, qword [rsp + 0x28]
mov edi, r11d
mov eax, dword [rax + rdx*4]
lea r11, [r9 + r10]
shr edi, cl
mov rcx, rdi
cmp rbp, qword [rsp + 0x78]
jb 0x140164602
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x78], 0xffffffffffffff80
mov rsi, r8
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x14016683a
mov r9, r11
mov r8, rbp
jmp 0x1401644be
mov ebp, eax
mov r14, rdi
add rbp, r13
sub r14, rbp
lea rax, [rbp + 4]
mov dword [rsp + 0x48], r14d
add r14d, 3
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x140164658
cmp qword [rsp + 0x70], rbp
jae 0x140164658
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140164658
dec rdi
dec rbp
jmp 0x140164636
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x1401646d6
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
cmp r11, 0x10
jbe 0x1401646e4
mov rax, qword [rbx + 0x18]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp r11, 0x20
jle 0x1401646e4
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm2, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm2
movups xmm3, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm3
cmp rdx, rax
ja 0x1401646b4
jmp 0x1401646e4
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140164709
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
lea rcx, [rsi - 3]
mov word [rax + 4], r11w
mov dword [rax], r14d
cmp rcx, 0xffff
jbe 0x140164732
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x14016475a
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, dword [rsp + 0x48]
jmp 0x140164462
mov eax, dword [rsp + 0x64]
mov edi, dword [rsp + 0x64]
lea rdx, [rsi - 2]
mov cl, byte [rsp + 0x58]
sub rdx, r13
imul eax, dword [r13 + rax + 2], 0x9e3779b1
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
shr eax, cl
mov dword [rdi + rax*4], r11d
imul eax, dword [rsi - 2], 0x9e3779b1
shr eax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x140164748
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov edi, 4
mov r15d, eax
mov eax, dword [rsp + 0x48]
mov rdx, rsi
mov r14d, dword [rsi]
sub rdx, rax
cmp r14d, dword [rdx]
jne 0x140164879
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
imul r14d, r14d, 0x9e3779b1
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x58]
mov r11, rax
mov rax, rsi
shr r14d, cl
mov rcx, qword [rsp + 0x28]
sub rax, r13
cmp rbp, r12
lea rsi, [rsi + r11 + 4]
mov dword [rcx + r14*4], eax
mov rcx, qword [rbx + 0x18]
jb 0x14016480f
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
jmp 0x14016481d
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x14016484d
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x140164748
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x1401647aa
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140164748
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x70], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x1401648e5
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140164aca
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x140164aca
movabs r8, 0xcf1bbcdcbb000000
imul r8, qword [rdx]
mov cl, byte [rsp + 0x48]
mov eax, dword [r11]
mov dword [r11], ebp
shr r8, cl
cmp dword [rsp + 0x68], eax
ja 0x140164b8e
mov ecx, eax
mov ecx, dword [r13 + rcx]
cmp dword [rdi], ecx
je 0x140164b98
mov cl, byte [rsp + 0x48]
mov rax, qword [rsp + 0x28]
lea rbp, [rdx + r10]
movabs r11, 0xcf1bbcdcbb000000
imul r11, qword [r9]
mov eax, dword [rax + r8*4]
shr r11, cl
mov rcx, r11
lea r11, [r9 + r10]
cmp rbp, qword [rsp + 0x78]
jb 0x14016497d
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x78], 0xffffffffffffff80
mov rsi, rdx
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x14016683a
mov r9, r11
mov rdx, rbp
mov rbp, rdx
sub rbp, qword [rsp + 0x88]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x64], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + r8*4], r11d
mov r14d, dword [rsp + 0x64]
cmp dword [rdx], r14d
jne 0x140164b47
test r15d, r15d
je 0x140164b47
mov al, byte [rbp - 1]
mov r10, qword [rsp + 0x28]
mov r14d, r15d
mov dword [rsp + 0x64], r11d
cmp byte [rdx - 1], al
mov r15d, dword [rsp + 0x34]
mov dword [rsp + 0x34], 1
sete al
sub rdi, r13
movzx eax, al
mov dword [r10 + rcx*4], edi
mov rdi, rdx
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x140164c3a
movups xmm5, xmmword [r12]
movups xmmword [rcx], xmm5
cmp r11, 0x10
ja 0x140164bf1
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140164a79
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov ecx, dword [rsp + 0x34]
mov word [rax + 4], r11w
mov dword [rax], ecx
lea rcx, [rsi - 3]
cmp rcx, 0xffff
jbe 0x140164aa5
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x140164c4d
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, r14d
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x50]
lea rdx, [rsi + rax]
lea r9, [rdx + 1]
cmp r9, qword [rsp + 0x40]
jae 0x14016683a
mov eax, 0x40
sub eax, dword [rsp + 0x58]
mov r14d, r15d
movabs r8, 0xcf1bbcdcbb000000
imul r8, qword [rsi]
mov r10, qword [rsp + 0x50]
mov dword [rsp + 0x48], eax
movabs rax, 0xcf1bbcdcbb000000
imul rax, qword [rsi + 1]
mov cl, byte [rsp + 0x48]
mov qword [rsp + 0x88], r14
shr r8, cl
shr rax, cl
mov rcx, rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + r8*4]
jmp 0x140164994
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x140164b5f
mov r11d, eax
mov r14d, dword [r13 + r11]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x64], ebp
lea r11, [r11 + rcx*4]
cmp r14d, r8d
jne 0x140164903
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x140164baa
mov ecx, dword [rdi]
xor ecx, 1
jmp 0x14016492f
cmp r10, 4
ja 0x140164baa
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
mov ebp, eax
mov rax, rdi
add rbp, r13
sub rax, rbp
mov r14d, eax
add eax, 3
mov dword [rsp + 0x34], eax
lea rax, [rbp + 4]
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x140164a10
cmp qword [rsp + 0x70], rbp
jae 0x140164a10
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140164a10
dec rdi
dec rbp
jmp 0x140164bc3
mov rax, qword [rbx + 0x18]
movups xmm0, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm0
cmp r11, 0x20
jle 0x140164a54
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm1, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm1
movups xmm2, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm2
cmp rdx, rax
ja 0x140164c15
jmp 0x140164a54
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
jmp 0x140164a54
mov eax, dword [rsp + 0x64]
mov cl, byte [rsp + 0x48]
lea rdx, [rsi - 2]
movabs rdi, 0xcf1bbcdcbb000000
sub rdx, r13
imul rdi, qword [r13 + rax + 2]
mov rax, rdi
mov edi, dword [rsp + 0x64]
shr rax, cl
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
mov dword [rdi + rax*4], r11d
movabs rax, 0xcf1bbcdcbb000000
imul rax, qword [rsi - 2]
shr rax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x140164abf
xchg r14d, r15d
mov r12, rsi
mov edi, 4
mov eax, r14d
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x140164d75
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x48]
mov rdx, rsi
mov r11, rax
sub rdx, r13
movabs rax, 0xcf1bbcdcbb000000
imul rax, qword [rsi]
lea rsi, [rsi + r11 + 4]
shr rax, cl
mov rcx, qword [rsp + 0x28]
cmp rbp, r12
mov dword [rcx + rax*4], edx
mov rcx, qword [rbx + 0x18]
jb 0x140164d14
movups xmm3, xmmword [r12]
movups xmmword [rcx], xmm3
jmp 0x140164d22
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140164d52
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x140164abf
xchg r14d, r15d
mov r12, rsi
jmp 0x140164cac
xchg r14d, r15d
jmp 0x140164abf
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x70], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140164dd8
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140164ebc
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x140164ebc
xchg r15d, r14d
mov r12, rsi
mov eax, r15d
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x140164eb1
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x48]
mov rdx, rsi
mov r11, rax
sub rdx, r13
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [rsi]
lea rsi, [rsi + r11 + 4]
shr rax, cl
mov rcx, qword [rsp + 0x28]
cmp rbp, r12
mov dword [rcx + rax*4], edx
mov rcx, qword [rbx + 0x18]
jb 0x14016522f
movups xmm2, xmmword [r12]
movups xmmword [rcx], xmm2
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140164e96
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
jbe 0x140164df6
xchg r14d, r15d
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, r14d
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x50]
lea rdx, [rsi + rax]
lea r9, [rdx + 1]
cmp r9, qword [rsp + 0x40]
jae 0x14016683a
mov eax, 0x40
sub eax, dword [rsp + 0x58]
mov r14d, r15d
movabs r8, 0xcf1bbcdcbf9b0000
imul r8, qword [rsi]
mov r10, qword [rsp + 0x50]
mov dword [rsp + 0x48], eax
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [rsi + 1]
mov cl, byte [rsp + 0x48]
mov qword [rsp + 0x88], r14
shr r8, cl
shr rax, cl
mov rcx, rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + r8*4]
mov rbp, rdx
sub rbp, qword [rsp + 0x88]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x64], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + r8*4], r11d
mov r14d, dword [rsp + 0x64]
cmp dword [rdx], r14d
jne 0x140164fad
test r15d, r15d
je 0x140164fad
mov al, byte [rbp - 1]
mov r10, qword [rsp + 0x28]
mov r14d, r15d
mov dword [rsp + 0x64], r11d
cmp byte [rdx - 1], al
mov r15d, dword [rsp + 0x34]
mov dword [rsp + 0x34], 1
sete al
sub rdi, r13
movzx eax, al
mov dword [r10 + rcx*4], edi
mov rdi, rdx
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
jmp 0x1401650d7
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x140164fc5
mov r11d, eax
mov r14d, dword [r13 + r11]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x64], ebp
lea r11, [r11 + rcx*4]
cmp r14d, r8d
jne 0x140164ff3
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x14016509c
movabs r8, 0xcf1bbcdcbf9b0000
imul r8, qword [rdx]
mov cl, byte [rsp + 0x48]
mov eax, dword [r11]
mov dword [r11], ebp
shr r8, cl
cmp dword [rsp + 0x68], eax
ja 0x14016501d
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x140165022
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x14016503a
cmp r10, 4
ja 0x14016509c
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
jmp 0x14016509c
mov cl, byte [rsp + 0x48]
mov rax, qword [rsp + 0x28]
lea rbp, [rdx + r10]
movabs r11, 0xcf1bbcdcbf9b0000
imul r11, qword [r9]
mov eax, dword [rax + r8*4]
shr r11, cl
mov rcx, r11
lea r11, [r9 + r10]
cmp rbp, qword [rsp + 0x78]
jb 0x140165080
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x78], 0xffffffffffffff80
mov rsi, rdx
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x14016683a
mov r9, r11
mov rdx, rbp
jmp 0x140164f34
mov ebp, eax
mov rax, rdi
add rbp, r13
sub rax, rbp
mov r14d, eax
add eax, 3
mov dword [rsp + 0x34], eax
lea rax, [rbp + 4]
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x1401650d7
cmp qword [rsp + 0x70], rbp
jae 0x1401650d7
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x1401650d7
dec rdi
dec rbp
jmp 0x1401650b5
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x140165155
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
cmp r11, 0x10
jbe 0x140165163
mov rax, qword [rbx + 0x18]
movups xmm5, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm5
cmp r11, 0x20
jle 0x140165163
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm0, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm1
cmp rdx, rax
ja 0x140165133
jmp 0x140165163
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140165188
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov ecx, dword [rsp + 0x34]
mov word [rax + 4], r11w
mov dword [rax], ecx
lea rcx, [rsi - 3]
cmp rcx, 0xffff
jbe 0x1401651b4
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
ja 0x140164eb1
mov eax, dword [rsp + 0x64]
mov cl, byte [rsp + 0x48]
lea rdx, [rsi - 2]
movabs rdi, 0xcf1bbcdcbf9b0000
sub rdx, r13
imul rdi, qword [r13 + rax + 2]
mov rax, rdi
mov edi, dword [rsp + 0x64]
shr rax, cl
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
mov dword [rdi + rax*4], r11d
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [rsi - 2]
shr rax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x140164eb1
mov r12, rsi
mov edi, 4
jmp 0x140164dfc
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
jmp 0x140164e66
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x70], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x14016529d
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140165482
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x140165482
movabs r8, 0xcf1bbcdcbfa56300
imul r8, qword [rdx]
mov cl, byte [rsp + 0x48]
mov eax, dword [r11]
mov dword [r11], ebp
shr r8, cl
cmp dword [rsp + 0x68], eax
ja 0x140165546
mov ecx, eax
mov ecx, dword [r13 + rcx]
cmp dword [rdi], ecx
je 0x140165550
mov cl, byte [rsp + 0x48]
mov rax, qword [rsp + 0x28]
lea rbp, [rdx + r10]
movabs r11, 0xcf1bbcdcbfa56300
imul r11, qword [r9]
mov eax, dword [rax + r8*4]
shr r11, cl
mov rcx, r11
lea r11, [r9 + r10]
cmp rbp, qword [rsp + 0x78]
jb 0x140165335
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x78], 0xffffffffffffff80
mov rsi, rdx
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x14016683a
mov r9, r11
mov rdx, rbp
mov rbp, rdx
sub rbp, qword [rsp + 0x88]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x80], r11d
mov dword [rsp + 0x64], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + r8*4], r11d
mov r14d, dword [rsp + 0x64]
cmp dword [rdx], r14d
jne 0x1401654ff
test r15d, r15d
je 0x1401654ff
mov al, byte [rbp - 1]
mov r10, qword [rsp + 0x28]
mov r14d, r15d
mov dword [rsp + 0x64], r11d
cmp byte [rdx - 1], al
mov r15d, dword [rsp + 0x34]
mov dword [rsp + 0x34], 1
sete al
sub rdi, r13
movzx eax, al
mov dword [r10 + rcx*4], edi
mov rdi, rdx
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x1401655f2
movups xmm3, xmmword [r12]
movups xmmword [rcx], xmm3
cmp r11, 0x10
ja 0x1401655a9
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140165431
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov ecx, dword [rsp + 0x34]
mov word [rax + 4], r11w
mov dword [rax], ecx
lea rcx, [rsi - 3]
cmp rcx, 0xffff
jbe 0x14016545d
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x140165605
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, r14d
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x50]
lea rdx, [rsi + rax]
lea r9, [rdx + 1]
cmp r9, qword [rsp + 0x40]
jae 0x14016683a
mov eax, 0x40
sub eax, dword [rsp + 0x58]
mov r14d, r15d
movabs r8, 0xcf1bbcdcbfa56300
imul r8, qword [rsi]
mov r10, qword [rsp + 0x50]
mov dword [rsp + 0x48], eax
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [rsi + 1]
mov cl, byte [rsp + 0x48]
mov qword [rsp + 0x88], r14
shr r8, cl
shr rax, cl
mov rcx, rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + r8*4]
jmp 0x14016534c
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x140165517
mov r11d, eax
mov r14d, dword [r13 + r11]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x64], ebp
lea r11, [r11 + rcx*4]
cmp r14d, r8d
jne 0x1401652bb
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x140165562
mov ecx, dword [rdi]
xor ecx, 1
jmp 0x1401652e7
cmp r10, 4
ja 0x140165562
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
mov ebp, eax
mov rax, rdi
add rbp, r13
sub rax, rbp
mov r14d, eax
add eax, 3
mov dword [rsp + 0x34], eax
lea rax, [rbp + 4]
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x1401653c8
cmp qword [rsp + 0x70], rbp
jae 0x1401653c8
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x1401653c8
dec rdi
dec rbp
jmp 0x14016557b
mov rax, qword [rbx + 0x18]
movups xmm4, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm4
cmp r11, 0x20
jle 0x14016540c
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm5, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm5
movups xmm0, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm0
cmp rdx, rax
ja 0x1401655cd
jmp 0x14016540c
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
jmp 0x14016540c
mov eax, dword [rsp + 0x64]
mov cl, byte [rsp + 0x48]
lea rdx, [rsi - 2]
movabs rdi, 0xcf1bbcdcbfa56300
sub rdx, r13
imul rdi, qword [r13 + rax + 2]
mov rax, rdi
mov edi, dword [rsp + 0x64]
shr rax, cl
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
mov dword [rdi + rax*4], r11d
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [rsi - 2]
shr rax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x140165477
xchg r14d, r15d
mov r12, rsi
mov edi, 4
mov eax, r14d
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x14016572d
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x48]
mov rdx, rsi
mov r11, rax
sub rdx, r13
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [rsi]
lea rsi, [rsi + r11 + 4]
shr rax, cl
mov rcx, qword [rsp + 0x28]
cmp rbp, r12
mov dword [rcx + rax*4], edx
mov rcx, qword [rbx + 0x18]
jb 0x1401656cc
movups xmm1, xmmword [r12]
movups xmmword [rcx], xmm1
jmp 0x1401656da
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x14016570a
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x140165477
xchg r14d, r15d
mov r12, rsi
jmp 0x140165664
xchg r14d, r15d
jmp 0x140165477
mov dword [rsp + 0x50], r9d
mov ecx, r14d
mov dword [rsp + 0x48], edx
cmp r11d, 6
je 0x1401660db
cmp r11d, 7
je 0x14016661b
cmp r11d, 5
je 0x140165bf2
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x64], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x68], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x50], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x1401657ba
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], 0
cmp r11d, r15d
jae 0x1401657cf
mov dword [rsp + 0x5c], r15d
xor r15d, r15d
mov eax, 0x20
sub eax, dword [rsp + 0x58]
mov dword [rsp + 0x58], eax
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x70], rax
lea r8, [rsi + 2]
lea r9, [rsi + 3]
cmp r9, qword [rsp + 0x40]
jae 0x1401662fb
imul eax, dword [rsi + 1], 0x9e3779b1
mov cl, byte [rsp + 0x58]
mov r14d, r15d
imul edx, dword [rsi], 0x9e3779b1
mov qword [rsp + 0x80], r14
mov r10d, eax
mov rax, qword [rsp + 0x28]
shr edx, cl
shr r10d, cl
mov eax, dword [rax + rdx*4]
mov rcx, r10
mov r10d, 2
mov rbp, r8
sub rbp, qword [rsp + 0x80]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x78], r11d
mov dword [rsp + 0x48], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + rdx*4], r11d
mov edx, dword [r8]
cmp dword [rsp + 0x48], edx
jne 0x1401658a5
test r15d, r15d
je 0x1401658a5
mov al, byte [rbp - 1]
cmp byte [r8 - 1], al
mov dword [rsp + 0x48], r15d
sete al
sub rdi, r13
mov dword [rsp + 0x60], r11d
mov r15d, dword [rsp + 0x34]
movzx eax, al
mov dword [r14 + rcx*4], edi
mov rdi, r8
mov r14d, 1
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
jmp 0x1401659c0
mov r14d, dword [rsi]
mov dword [rsp + 0x48], r14d
xor r14d, 1
cmp dword [rsp + 0x64], eax
ja 0x1401658bf
mov r11d, eax
mov r14d, dword [r13 + r11]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x60], ebp
lea r11, [r11 + rcx*4]
cmp dword [rsp + 0x48], r14d
jne 0x1401658ec
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x60], edi
mov rdi, rsi
jmp 0x140165986
imul edx, edx, 0x9e3779b1
mov cl, byte [rsp + 0x58]
mov eax, dword [r11]
mov dword [r11], ebp
shr edx, cl
cmp dword [rsp + 0x64], eax
ja 0x14016590d
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x140165912
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x14016592a
cmp r10, 4
ja 0x140165986
mov rsi, qword [rsp + 0x28]
sub r8, r13
mov dword [rsi + rdx*4], r8d
jmp 0x140165986
imul r11d, dword [r9], 0x9e3779b1
mov cl, byte [rsp + 0x58]
lea rbp, [r8 + r10]
mov rax, qword [rsp + 0x28]
mov edi, r11d
mov eax, dword [rax + rdx*4]
lea r11, [r9 + r10]
shr edi, cl
mov rcx, rdi
cmp rbp, qword [rsp + 0x70]
jb 0x14016596a
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x70], 0xffffffffffffff80
mov rsi, r8
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x1401662fb
mov r9, r11
mov r8, rbp
jmp 0x140165834
mov ebp, eax
mov r14, rdi
add rbp, r13
sub r14, rbp
lea rax, [rbp + 4]
mov dword [rsp + 0x48], r14d
add r14d, 3
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x1401659c0
cmp qword [rsp + 0x68], rbp
jae 0x1401659c0
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x1401659c0
dec rdi
dec rbp
jmp 0x14016599e
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x140165a3e
movups xmm2, xmmword [r12]
movups xmmword [rcx], xmm2
cmp r11, 0x10
jbe 0x140165a4c
mov rax, qword [rbx + 0x18]
movups xmm3, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm3
cmp r11, 0x20
jle 0x140165a4c
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm4, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm4
movups xmm5, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm5
cmp rdx, rax
ja 0x140165a1c
jmp 0x140165a4c
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140165a71
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
lea rcx, [rsi - 3]
mov word [rax + 4], r11w
mov dword [rax], r14d
cmp rcx, 0xffff
jbe 0x140165a9a
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x140165ac2
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, dword [rsp + 0x48]
jmp 0x1401657dc
mov eax, dword [rsp + 0x60]
mov edi, dword [rsp + 0x60]
lea rdx, [rsi - 2]
mov cl, byte [rsp + 0x58]
sub rdx, r13
imul eax, dword [r13 + rax + 2], 0x9e3779b1
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
shr eax, cl
mov dword [rdi + rax*4], r11d
imul eax, dword [rsi - 2], 0x9e3779b1
shr eax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x140165ab0
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov edi, 4
mov r15d, eax
mov eax, dword [rsp + 0x48]
mov rdx, rsi
mov r14d, dword [rsi]
sub rdx, rax
cmp r14d, dword [rdx]
jne 0x140165be1
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
imul r14d, r14d, 0x9e3779b1
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x58]
mov r11, rax
mov rax, rsi
shr r14d, cl
mov rcx, qword [rsp + 0x28]
sub rax, r13
cmp rbp, r12
lea rsi, [rsi + r11 + 4]
mov dword [rcx + r14*4], eax
mov rcx, qword [rbx + 0x18]
jb 0x140165b77
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
jmp 0x140165b85
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140165bb5
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x140165ab0
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140165b12
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140165ab0
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x64], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x68], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x50], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140165c4d
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], 0
cmp r11d, r15d
jae 0x140165e2f
mov dword [rsp + 0x5c], r15d
xor r15d, r15d
jmp 0x140165e2f
movabs r8, 0xcf1bbcdcbb000000
imul r8, qword [rdx]
mov cl, byte [rsp + 0x48]
mov eax, dword [r11]
mov dword [r11], ebp
shr r8, cl
cmp dword [rsp + 0x64], eax
ja 0x140165eec
mov ecx, eax
mov ecx, dword [r13 + rcx]
cmp dword [rdi], ecx
je 0x140165ef6
mov cl, byte [rsp + 0x48]
mov rax, qword [rsp + 0x28]
lea rbp, [rdx + r10]
movabs r11, 0xcf1bbcdcbb000000
imul r11, qword [r9]
mov eax, dword [rax + r8*4]
shr r11, cl
mov rcx, r11
lea r11, [r9 + r10]
cmp rbp, qword [rsp + 0x70]
jb 0x140165ce5
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x70], 0xffffffffffffff80
mov rsi, rdx
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x1401662fb
mov r9, r11
mov rdx, rbp
mov rbp, rdx
sub rbp, qword [rsp + 0x80]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x78], r11d
mov dword [rsp + 0x60], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + r8*4], r11d
mov r14d, dword [rsp + 0x60]
cmp dword [rdx], r14d
jne 0x140165ea8
test r15d, r15d
je 0x140165ea8
mov al, byte [rbp - 1]
mov r10, qword [rsp + 0x28]
mov r14d, r15d
mov dword [rsp + 0x60], r11d
cmp byte [rdx - 1], al
mov r15d, dword [rsp + 0x34]
mov dword [rsp + 0x34], 1
sete al
sub rdi, r13
movzx eax, al
mov dword [r10 + rcx*4], edi
mov rdi, rdx
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x140165f98
movups xmm1, xmmword [r12]
movups xmmword [rcx], xmm1
cmp r11, 0x10
ja 0x140165f4f
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140165dde
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov ecx, dword [rsp + 0x34]
mov word [rax + 4], r11w
mov dword [rax], ecx
lea rcx, [rsi - 3]
cmp rcx, 0xffff
jbe 0x140165e0a
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x140165fab
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, r14d
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x70], rax
lea rdx, [rsi + 2]
lea r9, [rsi + 3]
cmp r9, qword [rsp + 0x40]
jae 0x1401662fb
mov eax, 0x40
sub eax, dword [rsp + 0x58]
mov r14d, r15d
movabs r8, 0xcf1bbcdcbb000000
mov dword [rsp + 0x48], eax
imul r8, qword [rsi]
movabs rax, 0xcf1bbcdcbb000000
mov r10d, 2
imul rax, qword [rsi + 1]
mov cl, byte [rsp + 0x48]
mov qword [rsp + 0x80], r14
shr r8, cl
shr rax, cl
mov rcx, rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + r8*4]
jmp 0x140165cfc
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x64], eax
ja 0x140165ec0
mov r11d, eax
mov r14d, dword [r13 + r11]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x60], ebp
lea r11, [r11 + rcx*4]
cmp r14d, r8d
jne 0x140165c6b
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x60], edi
mov rdi, rsi
jmp 0x140165f08
mov ecx, dword [rdi]
xor ecx, 1
jmp 0x140165c97
cmp r10, 4
ja 0x140165f08
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
mov ebp, eax
mov rax, rdi
add rbp, r13
sub rax, rbp
mov r14d, eax
add eax, 3
mov dword [rsp + 0x34], eax
lea rax, [rbp + 4]
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x140165d75
cmp qword [rsp + 0x68], rbp
jae 0x140165d75
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140165d75
dec rdi
dec rbp
jmp 0x140165f21
mov rax, qword [rbx + 0x18]
movups xmm2, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm2
cmp r11, 0x20
jle 0x140165db9
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm3, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm3
movups xmm4, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm4
cmp rdx, rax
ja 0x140165f73
jmp 0x140165db9
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
jmp 0x140165db9
mov eax, dword [rsp + 0x60]
mov cl, byte [rsp + 0x48]
lea rdx, [rsi - 2]
movabs rdi, 0xcf1bbcdcbb000000
sub rdx, r13
imul rdi, qword [r13 + rax + 2]
mov rax, rdi
mov edi, dword [rsp + 0x60]
shr rax, cl
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
mov dword [rdi + rax*4], r11d
movabs rax, 0xcf1bbcdcbb000000
imul rax, qword [rsi - 2]
shr rax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x140165e24
xchg r14d, r15d
mov r12, rsi
mov edi, 4
mov eax, r14d
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x1401660d3
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x48]
mov rdx, rsi
mov r11, rax
sub rdx, r13
movabs rax, 0xcf1bbcdcbb000000
imul rax, qword [rsi]
lea rsi, [rsi + r11 + 4]
shr rax, cl
mov rcx, qword [rsp + 0x28]
cmp rbp, r12
mov dword [rcx + rax*4], edx
mov rcx, qword [rbx + 0x18]
jb 0x140166072
movups xmm5, xmmword [r12]
movups xmmword [rcx], xmm5
jmp 0x140166080
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x1401660b0
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x140165e24
xchg r14d, r15d
mov r12, rsi
jmp 0x14016600a
xchg r14d, r15d
jmp 0x140165e24
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x64], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x68], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x50], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140166136
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], 0
cmp r11d, r15d
jae 0x1401662d8
mov dword [rsp + 0x5c], r15d
xor r15d, r15d
jmp 0x1401662d8
mov eax, 0x40
sub eax, dword [rsp + 0x58]
mov r14d, r15d
movabs r8, 0xcf1bbcdcbf9b0000
mov dword [rsp + 0x48], eax
imul r8, qword [rsi]
movabs rax, 0xcf1bbcdcbf9b0000
mov r10d, 2
imul rax, qword [rsi + 1]
mov cl, byte [rsp + 0x48]
mov qword [rsp + 0x80], r14
shr r8, cl
shr rax, cl
mov rcx, rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + r8*4]
mov rbp, rdx
sub rbp, qword [rsp + 0x80]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x78], r11d
mov dword [rsp + 0x60], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + r8*4], r11d
mov r14d, dword [rsp + 0x60]
cmp dword [rdx], r14d
jne 0x140166314
test r15d, r15d
je 0x140166314
mov al, byte [rbp - 1]
mov r10, qword [rsp + 0x28]
mov r14d, r15d
mov dword [rsp + 0x60], r11d
cmp byte [rdx - 1], al
mov r15d, dword [rsp + 0x34]
mov dword [rsp + 0x34], 1
sete al
sub rdi, r13
movzx eax, al
mov dword [r10 + rcx*4], edi
mov rdi, rdx
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x1401664d8
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
cmp r11, 0x10
ja 0x14016648f
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140166287
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov ecx, dword [rsp + 0x34]
mov word [rax + 4], r11w
mov dword [rax], ecx
lea rcx, [rsi - 3]
cmp rcx, 0xffff
jbe 0x1401662b3
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x1401664eb
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, r14d
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x70], rax
lea rdx, [rsi + 2]
lea r9, [rsi + 3]
cmp r9, qword [rsp + 0x40]
jb 0x140166154
cmp dword [rsp + 0x5c], 0
je 0x140166407
test r15d, r15d
jne 0x140166412
jmp 0x140166407
mov r14d, dword [rsi]
mov r8d, r14d
xor r8d, 1
cmp dword [rsp + 0x64], eax
ja 0x14016632c
mov r8d, eax
mov r8d, dword [r13 + r8]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x60], ebp
lea r11, [r11 + rcx*4]
cmp r14d, r8d
jne 0x140166357
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x60], edi
mov rdi, rsi
jmp 0x140166448
movabs r8, 0xcf1bbcdcbf9b0000
imul r8, qword [rdx]
mov cl, byte [rsp + 0x48]
mov eax, dword [r11]
mov dword [r11], ebp
shr r8, cl
cmp dword [rsp + 0x64], eax
ja 0x140166381
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x140166386
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x1401663a5
cmp r10, 4
ja 0x140166448
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
jmp 0x140166448
mov cl, byte [rsp + 0x48]
mov rax, qword [rsp + 0x28]
lea rbp, [rdx + r10]
movabs r11, 0xcf1bbcdcbf9b0000
imul r11, qword [r9]
mov eax, dword [rax + r8*4]
shr r11, cl
mov rcx, r11
lea r11, [r9 + r10]
cmp rbp, qword [rsp + 0x70]
jb 0x1401663eb
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x70], 0xffffffffffffff80
mov rsi, rdx
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x1401662fb
mov r9, r11
mov rdx, rbp
jmp 0x1401661a5
test r15d, r15d
cmove r15d, dword [rsp + 0x5c]
jmp 0x14016641a
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0xf0]
cmp dword [rsp + 0x34], 0
mov dword [rax], r15d
mov eax, dword [rsp + 0x34]
cmove eax, dword [rsp + 0x50]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0xf0]
mov ebx, dword [rsp + 0x50]
jmp 0x140166982
mov ebp, eax
mov rax, rdi
add rbp, r13
sub rax, rbp
mov r14d, eax
add eax, 3
mov dword [rsp + 0x34], eax
lea rax, [rbp + 4]
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x14016621e
cmp qword [rsp + 0x68], rbp
jae 0x14016621e
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x14016621e
dec rdi
dec rbp
jmp 0x140166461
mov rax, qword [rbx + 0x18]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp r11, 0x20
jle 0x140166262
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm2, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm2
movups xmm3, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm3
cmp rdx, rax
ja 0x1401664b3
jmp 0x140166262
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
jmp 0x140166262
mov eax, dword [rsp + 0x60]
mov cl, byte [rsp + 0x48]
lea rdx, [rsi - 2]
movabs rdi, 0xcf1bbcdcbf9b0000
sub rdx, r13
imul rdi, qword [r13 + rax + 2]
mov rax, rdi
mov edi, dword [rsp + 0x60]
shr rax, cl
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
mov dword [rdi + rax*4], r11d
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [rsi - 2]
shr rax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x1401662cd
xchg r14d, r15d
mov r12, rsi
mov edi, 4
mov eax, r14d
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x140166613
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x48]
mov rdx, rsi
mov r11, rax
sub rdx, r13
movabs rax, 0xcf1bbcdcbf9b0000
imul rax, qword [rsi]
lea rsi, [rsi + r11 + 4]
shr rax, cl
mov rcx, qword [rsp + 0x28]
cmp rbp, r12
mov dword [rcx + rax*4], edx
mov rcx, qword [rbx + 0x18]
jb 0x1401665b2
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
jmp 0x1401665c0
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x1401665f0
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x1401662cd
xchg r14d, r15d
mov r12, rsi
jmp 0x14016654a
xchg r14d, r15d
jmp 0x1401662cd
call fcn.14017c5c0
xor esi, esi
mov r9d, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x68], eax
mov eax, eax
mov ecx, r14d
add rax, r13
cmp r12, rax
mov qword [rsp + 0x70], rax
sete sil
add rsi, r12
mov r11, rsi
sub r11, r13
mov r8d, r11d
call fcn.14017c5c0
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140166676
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140166817
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x140166817
mov eax, 0x40
sub eax, dword [rsp + 0x58]
mov r14d, r15d
movabs r8, 0xcf1bbcdcbfa56300
mov dword [rsp + 0x50], eax
imul r8, qword [rsi]
movabs rax, 0xcf1bbcdcbfa56300
mov r10d, 2
imul rax, qword [rsi + 1]
mov cl, byte [rsp + 0x50]
mov qword [rsp + 0x80], r14
shr r8, cl
shr rax, cl
mov rcx, rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + r8*4]
mov rbp, rdx
sub rbp, qword [rsp + 0x80]
mov r11, rsi
mov r14d, dword [rbp]
sub r11, r13
mov dword [rsp + 0x78], r11d
mov dword [rsp + 0x64], r14d
mov r14, qword [rsp + 0x28]
mov dword [r14 + r8*4], r11d
mov r14d, dword [rsp + 0x64]
cmp dword [rdx], r14d
jne 0x140166853
test r15d, r15d
je 0x140166853
mov al, byte [rbp - 1]
mov r10, qword [rsp + 0x28]
mov dword [rsp + 0x64], r11d
mov r14d, 1
cmp byte [rdx - 1], al
mov dword [rsp + 0x48], r15d
sete al
sub rdi, r13
mov r15d, dword [rsp + 0x34]
movzx eax, al
mov dword [r10 + rcx*4], edi
mov rdi, rdx
sub rbp, rax
lea rsi, [rax + 4]
sub rdi, rax
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140179460
mov r11, rdi
mov rcx, qword [rbx + 0x18]
add rsi, rax
mov rax, qword [rsp + 0x38]
sub r11, r12
lea rbp, [rax - 0x20]
cmp rdi, rbp
ja 0x140166a30
movups xmm5, xmmword [r12]
movups xmmword [rcx], xmm5
cmp r11, 0x10
ja 0x1401669e7
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x1401667c7
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 1
sar rdx, 3
mov dword [rbx + 0x4c], edx
lea rcx, [rsi - 3]
mov word [rax + 4], r11w
mov dword [rax], r14d
cmp rcx, 0xffff
jbe 0x1401667f0
mov rdx, rax
sub rdx, qword [rbx]
mov dword [rbx + 0x48], 2
sar rdx, 3
mov dword [rbx + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
add rsi, rdi
mov qword [rbx + 8], rax
cmp rsi, qword [rsp + 0x40]
jbe 0x140166a43
mov dword [rsp + 0x34], r15d
mov r15d, dword [rsp + 0x48]
mov r12, rsi
lea rax, [rsi + 0x80]
lea rdi, [rsi + 1]
mov qword [rsp + 0x48], rax
lea rdx, [rsi + 2]
lea r9, [rsi + 3]
cmp r9, qword [rsp + 0x40]
jb 0x140166694
cmp dword [rsp + 0x60], 0
je 0x140166946
test r15d, r15d
jne 0x140166951
jmp 0x140166946
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x14016686b
mov r11d, eax
mov r14d, dword [r13 + r11]
mov r11, qword [rsp + 0x28]
mov rbp, rdi
sub rbp, r13
mov dword [rsp + 0x64], ebp
lea r11, [r11 + rcx*4]
cmp r14d, r8d
jne 0x140166896
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x1401669a1
movabs r8, 0xcf1bbcdcbfa56300
imul r8, qword [rdx]
mov cl, byte [rsp + 0x50]
mov eax, dword [r11]
mov dword [r11], ebp
shr r8, cl
cmp dword [rsp + 0x68], eax
ja 0x1401668c0
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x1401668c5
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x1401668e4
cmp r10, 4
ja 0x1401669a1
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
jmp 0x1401669a1
mov cl, byte [rsp + 0x50]
mov rax, qword [rsp + 0x28]
lea rbp, [rdx + r10]
movabs r11, 0xcf1bbcdcbfa56300
imul r11, qword [r9]
mov eax, dword [rax + r8*4]
shr r11, cl
mov rcx, r11
lea r11, [r9 + r10]
cmp rbp, qword [rsp + 0x48]
jb 0x14016692a
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc r10
sub qword [rsp + 0x48], 0xffffffffffffff80
mov rsi, rdx
mov rdi, r9
cmp r11, qword [rsp + 0x40]
jae 0x14016683a
mov r9, r11
mov rdx, rbp
jmp 0x1401666e5
test r15d, r15d
cmove r15d, dword [rsp + 0x60]
jmp 0x140166959
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0xf0]
cmp dword [rsp + 0x34], 0
mov dword [rax], r15d
mov eax, dword [rsp + 0x34]
cmove eax, dword [rsp + 0x5c]
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0xf0]
mov ebx, dword [rsp + 0x5c]
mov dword [rax + 4], ebx
mov rax, qword [rsp + 0x38]
sub rax, r12
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, eax
mov r14, rdi
add rbp, r13
sub r14, rbp
lea rax, [rbp + 4]
mov dword [rsp + 0x48], r14d
add r14d, 3
mov rsi, rax
sub rsi, rbp
cmp rdi, r12
jbe 0x14016675e
cmp qword [rsp + 0x70], rbp
jae 0x14016675e
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x14016675e
dec rdi
dec rbp
jmp 0x1401669b9
mov rax, qword [rbx + 0x18]
movups xmm0, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm0
cmp r11, 0x20
jle 0x1401667a2
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm1, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm1
movups xmm2, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm2
cmp rdx, rax
ja 0x140166a0b
jmp 0x1401667a2
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.1401801a0
jmp 0x1401667a2
mov eax, dword [rsp + 0x64]
mov cl, byte [rsp + 0x50]
lea rdx, [rsi - 2]
movabs rdi, 0xcf1bbcdcbfa56300
sub rdx, r13
imul rdi, qword [r13 + rax + 2]
mov rax, rdi
mov edi, dword [rsp + 0x64]
shr rax, cl
lea r11d, [rdi + 2]
mov rdi, qword [rsp + 0x28]
mov dword [rdi + rax*4], r11d
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [rsi - 2]
shr rax, cl
mov dword [rdi + rax*4], edx
test r15d, r15d
je 0x14016680a
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov edi, 4
mov r15d, eax
mov eax, dword [rsp + 0x48]
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x140166b7e
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140179460
mov cl, byte [rsp + 0x50]
mov rdx, rsi
mov r11, rax
sub rdx, r13
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [rsi]
lea rsi, [rsi + r11 + 4]
shr rax, cl
mov rcx, qword [rsp + 0x28]
cmp rbp, r12
mov dword [rcx + rax*4], edx
mov rcx, qword [rbx + 0x18]
jb 0x140166b14
movups xmm3, xmmword [r12]
movups xmmword [rcx], xmm3
jmp 0x140166b22
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140166b52
mov rax, rdx
sub rax, qword [rbx]
mov dword [rbx + 0x48], 2
sar rax, 3
mov dword [rbx + 0x4c], eax
mov word [rdx + 6], r11w
add rdx, 8
mov qword [rbx + 8], rdx
cmp rsi, qword [rsp + 0x40]
ja 0x14016680a
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140166aab
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x14016680a
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov eax, dword [rsp + 0x148]
mov r14, qword [rcx + 8]
mov esi, dword [rcx + 0x1c]
mov r10d, dword [rcx + 0x28]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x114]
mov r11, rcx
mov r12, r9
mov qword [rsp + 0x78], r8
mov r8, qword [rsp + 0x140]
mov r13, rdx
mov edx, 1
cmp eax, 1
mov dword [rsp + 0x70], esi
adc eax, 1
mov qword [rsp + 0xa0], rax
mov rax, qword [rcx + 0x10]
mov ecx, dword [rcx + 0x100]
mov qword [rsp + 0x60], rax
mov rax, r9
sub rax, r14
shl edx, cl
mov ecx, esi
lea r9d, [rax + r8]
mov ebx, r9d
sub ebx, esi
cmp edx, ebx
jae 0x140168a67
mov ecx, r9d
sub ecx, edx
test r10d, r10d
cmovne ecx, dword [rsp + 0x70]
lea rsi, [r12 + r8]
mov qword [rsp + 0x68], rsi
mov edx, ecx
add rdx, qword [rsp + 0x60]
mov edi, ecx
mov dword [rsp + 0x70], ecx
mov qword [rsp + 0xc0], rdx
mov edx, dword [r11 + 0x18]
cmp edx, ecx
cmovae edi, edx
mov ecx, edi
mov dword [rsp + 0x44], edi
lea rdi, [r14 + rcx]
add rcx, qword [rsp + 0x60]
mov qword [rsp + 0x90], rdi
lea rdi, [rsi - 8]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x80], rdi
cmp edx, dword [rsp + 0x70]
ja 0x140168af5
mov qword [rsp + 0x140], r8
mov r8, qword [rsp + 0x78]
mov r9, r12
mov rdx, r13
mov rcx, r11
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x140164320
mov rsi, qword [rsp + 0x78]
sub eax, dword [rsp + 0x70]
mov dword [rsp + 0x88], 0
mov r10d, dword [rsi + 4]
cmp r10d, eax
jb 0x140168b1d
mov dword [rsp + 0x88], r10d
xor r10d, r10d
mov dword [rsp + 0x8c], 0
mov rdi, qword [rsp + 0x78]
mov esi, dword [rdi]
cmp esi, eax
jb 0x140168b3c
mov dword [rsp + 0x8c], esi
xor esi, esi
mov rax, qword [r11 + 0x70]
mov qword [rsp + 0x48], rax
mov eax, dword [r11 + 0x108]
mov dword [rsp + 0x74], eax
mov eax, 0x40
sub eax, dword [rsp + 0x74]
mov dword [rsp + 0x3c], eax
lea rax, [r12 + 0x80]
mov qword [rsp + 0xb8], rax
lea rax, [r12 + 1]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xa0]
lea r8, [r12 + rax]
lea r9, [r8 + 1]
cmp qword [rsp + 0x80], r9
ja 0x140168bac
cmp dword [rsp + 0x8c], 0
je 0x140168eac
test esi, esi
jne 0x140168ebb
jmp 0x140168eac
cmp dword [rsp + 0x40], 6
je 0x140168bed
cmp dword [rsp + 0x40], 7
je 0x140168bf9
cmp dword [rsp + 0x40], 5
je 0x140168be1
imul eax, dword [r12], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
imul ebx, dword [r12 + 1], 0x9e3779b1
shr eax, cl
shr ebx, cl
jmp 0x140168c1b
movabs rbx, 0xcf1bbcdcbb000000
jmp 0x140168c03
movabs rbx, 0xcf1bbcdcbf9b0000
jmp 0x140168c03
movabs rbx, 0xcf1bbcdcbfa56300
mov rax, qword [r12]
mov cl, byte [rsp + 0x3c]
imul rax, rbx
imul rbx, qword [r12 + 1]
shr rax, cl
shr rbx, cl
mov rdi, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x44]
mov edx, dword [rdi + rax*4]
cmp dword [rsp + 0x44], edx
cmovbe r11, r14
add ecx, esi
mov rdi, qword [rsp + 0xa0]
mov dword [rsp + 0xcc], ecx
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
mov dword [rsp + 0xc8], ecx
mov qword [rsp + 0x58], rdi
mov rdi, r12
mov rbp, r8
mov r15, qword [rsp + 0x60]
sub rbp, r14
mov ecx, ebp
sub ecx, esi
cmp dword [rsp + 0x44], ecx
cmovbe r15, r14
mov qword [rsp + 0xa8], r15
mov r15d, dword [rsp + 0xcc]
sub r15d, ebp
cmp r15d, 3
jbe 0x140168ca9
test esi, esi
je 0x140168ca9
mov r15, qword [rsp + 0xa8]
mov ebp, ecx
mov r15d, dword [r15 + rbp]
mov dword [rsp + 0xb4], r15d
jmp 0x140168cb6
mov ebp, dword [r8]
xor ebp, 1
mov dword [rsp + 0xb4], ebp
mov r15, rdi
sub r15, r14
mov rbp, r15
mov dword [rsp + 0xb0], r15d
mov r15, qword [rsp + 0x48]
mov dword [r15 + rax*4], ebp
mov eax, dword [r8]
cmp eax, dword [rsp + 0xb4]
jne 0x140168d2b
mov edx, ecx
mov r9, qword [rsp + 0x68]
mov dword [rsp + 0x58], esi
mov ebp, 1
mov rax, qword [rsp + 0xa8]
mov esi, r10d
add rax, rdx
cmp dword [rsp + 0x44], ecx
cmova r9, qword [rsp + 0x98]
xor r15d, r15d
mov dil, byte [rax - 1]
cmp byte [r8 - 1], dil
mov rdi, r8
sete r15b
sub rax, r15
sub rdi, r15
add r15, 4
mov rdx, rax
jmp 0x140168f3d
mov ecx, dword [rdi]
mov ebp, ecx
xor ebp, 1
cmp edx, dword [rsp + 0x70]
jb 0x140168d3e
mov ebp, edx
mov ebp, dword [r11 + rbp]
cmp ebp, ecx
je 0x140168edb
mov rdi, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
lea rbx, [rdi + rbx*4]
mov edx, dword [rbx]
cmp dword [rsp + 0x44], edx
cmovbe r11, r14
cmp dword [rsp + 0x40], 6
je 0x140168d90
cmp dword [rsp + 0x40], 7
je 0x140168d9c
cmp dword [rsp + 0x40], 5
je 0x140168d84
imul eax, eax, 0x9e3779b1
mov cl, byte [rsp + 0xc8]
shr eax, cl
jmp 0x140168db1
movabs rax, 0xcf1bbcdcbb000000
jmp 0x140168da6
movabs rax, 0xcf1bbcdcbf9b0000
jmp 0x140168da6
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [r8]
mov cl, byte [rsp + 0x3c]
shr rax, cl
mov rcx, qword [rsp + 0x50]
sub rcx, r14
mov dword [rsp + 0xb0], ecx
mov dword [rbx], ecx
cmp edx, dword [rsp + 0x70]
jb 0x140168dd0
mov ecx, edx
mov ecx, dword [r11 + rcx]
jmp 0x140168de3
mov rdi, qword [rsp + 0x50]
mov ebx, dword [rdi]
mov dword [rsp + 0xa8], ebx
mov ecx, ebx
xor ecx, 1
mov rdi, qword [rsp + 0x50]
cmp dword [rdi], ecx
je 0x140168ece
mov rbx, qword [rsp + 0x48]
mov r11, qword [rsp + 0x60]
mov edx, dword [rbx + rax*4]
cmp dword [rsp + 0x44], edx
cmovbe r11, r14
cmp dword [rsp + 0x40], 6
je 0x140168e38
cmp dword [rsp + 0x40], 7
je 0x140168e44
cmp dword [rsp + 0x40], 5
je 0x140168e2c
imul ebx, dword [r9], 0x9e3779b1
mov cl, byte [rsp + 0xc8]
shr ebx, cl
jmp 0x140168e59
movabs rbx, 0xcf1bbcdcbb000000
jmp 0x140168e4e
movabs rbx, 0xcf1bbcdcbf9b0000
jmp 0x140168e4e
movabs rbx, 0xcf1bbcdcbfa56300
imul rbx, qword [r9]
mov cl, byte [rsp + 0x3c]
shr rbx, cl
mov rdi, qword [rsp + 0x58]
lea rbp, [r8 + rdi]
lea rcx, [r9 + rdi]
cmp rbp, qword [rsp + 0xb8]
jb 0x140168e8b
prefetcht0 byte [r9 + 0x40]
prefetcht0 byte [r9 + 0x80]
inc qword [rsp + 0x58]
sub qword [rsp + 0xb8], 0xffffffffffffff80
mov qword [rsp + 0x50], r9
mov rdi, r8
cmp qword [rsp + 0x80], rcx
jbe 0x140168b91
mov r9, rcx
mov r8, rbp
jmp 0x140168c5d
test esi, esi
cmove esi, dword [rsp + 0x8c]
jmp 0x1401692b3
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x88], eax
jmp 0x1401692b3
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x50], r8
mov rbx, rax
mov eax, dword [rsp + 0xb0]
sub eax, edx
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x44], edx
ja 0x140168efd
mov rax, qword [rsp + 0x90]
mov r9, qword [rsp + 0x68]
jmp 0x140168f0d
mov rax, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x98]
mov ecx, dword [rsp + 0x58]
add rdx, r11
lea ebp, [rcx + 3]
lea rcx, [rdx + 4]
mov r15, rcx
sub r15, rdx
cmp r12, rdi
jae 0x140168f3d
cmp rdx, rax
jbe 0x140168f3d
mov r10b, byte [rdx - 1]
cmp byte [rdi - 1], r10b
jne 0x140168f3d
dec rdi
dec rdx
jmp 0x140168f1b
mov rax, qword [rsp + 0x90]
mov r8, qword [rsp + 0x68]
add rdx, r15
lea rcx, [rdi + r15]
mov qword [rsp + 0x20], rax
call fcn.140179840
mov r11, rdi
mov rcx, qword [r13 + 0x18]
lea r10, [r15 + rax]
mov rax, qword [rsp + 0x68]
sub r11, r12
lea r15, [rax - 0x20]
cmp rdi, r15
ja 0x140168fc7
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
cmp r11, 0x10
jbe 0x140168fe5
mov rax, qword [r13 + 0x18]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp r11, 0x20
jle 0x140168fe5
lea rdx, [rax + r11]
add r12, 0x20
add rax, 0x20
movups xmm2, xmmword [r12]
add rax, 0x20
add r12, 0x20
movups xmmword [rax - 0x20], xmm2
movups xmm3, xmmword [r12 - 0x10]
movups xmmword [rax - 0x10], xmm3
cmp rdx, rax
ja 0x140168fa5
jmp 0x140168fe5
mov r9, r15
mov r8, rdi
mov rdx, r12
mov qword [rsp + 0xa8], r10
call fcn.1401801a0
mov r10, qword [rsp + 0xa8]
add qword [r13 + 0x18], r11
mov rax, qword [r13 + 8]
cmp r11, 0xffff
jbe 0x14016900d
mov rdx, rax
sub rdx, qword [r13]
mov dword [r13 + 0x48], 1
sar rdx, 3
mov dword [r13 + 0x4c], edx
lea rcx, [r10 - 3]
mov word [rax + 4], r11w
mov dword [rax], ebp
cmp rcx, 0xffff
jbe 0x140169038
mov rdx, rax
sub rdx, qword [r13]
mov dword [r13 + 0x48], 2
sar rdx, 3
mov dword [r13 + 0x4c], edx
mov word [rax + 6], cx
add rax, 8
lea r12, [rdi + r10]
mov qword [r13 + 8], rax
cmp r12, qword [rsp + 0x50]
jbe 0x14016905f
mov rax, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
sub rax, r14
mov dword [rdi + rbx*4], eax
cmp qword [rsp + 0x80], r12
jae 0x140169075
mov r10d, esi
mov esi, dword [rsp + 0x58]
jmp 0x140168b5d
mov eax, dword [rsp + 0xb0]
cmp dword [rsp + 0x40], 6
lea rdx, [r14 + rax + 2]
je 0x1401690b5
cmp dword [rsp + 0x40], 7
je 0x1401690c1
cmp dword [rsp + 0x40], 5
je 0x1401690a9
imul eax, dword [rdx], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
shr eax, cl
jmp 0x1401690d6
movabs rax, 0xcf1bbcdcbb000000
jmp 0x1401690cb
movabs rax, 0xcf1bbcdcbf9b0000
jmp 0x1401690cb
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [rdx]
mov cl, byte [rsp + 0x3c]
shr rax, cl
mov edx, dword [rsp + 0xb0]
mov rbx, qword [rsp + 0x48]
add edx, 2
mov dword [rbx + rax*4], edx
lea rdx, [r12 - 2]
sub rdx, r14
cmp dword [rsp + 0x40], 6
je 0x140169127
cmp dword [rsp + 0x40], 7
je 0x140169133
cmp dword [rsp + 0x40], 5
je 0x14016911b
imul eax, dword [r12 - 2], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
shr eax, cl
jmp 0x14016914a
movabs rax, 0xcf1bbcdcbb000000
jmp 0x14016913d
movabs rax, 0xcf1bbcdcbf9b0000
jmp 0x14016913d
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [r12 - 2]
mov cl, byte [rsp + 0x3c]
shr rax, cl
movabs rdi, 0xcf1bbcdcbf9b0000
mov rbx, qword [rsp + 0x48]
mov dword [rbx + rax*4], edx
mov rbx, r12
sub rbx, r14
mov eax, ebx
sub eax, esi
mov ecx, eax
lea rdx, [r14 + rcx]
cmp dword [rsp + 0x44], eax
jbe 0x14016917a
mov rdx, qword [rsp + 0x60]
add rdx, rcx
mov ecx, dword [rsp + 0x44]
lea ecx, [rcx + rsi - 1]
sub ecx, ebx
cmp ecx, 2
jbe 0x140169069
test esi, esi
je 0x140169069
mov ecx, dword [r12]
cmp dword [rdx], ecx
jne 0x140169069
cmp dword [rsp + 0x44], eax
mov r9, qword [rsp + 0x68]
lea rcx, [r12 + 4]
mov rax, qword [rsp + 0x90]
mov r8, qword [rsp + 0x68]
cmova r9, qword [rsp + 0x98]
add rdx, 4
mov qword [rsp + 0x20], rax
call fcn.140179840
cmp r15, r12
mov rcx, qword [r13 + 0x18]
mov rbp, rax
lea r11, [rax + 4]
jb 0x1401691ed
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
jmp 0x1401691fb
mov r9, r15
mov r8, r12
mov rdx, r12
call fcn.1401801a0
mov rdx, qword [r13 + 8]
inc rbp
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp rbp, 0xffff
jbe 0x14016922e
mov rax, rdx
sub rax, qword [r13]
mov dword [r13 + 0x48], 2
sar rax, 3
mov dword [r13 + 0x4c], eax
mov word [rdx + 6], bp
add rdx, 8
cmp dword [rsp + 0x40], 6
mov qword [r13 + 8], rdx
je 0x140169270
cmp dword [rsp + 0x40], 7
je 0x140169275
cmp dword [rsp + 0x40], 5
je 0x140169264
imul eax, dword [r12], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
shr eax, cl
jmp 0x14016928b
movabs rax, 0xcf1bbcdcbb000000
jmp 0x14016927f
mov rax, rdi
jmp 0x14016927f
movabs rax, 0xcf1bbcdcbfa56300
imul rax, qword [r12]
mov cl, byte [rsp + 0x3c]
shr rax, cl
mov rdx, qword [rsp + 0x48]
add r12, r11
cmp qword [rsp + 0x80], r12
mov dword [rdx + rax*4], ebx
mov eax, esi
mov esi, dword [rsp + 0x58]
mov dword [rsp + 0x58], eax
jae 0x14016915c
jmp 0x140169069
mov rax, qword [rsp + 0x78]
test r10d, r10d
cmove r10d, dword [rsp + 0x88]
mov dword [rax], esi
mov dword [rax + 4], r10d
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x88], r10d
sub rax, r12
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret