Function at 0x1401591a0
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 0x140155ef5
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 0x14015553d
cmp r11d, 7
je 0x140155a02
cmp r11d, 5
je 0x14015504a
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140154c00
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140154c15
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 0x140156ffa
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 0x140154cf2
test r15d, r15d
je 0x140154cf2
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 0x140154e18
mov r14d, dword [rsi]
mov r11d, r14d
xor r11d, 1
mov dword [rsp + 0x48], r11d
cmp dword [rsp + 0x68], eax
ja 0x140154d14
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 0x140154d44
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x140154dde
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 0x140154d65
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x140154d6a
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x140154d82
cmp r10, 4
ja 0x140154dde
mov rsi, qword [rsp + 0x28]
sub r8, r13
mov dword [rsi + rdx*4], r8d
jmp 0x140154dde
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 0x140154dc2
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 0x140156ffa
mov r9, r11
mov r8, rbp
jmp 0x140154c7e
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 0x140154e18
cmp qword [rsp + 0x70], rbp
jae 0x140154e18
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140154e18
dec rdi
dec rbp
jmp 0x140154df6
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140169c20
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 0x140154e96
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
cmp r11, 0x10
jbe 0x140154ea4
mov rax, qword [rbx + 0x18]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp r11, 0x20
jle 0x140154ea4
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 0x140154e74
jmp 0x140154ea4
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140154ec9
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 0x140154ef2
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 0x140154f1a
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, dword [rsp + 0x48]
jmp 0x140154c22
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 0x140154f08
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 0x140155039
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
imul r14d, r14d, 0x9e3779b1
add rdx, rsi
call fcn.140169c20
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 0x140154fcf
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
jmp 0x140154fdd
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x14015500d
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 0x140154f08
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140154f6a
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140154f08
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x1401550a5
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x14015528a
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x14015528a
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 0x14015534e
mov ecx, eax
mov ecx, dword [r13 + rcx]
cmp dword [rdi], ecx
je 0x140155358
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 0x14015513d
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 0x140156ffa
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 0x140155307
test r15d, r15d
je 0x140155307
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.140169c20
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 0x1401553fa
movups xmm5, xmmword [r12]
movups xmmword [rcx], xmm5
cmp r11, 0x10
ja 0x1401553b1
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140155239
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 0x140155265
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 0x14015540d
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 0x140156ffa
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 0x140155154
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x14015531f
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 0x1401550c3
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x14015536a
mov ecx, dword [rdi]
xor ecx, 1
jmp 0x1401550ef
cmp r10, 4
ja 0x14015536a
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 0x1401551d0
cmp qword [rsp + 0x70], rbp
jae 0x1401551d0
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x1401551d0
dec rdi
dec rbp
jmp 0x140155383
mov rax, qword [rbx + 0x18]
movups xmm0, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm0
cmp r11, 0x20
jle 0x140155214
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 0x1401553d5
jmp 0x140155214
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
jmp 0x140155214
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 0x14015527f
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 0x140155535
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140169c20
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 0x1401554d4
movups xmm3, xmmword [r12]
movups xmmword [rcx], xmm3
jmp 0x1401554e2
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140155512
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 0x14015527f
xchg r14d, r15d
mov r12, rsi
jmp 0x14015546c
xchg r14d, r15d
jmp 0x14015527f
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140155598
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x14015567c
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x14015567c
xchg r15d, r14d
mov r12, rsi
mov eax, r15d
mov rdx, rsi
sub rdx, rax
mov ecx, dword [rdx]
cmp dword [rsi], ecx
jne 0x140155671
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140169c20
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 0x1401559ef
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 0x140155656
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 0x1401555b6
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 0x140156ffa
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 0x14015576d
test r15d, r15d
je 0x14015576d
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 0x140155897
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x140155785
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 0x1401557b3
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x14015585c
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 0x1401557dd
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x1401557e2
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x1401557fa
cmp r10, 4
ja 0x14015585c
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
jmp 0x14015585c
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 0x140155840
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 0x140156ffa
mov r9, r11
mov rdx, rbp
jmp 0x1401556f4
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 0x140155897
cmp qword [rsp + 0x70], rbp
jae 0x140155897
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140155897
dec rdi
dec rbp
jmp 0x140155875
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140169c20
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 0x140155915
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
cmp r11, 0x10
jbe 0x140155923
mov rax, qword [rbx + 0x18]
movups xmm5, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm5
cmp r11, 0x20
jle 0x140155923
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 0x1401558f3
jmp 0x140155923
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140155948
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 0x140155974
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 0x140155671
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 0x140155671
mov r12, rsi
mov edi, 4
jmp 0x1401555bc
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
jmp 0x140155626
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140155a5d
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140155c42
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x140155c42
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 0x140155d06
mov ecx, eax
mov ecx, dword [r13 + rcx]
cmp dword [rdi], ecx
je 0x140155d10
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 0x140155af5
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 0x140156ffa
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 0x140155cbf
test r15d, r15d
je 0x140155cbf
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.140169c20
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 0x140155db2
movups xmm3, xmmword [r12]
movups xmmword [rcx], xmm3
cmp r11, 0x10
ja 0x140155d69
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140155bf1
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 0x140155c1d
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 0x140155dc5
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 0x140156ffa
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 0x140155b0c
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x140155cd7
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 0x140155a7b
mov edi, dword [rsp + 0x80]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x140155d22
mov ecx, dword [rdi]
xor ecx, 1
jmp 0x140155aa7
cmp r10, 4
ja 0x140155d22
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 0x140155b88
cmp qword [rsp + 0x70], rbp
jae 0x140155b88
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140155b88
dec rdi
dec rbp
jmp 0x140155d3b
mov rax, qword [rbx + 0x18]
movups xmm4, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm4
cmp r11, 0x20
jle 0x140155bcc
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 0x140155d8d
jmp 0x140155bcc
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
jmp 0x140155bcc
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 0x140155c37
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 0x140155eed
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140169c20
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 0x140155e8c
movups xmm1, xmmword [r12]
movups xmmword [rcx], xmm1
jmp 0x140155e9a
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140155eca
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 0x140155c37
xchg r14d, r15d
mov r12, rsi
jmp 0x140155e24
xchg r14d, r15d
jmp 0x140155c37
mov dword [rsp + 0x50], r9d
mov ecx, r14d
mov dword [rsp + 0x48], edx
cmp r11d, 6
je 0x14015689b
cmp r11d, 7
je 0x140156ddb
cmp r11d, 5
je 0x1401563b2
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x50], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140155f7a
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], 0
cmp r11d, r15d
jae 0x140155f8f
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 0x140156abb
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 0x140156065
test r15d, r15d
je 0x140156065
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 0x140156180
mov r14d, dword [rsi]
mov dword [rsp + 0x48], r14d
xor r14d, 1
cmp dword [rsp + 0x64], eax
ja 0x14015607f
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 0x1401560ac
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x60], edi
mov rdi, rsi
jmp 0x140156146
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 0x1401560cd
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x1401560d2
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x1401560ea
cmp r10, 4
ja 0x140156146
mov rsi, qword [rsp + 0x28]
sub r8, r13
mov dword [rsi + rdx*4], r8d
jmp 0x140156146
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 0x14015612a
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 0x140156abb
mov r9, r11
mov r8, rbp
jmp 0x140155ff4
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 0x140156180
cmp qword [rsp + 0x68], rbp
jae 0x140156180
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140156180
dec rdi
dec rbp
jmp 0x14015615e
mov r8, qword [rsp + 0x38]
lea rdx, [rbp + rsi]
lea rcx, [rdi + rsi]
call fcn.140169c20
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 0x1401561fe
movups xmm2, xmmword [r12]
movups xmmword [rcx], xmm2
cmp r11, 0x10
jbe 0x14015620c
mov rax, qword [rbx + 0x18]
movups xmm3, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm3
cmp r11, 0x20
jle 0x14015620c
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 0x1401561dc
jmp 0x14015620c
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140156231
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 0x14015625a
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 0x140156282
mov dword [rsp + 0x34], r15d
mov r12, rsi
mov r15d, dword [rsp + 0x48]
jmp 0x140155f9c
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 0x140156270
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 0x1401563a1
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
imul r14d, r14d, 0x9e3779b1
add rdx, rsi
call fcn.140169c20
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 0x140156337
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
jmp 0x140156345
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140156375
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 0x140156270
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x1401562d2
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140156270
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x50], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x14015640d
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], 0
cmp r11d, r15d
jae 0x1401565ef
mov dword [rsp + 0x5c], r15d
xor r15d, r15d
jmp 0x1401565ef
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 0x1401566ac
mov ecx, eax
mov ecx, dword [r13 + rcx]
cmp dword [rdi], ecx
je 0x1401566b6
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 0x1401564a5
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 0x140156abb
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 0x140156668
test r15d, r15d
je 0x140156668
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.140169c20
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 0x140156758
movups xmm1, xmmword [r12]
movups xmmword [rcx], xmm1
cmp r11, 0x10
ja 0x14015670f
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x14015659e
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 0x1401565ca
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 0x14015676b
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 0x140156abb
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 0x1401564bc
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x64], eax
ja 0x140156680
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 0x14015642b
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x60], edi
mov rdi, rsi
jmp 0x1401566c8
mov ecx, dword [rdi]
xor ecx, 1
jmp 0x140156457
cmp r10, 4
ja 0x1401566c8
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 0x140156535
cmp qword [rsp + 0x68], rbp
jae 0x140156535
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140156535
dec rdi
dec rbp
jmp 0x1401566e1
mov rax, qword [rbx + 0x18]
movups xmm2, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm2
cmp r11, 0x20
jle 0x140156579
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 0x140156733
jmp 0x140156579
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
jmp 0x140156579
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 0x1401565e4
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 0x140156893
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140169c20
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 0x140156832
movups xmm5, xmmword [r12]
movups xmmword [rcx], xmm5
jmp 0x140156840
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140156870
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 0x1401565e4
xchg r14d, r15d
mov r12, rsi
jmp 0x1401567ca
xchg r14d, r15d
jmp 0x1401565e4
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x50], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x1401568f6
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x5c], 0
cmp r11d, r15d
jae 0x140156a98
mov dword [rsp + 0x5c], r15d
xor r15d, r15d
jmp 0x140156a98
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 0x140156ad4
test r15d, r15d
je 0x140156ad4
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.140169c20
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 0x140156c98
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
cmp r11, 0x10
ja 0x140156c4f
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140156a47
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 0x140156a73
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 0x140156cab
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 0x140156914
cmp dword [rsp + 0x5c], 0
je 0x140156bc7
test r15d, r15d
jne 0x140156bd2
jmp 0x140156bc7
mov r14d, dword [rsi]
mov r8d, r14d
xor r8d, 1
cmp dword [rsp + 0x64], eax
ja 0x140156aec
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 0x140156b17
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x60], edi
mov rdi, rsi
jmp 0x140156c08
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 0x140156b41
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x140156b46
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x140156b65
cmp r10, 4
ja 0x140156c08
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
jmp 0x140156c08
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 0x140156bab
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 0x140156abb
mov r9, r11
mov rdx, rbp
jmp 0x140156965
test r15d, r15d
cmove r15d, dword [rsp + 0x5c]
jmp 0x140156bda
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 0x140157142
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 0x1401569de
cmp qword [rsp + 0x68], rbp
jae 0x1401569de
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x1401569de
dec rdi
dec rbp
jmp 0x140156c21
mov rax, qword [rbx + 0x18]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp r11, 0x20
jle 0x140156a22
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 0x140156c73
jmp 0x140156a22
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
jmp 0x140156a22
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 0x140156a8d
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 0x140156dd3
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140169c20
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 0x140156d72
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
jmp 0x140156d80
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140156db0
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 0x140156a8d
xchg r14d, r15d
mov r12, rsi
jmp 0x140156d0a
xchg r14d, r15d
jmp 0x140156a8d
call fcn.14016cd80
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.14016cd80
mov dword [rsp + 0x5c], 0
sub r11d, eax
cmp r11d, dword [rsp + 0x34]
jae 0x140156e36
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x60], 0
cmp r11d, r15d
jae 0x140156fd7
mov dword [rsp + 0x60], r15d
xor r15d, r15d
jmp 0x140156fd7
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 0x140157013
test r15d, r15d
je 0x140157013
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.140169c20
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 0x1401571f0
movups xmm5, xmmword [r12]
movups xmmword [rcx], xmm5
cmp r11, 0x10
ja 0x1401571a7
add qword [rbx + 0x18], r11
mov rax, qword [rbx + 8]
cmp r11, 0xffff
jbe 0x140156f87
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 0x140156fb0
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 0x140157203
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 0x140156e54
cmp dword [rsp + 0x60], 0
je 0x140157106
test r15d, r15d
jne 0x140157111
jmp 0x140157106
mov r8d, dword [rsi]
mov r14d, r8d
xor r14d, 1
cmp dword [rsp + 0x68], eax
ja 0x14015702b
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 0x140157056
mov edi, dword [rsp + 0x78]
mov dword [r11], ebp
mov dword [rsp + 0x64], edi
mov rdi, rsi
jmp 0x140157161
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 0x140157080
mov ecx, eax
mov ecx, dword [r13 + rcx]
jmp 0x140157085
mov ecx, dword [rdi]
xor ecx, 1
cmp dword [rdi], ecx
jne 0x1401570a4
cmp r10, 4
ja 0x140157161
mov rsi, qword [rsp + 0x28]
sub rdx, r13
mov dword [rsi + r8*4], edx
jmp 0x140157161
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 0x1401570ea
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 0x140156ffa
mov r9, r11
mov rdx, rbp
jmp 0x140156ea5
test r15d, r15d
cmove r15d, dword [rsp + 0x60]
jmp 0x140157119
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 0x140156f1e
cmp qword [rsp + 0x70], rbp
jae 0x140156f1e
mov cl, byte [rbp - 1]
cmp byte [rdi - 1], cl
jne 0x140156f1e
dec rdi
dec rbp
jmp 0x140157179
mov rax, qword [rbx + 0x18]
movups xmm0, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm0
cmp r11, 0x20
jle 0x140156f62
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 0x1401571cb
jmp 0x140156f62
mov r9, rbp
mov r8, rdi
mov rdx, r12
call fcn.140170960
jmp 0x140156f62
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 0x140156fca
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 0x14015733e
mov rdx, rdi
mov r8, qword [rsp + 0x38]
lea rcx, [rsi + 4]
sub rdx, rax
add rdx, rsi
call fcn.140169c20
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 0x1401572d4
movups xmm3, xmmword [r12]
movups xmmword [rcx], xmm3
jmp 0x1401572e2
mov r9, rbp
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [rbx + 8]
inc r11
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp r11, 0xffff
jbe 0x140157312
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 0x140156fca
mov eax, dword [rsp + 0x48]
mov r12, rsi
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x14015726b
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x48], r15d
mov r15d, eax
jmp 0x140156fca
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 0x140159227
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 0x1401592b5
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 0x140154ae0
mov rsi, qword [rsp + 0x78]
sub eax, dword [rsp + 0x70]
mov dword [rsp + 0x88], 0
mov r10d, dword [rsi + 4]
cmp r10d, eax
jb 0x1401592dd
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 0x1401592fc
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 0x14015936c
cmp dword [rsp + 0x8c], 0
je 0x14015966c
test esi, esi
jne 0x14015967b
jmp 0x14015966c
cmp dword [rsp + 0x40], 6
je 0x1401593ad
cmp dword [rsp + 0x40], 7
je 0x1401593b9
cmp dword [rsp + 0x40], 5
je 0x1401593a1
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 0x1401593db
movabs rbx, 0xcf1bbcdcbb000000
jmp 0x1401593c3
movabs rbx, 0xcf1bbcdcbf9b0000
jmp 0x1401593c3
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 0x140159469
test esi, esi
je 0x140159469
mov r15, qword [rsp + 0xa8]
mov ebp, ecx
mov r15d, dword [r15 + rbp]
mov dword [rsp + 0xb4], r15d
jmp 0x140159476
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 0x1401594eb
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 0x1401596fd
mov ecx, dword [rdi]
mov ebp, ecx
xor ebp, 1
cmp edx, dword [rsp + 0x70]
jb 0x1401594fe
mov ebp, edx
mov ebp, dword [r11 + rbp]
cmp ebp, ecx
je 0x14015969b
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 0x140159550
cmp dword [rsp + 0x40], 7
je 0x14015955c
cmp dword [rsp + 0x40], 5
je 0x140159544
imul eax, eax, 0x9e3779b1
mov cl, byte [rsp + 0xc8]
shr eax, cl
jmp 0x140159571
movabs rax, 0xcf1bbcdcbb000000
jmp 0x140159566
movabs rax, 0xcf1bbcdcbf9b0000
jmp 0x140159566
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 0x140159590
mov ecx, edx
mov ecx, dword [r11 + rcx]
jmp 0x1401595a3
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 0x14015968e
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 0x1401595f8
cmp dword [rsp + 0x40], 7
je 0x140159604
cmp dword [rsp + 0x40], 5
je 0x1401595ec
imul ebx, dword [r9], 0x9e3779b1
mov cl, byte [rsp + 0xc8]
shr ebx, cl
jmp 0x140159619
movabs rbx, 0xcf1bbcdcbb000000
jmp 0x14015960e
movabs rbx, 0xcf1bbcdcbf9b0000
jmp 0x14015960e
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 0x14015964b
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 0x140159351
mov r9, rcx
mov r8, rbp
jmp 0x14015941d
test esi, esi
cmove esi, dword [rsp + 0x8c]
jmp 0x140159a73
mov eax, dword [rsp + 0x8c]
mov dword [rsp + 0x88], eax
jmp 0x140159a73
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 0x1401596bd
mov rax, qword [rsp + 0x90]
mov r9, qword [rsp + 0x68]
jmp 0x1401596cd
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 0x1401596fd
cmp rdx, rax
jbe 0x1401596fd
mov r10b, byte [rdx - 1]
cmp byte [rdi - 1], r10b
jne 0x1401596fd
dec rdi
dec rdx
jmp 0x1401596db
mov rax, qword [rsp + 0x90]
mov r8, qword [rsp + 0x68]
add rdx, r15
lea rcx, [rdi + r15]
mov qword [rsp + 0x20], rax
call fcn.14016a000
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 0x140159787
movups xmm0, xmmword [r12]
movups xmmword [rcx], xmm0
cmp r11, 0x10
jbe 0x1401597a5
mov rax, qword [r13 + 0x18]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
cmp r11, 0x20
jle 0x1401597a5
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 0x140159765
jmp 0x1401597a5
mov r9, r15
mov r8, rdi
mov rdx, r12
mov qword [rsp + 0xa8], r10
call fcn.140170960
mov r10, qword [rsp + 0xa8]
add qword [r13 + 0x18], r11
mov rax, qword [r13 + 8]
cmp r11, 0xffff
jbe 0x1401597cd
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 0x1401597f8
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 0x14015981f
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 0x140159835
mov r10d, esi
mov esi, dword [rsp + 0x58]
jmp 0x14015931d
mov eax, dword [rsp + 0xb0]
cmp dword [rsp + 0x40], 6
lea rdx, [r14 + rax + 2]
je 0x140159875
cmp dword [rsp + 0x40], 7
je 0x140159881
cmp dword [rsp + 0x40], 5
je 0x140159869
imul eax, dword [rdx], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
shr eax, cl
jmp 0x140159896
movabs rax, 0xcf1bbcdcbb000000
jmp 0x14015988b
movabs rax, 0xcf1bbcdcbf9b0000
jmp 0x14015988b
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 0x1401598e7
cmp dword [rsp + 0x40], 7
je 0x1401598f3
cmp dword [rsp + 0x40], 5
je 0x1401598db
imul eax, dword [r12 - 2], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
shr eax, cl
jmp 0x14015990a
movabs rax, 0xcf1bbcdcbb000000
jmp 0x1401598fd
movabs rax, 0xcf1bbcdcbf9b0000
jmp 0x1401598fd
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 0x14015993a
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 0x140159829
test esi, esi
je 0x140159829
mov ecx, dword [r12]
cmp dword [rdx], ecx
jne 0x140159829
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.14016a000
cmp r15, r12
mov rcx, qword [r13 + 0x18]
mov rbp, rax
lea r11, [rax + 4]
jb 0x1401599ad
movups xmm4, xmmword [r12]
movups xmmword [rcx], xmm4
jmp 0x1401599bb
mov r9, r15
mov r8, r12
mov rdx, r12
call fcn.140170960
mov rdx, qword [r13 + 8]
inc rbp
mov word [rdx + 4], 0
mov dword [rdx], 1
cmp rbp, 0xffff
jbe 0x1401599ee
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 0x140159a30
cmp dword [rsp + 0x40], 7
je 0x140159a35
cmp dword [rsp + 0x40], 5
je 0x140159a24
imul eax, dword [r12], 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [rsp + 0x74]
shr eax, cl
jmp 0x140159a4b
movabs rax, 0xcf1bbcdcbb000000
jmp 0x140159a3f
mov rax, rdi
jmp 0x140159a3f
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 0x14015991c
jmp 0x140159829
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