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

Disassembly:
mov r11, rsp
push rbx
push rsi
push rdi
push r15
sub rsp, 0x2d8
mov rax, qword [0x140167040]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
mov r9, qword [rcx]
lea rsi, [rcx + 0x2688]
mov r10, rcx
mov qword [rsp + 0x80], rcx
lea rcx, [0x1400e7100]
mov qword [rsp + 0xa0], rdx
xor r15d, r15d
mov qword [rsp + 0x98], rsi
movsxd rax, dword [r9 + 0xc]
mov qword [rsp + 0xb0], r9
lea edi, [r15 + 1]
lea rbx, [rcx + rax*8]
mov ecx, dword [r10 + 0x38]
mov eax, 0x24924925
mov qword [rsp + 0x50], rbx
mul ecx
mov eax, dword [rbx]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 3
mov dword [rsp + 0x88], ecx
cmp eax, 0x159b
je 0x14006737a
mov qword [r11 + 0x18], rbp
lea rdx, [0x1400e5b60]
mov qword [r11 - 0x28], r12
mov r12d, 0x7fffffff
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
nop
movsxd rcx, eax
mov r13d, r15d
add rcx, rdx
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x74], r15d
mov ebp, r15d
mov dword [rsp + 0x64], r15d
mov r14d, r15d
mov dword [rsp + 0x58], r15d
movzx eax, byte [rcx]
test al, al
je 0x14006733b
nop
xor sil, sil
mov byte [rsp + 0x20], sil
cmp al, 0x20
jne 0x1400669e8
nop dword [rax]
inc rcx
cmp byte [rcx], 0x20
je 0x1400669e0
lea r9, [rsp + 0x70]
mov rdx, r10
lea r8, [rsp + 0x24]
call fcn.140068570
mov rcx, rax
mov qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x70]
test eax, eax
je 0x14006713d
test byte [rbx + 4], 1
mov edi, 0x80000000
mov dword [rsp + 0x44], r15d
cmove edi, r12d
mov r12d, r15d
test eax, eax
je 0x140067111
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x3c], edi
nop word [rax + rax]
xor sil, sil
mov byte [rsp + 0x34], sil
test eax, eax
je 0x1400670e7
mov rbx, qword [rsp + 0xa0]
mov r8d, 1
mov rcx, rbx
mov edx, eax
call fcn.140057cc0
mov rcx, qword [rbx + 0x78]
movsd xmm0, qword [rcx + 0xb8]
movsd qword [rsp + 0xe0], xmm0
movups xmm1, xmmword [rcx + 0x98]
movups xmm2, xmmword [rcx + 0xa8]
movups xmmword [rsp + 0xc0], xmm1
test eax, eax
jne 0x1400670e3
movq rax, xmm1
shr rax, 0x10
cmp ax, 2
jle 0x1400670e3
mov edx, r15d
movd eax, xmm1
mov r9d, r15d
mov dword [rsp + 0x28], edx
mov r13d, r15d
mov r11d, r15d
mov rbx, r15
mov r10d, 0xffffffff
movsx r15, ax
test r15, r15
jle 0x14006709c
mov rsi, qword [rsp + 0xc8]
movdqa xmm0, xmm2
psrldq xmm0, 8
movq r12, xmm0
nop
movsx r8d, word [r12 + rbx*2]
mov edi, r10d
cmp r8d, r11d
jle 0x140066b9d
mov rcx, qword [rsp + 0x50]
mov edx, r11d
movsxd rax, r11d
shl rax, 3
test byte [rcx + 4], 3
lea rcx, [rsi + 4]
jne 0x140066b4e
add rcx, rax
nop dword [rax]
test r10d, r10d
js 0x140066b34
mov eax, dword [rcx]
cmp eax, r9d
jl 0x140066b34
cmp ebp, eax
jg 0x140066b41
mov ebp, eax
jmp 0x140066b41
mov r9d, dword [rcx]
mov r10d, edx
cmp r14d, r9d
cmovge r14d, r9d
inc edx
add rcx, 8
cmp edx, r8d
jle 0x140066b20
jmp 0x140066b7f
add rcx, rax
test r10d, r10d
js 0x140066b67
mov eax, dword [rcx]
cmp eax, r9d
jg 0x140066b67
cmp r14d, eax
jl 0x140066b74
mov r14d, eax
jmp 0x140066b74
mov r9d, dword [rcx]
mov r10d, edx
cmp ebp, r9d
cmovle ebp, r9d
inc edx
add rcx, 8
cmp edx, r8d
jle 0x140066b51
mov dword [rsp + 0x64], ebp
mov dword [rsp + 0x58], r14d
cmp r10d, edi
je 0x140066b99
mov edx, r11d
mov r13d, r8d
mov dword [rsp + 0x28], edx
jmp 0x140066b9d
mov edx, dword [rsp + 0x28]
inc rbx
lea r11d, [r8 + 1]
cmp rbx, r15
jl 0x140066af0
movzx esi, byte [rsp + 0x34]
mov dword [rsp + 0x40], r13d
test r10d, r10d
js 0x140067093
mov rax, qword [rsp + 0xc8]
movq r15, xmm2
mov r12, qword [rsp + 0xc8]
mov r11d, 0xffffffff
mov ebx, dword [rsp + 0x40]
mov ecx, r10d
movsxd r8, r10d
movsxd r13, r13d
mov dword [rsp + 0x30], r10d
mov qword [rsp + 0x78], r15
mov edi, dword [rax + r8*8]
movzx eax, byte [r15 + r8]
and al, 3
mov qword [rsp + 0x90], r13
cmp al, 1
cmove r11d, r10d
mov dword [rsp + 0x2c], r11d
mov esi, r11d
mov dword [rsp + 0x38], r11d
cmp ecx, edx
jle 0x140066c23
dec ecx
dec r8
jmp 0x140066c28
mov ecx, ebx
mov r8, r13
mov edx, dword [r12 + r8*8 + 4]
mov eax, edx
sub eax, r9d
jns 0x140066c39
mov eax, r9d
sub eax, edx
cmp eax, 5
jle 0x140066c5d
mov r11d, dword [r12 + r8*8]
mov edx, r11d
sub edx, edi
jns 0x140066c4e
mov edx, edi
sub edx, r11d
mov r11d, dword [rsp + 0x2c]
lea eax, [rax + rax*4]
shl eax, 2
cmp edx, eax
jle 0x140066c85
movzx eax, byte [r8 + r15]
and al, 3
mov dword [rsp + 0x30], ecx
cmp al, 1
jne 0x140066c7c
test esi, esi
mov dword [rsp + 0x2c], ecx
mov r11d, ecx
cmovs esi, ecx
mov dword [rsp + 0x38], esi
mov edx, dword [rsp + 0x28]
cmp ecx, r10d
jne 0x140066c18
movsxd rbp, dword [rsp + 0x28]
mov ebx, r10d
mov r14, qword [rsp + 0xc8]
mov rsi, rbp
mov r12d, ebx
movsxd rdx, r10d
nop
cmp rdx, r13
jge 0x140066cac
inc ebx
inc rdx
jmp 0x140066cb1
mov ebx, ebp
mov rdx, rsi
mov ecx, dword [r14 + rdx*8 + 4]
mov eax, ecx
sub eax, r9d
jns 0x140066cc2
mov eax, r9d
sub eax, ecx
cmp eax, 5
jle 0x140066ce1
mov r8d, dword [r14 + rdx*8]
mov ecx, r8d
sub ecx, edi
jns 0x140066cd7
mov ecx, edi
sub ecx, r8d
lea eax, [rax + rax*4]
shl eax, 2
cmp ecx, eax
jle 0x140066cff
movzx eax, byte [rdx + r15]
mov r12d, ebx
and al, 3
cmp al, 1
jne 0x140066cfa
test r11d, r11d
mov dword [rsp + 0x38], ebx
cmovs r11d, ebx
cmp ebx, r10d
jne 0x140066ca0
mov r8, qword [rsp + 0x50]
mov ebp, dword [rsp + 0x64]
mov r14d, dword [rsp + 0x58]
mov dword [rsp + 0x60], r12d
test byte [r8 + 4], 0x10
mov dword [rsp + 0x2c], r11d
mov dword [rsp + 0x5c], ebx
je 0x14006703e
mov rax, qword [rsp + 0x80]
mov r8, qword [rsp + 0xc8]
movsxd rbx, dword [rsp + 0x30]
mov r11d, dword [rax + 0x38]
mov eax, 0x51eb851f
mul r11d
movsxd rax, r12d
shr edx, 3
mov dword [rsp + 0x4c], edx
mov ecx, dword [r8 + rax*8]
mov eax, ecx
mov r8d, dword [r8 + rbx*8]
sub eax, r8d
sub r8d, ecx
test eax, eax
cmovns r8d, eax
cmp r8d, edx
jge 0x140066f06
mov eax, dword [rsp + 0x40]
mov ecx, r12d
sub eax, dword [rsp + 0x28]
sub ecx, ebx
add ecx, 2
cmp ecx, eax
jg 0x140066f06
mov r15, qword [rsp + 0x90]
mov ecx, r10d
mov r12, qword [rsp + 0xc8]
mov r14d, dword [rsp + 0x40]
shr r11d, 2
xor r13d, r13d
movsxd r8, r10d
mov ebx, r13d
mov dword [rsp + 0x68], r11d
mov rax, r8
cmp rax, rsi
jle 0x140066dc1
dec ecx
dec rax
jmp 0x140066dc7
mov ecx, r14d
mov rax, r15
mov edx, dword [r12 + rax*8]
cmp edx, edi
jne 0x140066dd4
cmp rax, r8
jne 0x140066db5
mov r14d, dword [rsp + 0x58]
cmp ecx, r10d
je 0x1400670d7
movsxd rax, dword [rsp + 0x60]
cmp edx, edi
mov dword [rsp + 0x6c], eax
mov r8d, eax
setl r12b
mov r10, rax
xor sil, sil
mov r15, rax
nop dword [rax]
test sil, sil
jne 0x140066e2a
mov rax, qword [rsp + 0x78]
mov ebx, 0xffffffff
mov dword [rsp + 0x6c], r8d
mov r15, r10
mov sil, 1
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
cmove ebx, r8d
mov r13d, ebx
cmp r10, qword [rsp + 0x90]
jge 0x140066e3c
inc r8d
inc r10
jmp 0x140066e47
movsxd rcx, dword [rsp + 0x28]
mov r8d, ecx
mov r10, rcx
mov rdx, qword [rsp + 0xc8]
mov eax, r9d
mov edi, dword [rdx + r15*8 + 4]
sub eax, edi
jns 0x140066e60
mov eax, edi
sub eax, r9d
cmp eax, r11d
jle 0x140066e6d
xor sil, sil
jmp 0x140066ef1
mov ecx, dword [rdx + r10*8 + 4]
sub ecx, edi
sub edi, dword [rdx + r10*8 + 4]
test ecx, ecx
cmovns edi, ecx
cmp edi, 5
jle 0x140066ead
mov eax, dword [rdx + r10*8]
mov ecx, eax
mov edx, dword [rdx + r15*8]
sub ecx, edx
sub edx, eax
lea eax, [rdi + rdi*4]
test ecx, ecx
cmovns edx, ecx
shl eax, 2
cmp edx, eax
jg 0x140066ea5
xor sil, sil
jmp 0x140066ef1
mov rdx, qword [rsp + 0xc8]
mov rax, qword [rsp + 0x78]
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
jne 0x140066ec6
test ebx, ebx
mov r13d, r8d
cmovs ebx, r8d
mov ecx, dword [rdx + r15*8]
mov r11d, dword [rdx + r10*8]
mov edx, r11d
sub edx, ecx
cmp ecx, r11d
setl al
cmp al, r12b
jne 0x140066eec
sub ecx, r11d
test edx, edx
cmovns ecx, edx
cmp ecx, dword [rsp + 0x4c]
jge 0x140066f67
mov r11d, dword [rsp + 0x68]
cmp r8d, dword [rsp + 0x30]
jne 0x140066e00
mov r15, qword [rsp + 0x78]
mov r12d, dword [rsp + 0x60]
mov ebx, dword [rsp + 0x2c]
mov r13d, dword [rsp + 0x38]
mov r10d, dword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
test ebx, ebx
js 0x140067050
test r13d, r13d
js 0x140067050
mov rdx, qword [rsp + 0xc8]
movsxd rax, r13d
mov ecx, dword [rdx + rax*8]
movsxd rax, ebx
mov edx, dword [rdx + rax*8]
mov eax, ecx
sub eax, edx
sub edx, ecx
test eax, eax
cmovns edx, eax
cmp edx, dword [rsp + 0x88]
jle 0x140067050
mov edi, dword [rsp + 0x3c]
xor sil, sil
mov r12d, dword [rsp + 0x44]
jmp 0x1400670a1
mov r12, qword [rsp + 0xc8]
movsxd r15, dword [rsp + 0x6c]
movsxd rax, dword [rsp + 0x5c]
lea r11, [r12 + r15*8]
mov r9d, dword [r11 + 4]
lea rsi, [r12 + rax*8]
cmp r10, qword [rsp + 0x90]
jge 0x140066f97
inc r8d
inc r10
jmp 0x140066fa2
movsxd rcx, dword [rsp + 0x28]
mov r8d, ecx
mov r10, rcx
mov ecx, dword [r12 + r10*8 + 4]
mov eax, ecx
sub eax, r9d
jns 0x140066fb3
mov eax, r9d
sub eax, ecx
cmp eax, 5
jle 0x140066fd0
mov edx, dword [r11]
lea eax, [rdi + rdi*4]
mov ecx, dword [rsi]
sub ecx, edx
sub edx, dword [rsi]
test ecx, ecx
cmovns edx, ecx
shl eax, 2
cmp edx, eax
jle 0x140067005
mov rax, qword [rsp + 0x78]
mov r13d, r8d
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
jne 0x140066fe9
test ebx, ebx
cmovs ebx, r8d
cmp r8d, dword [rsp + 0x30]
jne 0x140066f85
mov r9d, dword [r12 + r15*8 + 4]
mov r10d, r15d
mov r15, qword [rsp + 0x78]
mov r12d, r8d
jmp 0x140066f14
cmp r8d, dword [rsp + 0x28]
jle 0x140067024
mov r9d, dword [r12 + r15*8 + 4]
dec r8d
mov r10d, r15d
mov r12d, r8d
mov r15, qword [rsp + 0x78]
jmp 0x140066f14
mov r9d, dword [r12 + r15*8 + 4]
mov r10d, r15d
mov r8d, dword [rsp + 0x40]
mov r12d, r8d
mov r15, qword [rsp + 0x78]
jmp 0x140066f14
mov r13d, dword [rsp + 0x38]
mov ebx, r11d
mov r10d, dword [rsp + 0x30]
jmp 0x140066f19
movsxd rax, r10d
movzx ecx, byte [rax + r15]
and cl, 3
cmp cl, 1
jne 0x14006707e
movsxd rax, r12d
movzx ecx, byte [rax + r15]
and cl, 3
cmp cl, 1
jne 0x14006707e
mov edi, dword [rsp + 0x3c]
xor sil, sil
mov r12d, dword [rsp + 0x44]
jmp 0x1400670a1
test byte [r8 + 4], 4
mov sil, 1
jne 0x1400670d7
mov edi, dword [rsp + 0x3c]
mov r12d, dword [rsp + 0x44]
jmp 0x1400670a1
mov edi, dword [rsp + 0x3c]
mov r12d, dword [rsp + 0x44]
mov r8, qword [rsp + 0x50]
mov eax, dword [rsp + 0x24]
xor r15d, r15d
test byte [r8 + 4], 1
je 0x1400670c3
cmp r9d, edi
jle 0x1400670e7
mov edi, r9d
mov dword [rsp + 0x3c], r9d
mov byte [rsp + 0x20], sil
jmp 0x1400670ec
cmp r9d, edi
jge 0x1400670e7
mov edi, r9d
mov dword [rsp + 0x3c], r9d
mov byte [rsp + 0x20], sil
jmp 0x1400670ec
mov edi, dword [rsp + 0x3c]
xor r15d, r15d
mov r12d, dword [rsp + 0x44]
mov eax, dword [rsp + 0x24]
movzx esi, byte [rsp + 0x20]
inc r12d
mov dword [rsp + 0x44], r12d
cmp r12d, dword [rsp + 0x70]
jb 0x140066a40
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0xa8]
mov r13d, dword [rsp + 0x74]
lea eax, [rdi + 0x7fffffff]
mov r12d, 0x7fffffff
cmp eax, 0xfffffffd
ja 0x14006713d
test sil, sil
je 0x140067251
mov eax, r13d
inc r13d
mov dword [rsp + 0x74], r13d
mov dword [rsp + rax*4 + 0x110], edi
mov r11d, dword [rsp + 0x48]
movzx eax, byte [rcx]
mov r10, qword [rsp + 0x80]
test al, al
jne 0x1400669d0
mov eax, r13d
test r11d, r11d
jne 0x140067165
test eax, eax
je 0x140067327
mov edi, 1
mov r10d, edi
cmp r13d, edi
jbe 0x1400671c0
mov edx, r10d
test r10d, r10d
je 0x1400671b8
mov eax, r10d
lea rcx, [rsp + 0x110]
lea rcx, [rcx + rax*4]
nop dword [rax]
mov r8d, dword [rcx]
lea eax, [rdx - 1]
mov r9d, dword [rsp + rax*4 + 0x110]
mov edx, eax
cmp r8d, r9d
jge 0x1400671b8
mov dword [rcx], r9d
sub rcx, 4
mov dword [rsp + rax*4 + 0x110], r8d
test eax, eax
jne 0x140067190
inc r10d
cmp r10d, r13d
jb 0x140067172
mov r10d, edi
cmp r11d, edi
jbe 0x140067210
mov edx, r10d
test r10d, r10d
je 0x140067208
mov eax, r10d
lea rcx, [rsp + 0x1e0]
lea rcx, [rcx + rax*4]
nop
mov r8d, dword [rcx]
lea eax, [rdx - 1]
mov r9d, dword [rsp + rax*4 + 0x1e0]
mov edx, eax
cmp r8d, r9d
jge 0x140067208
mov dword [rcx], r9d
sub rcx, 4
mov dword [rsp + rax*4 + 0x1e0], r8d
test eax, eax
jne 0x1400671e0
inc r10d
cmp r10d, r11d
jb 0x1400671c8
mov rsi, qword [rsp + 0x98]
mov ecx, dword [rsi + 0xd8]
lea r8, [rcx*8 + 0x37]
add r8, rcx
lea eax, [rcx + 1]
mov dword [rsi + 0xd8], eax
lea r8, [rsi + r8*4]
test r11d, r11d
jne 0x14006726b
mov eax, r13d
shr rax, 1
mov ecx, dword [rsp + rax*4 + 0x110]
mov dword [r8 + 0xc], ecx
mov dword [r8], ecx
jmp 0x14006729a
mov r11d, dword [rsp + 0x48]
mov dword [rsp + r11*4 + 0x1e0], edi
inc r11d
mov dword [rsp + 0x48], r11d
jmp 0x140067142
mov eax, r11d
shr rax, 1
mov ecx, dword [rsp + rax*4 + 0x1e0]
test r13d, r13d
jne 0x140067286
mov dword [r8 + 0xc], ecx
mov dword [r8], ecx
jmp 0x14006729a
mov eax, r13d
shr rax, 1
mov dword [r8], ecx
mov eax, dword [rsp + rax*4 + 0x110]
mov dword [r8 + 0xc], eax
mov r9d, dword [r8 + 0xc]
mov edx, dword [r8]
cmp r9d, edx
je 0x1400672cd
test byte [rbx + 4], 3
mov ecx, r15d
mov eax, r15d
setne cl
cmp r9d, edx
setg al
cmp eax, ecx
je 0x1400672cd
lea eax, [r9 + rdx]
cdq
sub eax, edx
sar eax, 1
mov dword [r8 + 0xc], eax
mov dword [r8], eax
mov dword [r8 + 0x18], ebp
mov eax, r15d
mov dword [r8 + 0x1c], r14d
mov dword [r8 + 0x20], r15d
test byte [rbx + 4], dil
je 0x1400672ef
mov dword [r8 + 0x20], 2
mov eax, 2
test byte [rbx + 4], 2
je 0x1400672fc
or eax, 4
mov dword [r8 + 0x20], eax
test byte [rbx + 4], 4
je 0x140067309
or eax, 8
mov dword [r8 + 0x20], eax
test byte [rbx + 4], 8
lea rdx, [0x1400e5b60]
mov r10, qword [rsp + 0x80]
je 0x14006733b
or eax, 0x10
mov dword [r8 + 0x20], eax
jmp 0x14006733b
mov rsi, qword [rsp + 0x98]
lea rdx, [0x1400e5b60]
mov edi, 1
mov eax, dword [rbx + 8]
add rbx, 8
mov qword [rsp + 0x50], rbx
cmp eax, 0x159b
jne 0x1400669a0
mov r14, qword [rsp + 0x2c0]
mov r13, qword [rsp + 0x2c8]
mov r12, qword [rsp + 0x2d0]
mov rbp, qword [rsp + 0x310]
mov r9, qword [rsp + 0xb0]
mov ebx, dword [rsi + 0xd8]
test ebx, ebx
je 0x140067477
lea rax, [rsp + 0xc0]
mov edx, ebx
lea rcx, [rsi + 0xdc]
nop dword [rax]
mov qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x24
sub rdx, 1
jne 0x1400673a0
cmp ebx, 1
jbe 0x140067426
nop word [rax + rax]
mov eax, edi
lea rdx, [rsp + 0xc0]
mov r8d, edi
lea rdx, [rdx + rax*8]
lea eax, [r8 - 1]
lea r11, [rsp + 0xc0]
mov r8d, eax
mov rcx, qword [r11 + rax*8]
lea r11, [r11 + rax*8]
test byte [rcx + 0x20], 6
je 0x1400673f3
mov r9d, dword [rcx]
jmp 0x1400673f7
mov r9d, dword [rcx + 0xc]
mov rax, qword [rdx]
test byte [rax + 0x20], 6
je 0x140067405
mov r10d, dword [rax]
jmp 0x140067409
mov r10d, dword [rax + 0xc]
cmp r10d, r9d
jge 0x14006741d
mov qword [rdx], rcx
sub rdx, 8
mov qword [r11], rax
test r8d, r8d
jne 0x1400673d1
inc edi
cmp edi, ebx
jb 0x1400673c0
cmp ebx, 1
je 0x140067473
nop dword [rax + rax]
mov eax, r15d
mov rcx, qword [rsp + rax*8 + 0xc0]
test byte [rcx + 0x20], 6
je 0x140067445
add rcx, 0xc
lea r8d, [r15 + 1]
mov rdx, qword [rsp + r8*8 + 0xc0]
test byte [rdx + 0x20], 6
je 0x14006745b
add rdx, 0xc
mov eax, dword [rdx]
cmp dword [rcx], eax
jle 0x140067463
mov dword [rcx], eax
mov eax, dword [rsi + 0xd8]
mov r15d, r8d
dec eax
cmp r8d, eax
jb 0x140067430
xor eax, eax
jmp 0x1400674b2
mov r8, qword [r10 + 0x30]
cmp dword [r8 + 8], 0
mov rdx, qword [r8 + 0x10]
jle 0x1400674b0
nop word [rax + rax]
movzx ecx, word [rdx]
and ecx, 0x3fff
cmp ecx, dword [r9]
jne 0x1400674a3
mov word [rdx], 0x42
inc r15d
add rdx, 2
cmp r15d, dword [r8 + 8]
jl 0x140067490
mov eax, edi
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.1400d7150
add rsp, 0x2d8
pop r15
pop rdi
pop rsi
pop rbx
ret