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

Disassembly:
push rbx
push rsi
push r13
sub rsp, 0x2f0
mov rax, qword [0x1400fc040]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov r9, qword [rcx]
lea r11, [rcx + 0x2688]
mov r10, rcx
mov qword [rsp + 0x98], rcx
lea rcx, [0x1400c2fb0]
mov qword [rsp + 0x2e0], r12
xor esi, esi
mov qword [rsp + 0xb8], rdx
movsxd rax, dword [r9 + 0xc]
mov qword [rsp + 0xb0], r11
mov qword [rsp + 0xc8], r9
lea r13d, [rsi + 1]
lea r12, [rcx + rax*8]
mov ecx, dword [r10 + 0x38]
mov eax, 0x24924925
mov qword [rsp + 0x88], r12
mul ecx
mov eax, dword [r12]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 3
mov dword [rsp + 0xa4], ecx
cmp eax, 0x159b
je 0x140066187
mov qword [rsp + 0x320], rbp
lea rdx, [0x1400c1a10]
mov qword [rsp + 0x2e8], rdi
mov qword [rsp + 0x2d8], r14
mov qword [rsp + 0x2d0], r15
movsxd rcx, eax
mov ebx, esi
add rcx, rdx
mov dword [rsp + 0x7c], esi
mov r14d, esi
mov dword [rsp + 0x78], esi
mov r15d, esi
mov dword [rsp + 0x58], ebx
mov edi, esi
mov dword [rsp + 0x5c], esi
movzx eax, byte [rcx]
test al, al
je 0x140066134
nop dword [rax]
xor bpl, bpl
mov byte [rsp + 0x20], bpl
cmp al, 0x20
jne 0x1400657a8
nop dword [rax]
inc rcx
cmp byte [rcx], 0x20
je 0x1400657a0
lea r9, [rsp + 0x80]
mov rdx, r10
lea r8, [rsp + 0x2c]
call fcn.1400673e0
mov rcx, rax
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x80]
test eax, eax
je 0x140065f64
test byte [r12 + 4], 1
mov edx, 0x7fffffff
mov r13d, 0x80000000
mov dword [rsp + 0x24], esi
cmove r13d, edx
test eax, eax
je 0x140065f24
mov eax, dword [rsp + 0x2c]
mov ecx, esi
mov dword [rsp + 0x4c], r13d
nop dword [rax]
nop word [rax + rax]
xor r14b, r14b
mov byte [rsp + 0x21], r14b
test eax, eax
je 0x140065eff
mov r15, qword [rsp + 0xb8]
mov r8d, 1
mov rcx, r15
mov edx, eax
call fcn.1400569d0
mov rcx, qword [r15 + 0x78]
movsd xmm0, qword [rcx + 0xb8]
movsd qword [rsp + 0xf0], xmm0
movups xmm1, xmmword [rcx + 0x98]
movups xmm2, xmmword [rcx + 0xa8]
test eax, eax
jne 0x140065ef7
movq rax, xmm1
shr rax, 0x10
cmp ax, 2
jle 0x140065ef7
movd eax, xmm1
mov r10d, 0xffffffff
mov edx, r10d
psrldq xmm1, 8
mov r8d, r10d
mov dword [rsp + 0x30], r10d
movsx rbp, ax
mov ecx, esi
mov dword [rsp + 0x34], edx
movq rax, xmm1
mov qword [rsp + 0x40], rax
mov r9d, edx
test rbp, rbp
jle 0x140065987
movdqa xmm0, xmm2
mov r14, rax
psrldq xmm0, 8
movq r15, xmm0
lea r11d, [r9 + 1]
movsx r9d, word [r15 + rsi*2]
cmp r9d, r11d
jle 0x140065970
movsxd rax, r11d
lea rdx, [r14 + 4]
shl rax, 3
mov r8d, r11d
add rdx, rax
test byte [r12 + 4], 3
jne 0x140065920
nop dword [rax]
test r10d, r10d
js 0x140065903
mov eax, dword [rdx]
cmp eax, ecx
jl 0x140065903
cmp ebx, eax
jg 0x14006590d
mov ebx, eax
jmp 0x14006590d
mov ecx, dword [rdx]
mov r10d, r8d
cmp edi, ecx
cmovge edi, ecx
inc r8d
add rdx, 8
cmp r8d, r9d
jle 0x1400658f0
jmp 0x140065949
test r10d, r10d
js 0x140065933
mov eax, dword [rdx]
cmp eax, ecx
jg 0x140065933
cmp edi, eax
jl 0x14006593d
mov edi, eax
jmp 0x14006593d
mov ecx, dword [rdx]
mov r10d, r8d
cmp ebx, ecx
cmovle ebx, ecx
inc r8d
add rdx, 8
cmp r8d, r9d
jle 0x140065920
mov edx, dword [rsp + 0x34]
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x5c], edi
cmp r10d, edx
jle 0x14006596b
mov edx, r9d
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x34], edx
mov r8d, r11d
jmp 0x140065970
mov r8d, dword [rsp + 0x30]
inc rsi
cmp rsi, rbp
jl 0x1400658c1
movzx r14d, byte [rsp + 0x21]
mov rax, qword [rsp + 0x40]
test r10d, r10d
js 0x140065ea3
mov r13, qword [rsp + 0x40]
mov r12d, 0xffffffff
movsxd r15, r10d
mov r9d, r10d
movsxd rbx, edx
mov rsi, r15
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x90], rbx
mov ebp, dword [rax + r15*8]
movq rax, xmm2
mov qword [rsp + 0x70], rax
movzx eax, byte [r15 + rax]
mov r15, qword [rsp + 0x70]
and al, 3
cmp al, 1
cmove r12d, r10d
mov r14d, r12d
nop word [rax + rax]
dec rsi
mov eax, r9d
cmp r9d, r8d
mov r11d, ecx
cmovle rsi, rbx
dec r9d
cmp eax, r8d
cmovle r9d, edx
mov edx, dword [r13 + rsi*8 + 4]
sub r11d, edx
sub edx, ecx
cmovns r11d, edx
cmp r11d, 5
jle 0x140065a2f
mov r8d, dword [r13 + rsi*8]
lea eax, [r11 + r11*4]
mov edx, ebp
sub edx, r8d
sub r8d, ebp
cmovns edx, r8d
shl eax, 2
cmp edx, eax
jle 0x140065a52
mov r8d, dword [rsp + 0x30]
movzx eax, byte [rsi + r15]
and al, 3
mov dword [rsp + 0x38], r9d
cmp al, 1
jne 0x140065a49
test r14d, r14d
mov r12d, r9d
cmovs r14d, r9d
mov edx, dword [rsp + 0x34]
cmp r9d, r10d
jne 0x1400659e0
movsxd r8, dword [rsp + 0x30]
mov r13d, r10d
mov ebx, dword [rsp + 0x58]
mov rdi, r8
mov r15, qword [rsp + 0x70]
mov esi, r10d
mov dword [rsp + 0x3c], r14d
mov r14, qword [rsp + 0x40]
mov qword [rsp + 0xa8], r8
movsxd rax, r10d
nop
cmp rax, qword [rsp + 0x90]
lea r11, [rax + 1]
mov r9d, ecx
cmovge r11, rdi
inc esi
cmp rax, qword [rsp + 0x90]
cmovge esi, r8d
mov edx, dword [r14 + r11*8 + 4]
sub r9d, edx
sub edx, ecx
cmovns r9d, edx
cmp r9d, 5
jle 0x140065ad5
mov r8d, dword [r14 + r11*8]
lea eax, [r9 + r9*4]
mov edx, ebp
sub edx, r8d
sub r8d, ebp
cmovns edx, r8d
shl eax, 2
cmp edx, eax
jle 0x140065af6
mov r8d, dword [rsp + 0x30]
movzx eax, byte [r11 + r15]
mov r13d, esi
and al, 3
cmp al, 1
jne 0x140065aee
test r12d, r12d
mov dword [rsp + 0x3c], esi
cmovs r12d, esi
mov rax, r11
cmp esi, r10d
jne 0x140065a80
mov r9, qword [rsp + 0x88]
mov edi, dword [rsp + 0x5c]
mov dword [rsp + 0x60], esi
movsxd r15, r10d
movzx r9d, word [r9 + 4]
mov word [rsp + 0x28], r9w
test r9b, 0x10
je 0x140065e58
mov rax, qword [rsp + 0x98]
mov r9, qword [rsp + 0x40]
movsxd r11, r13d
mov qword [rsp + 0x68], r11
mov esi, dword [rax + 0x38]
mov eax, 0x51eb851f
mul esi
mov r8d, dword [r14 + r11*8]
mov eax, r8d
movsxd r14, dword [rsp + 0x38]
shr edx, 3
mov dword [rsp + 0x54], edx
mov r9d, dword [r9 + r14*8]
sub eax, r9d
sub r9d, r8d
test eax, eax
cmovns r9d, eax
cmp r9d, edx
jge 0x140065e16
mov eax, dword [rsp + 0x34]
mov edx, r13d
sub eax, dword [rsp + 0x30]
sub edx, r14d
add edx, 2
cmp edx, eax
jg 0x140065e16
mov rdi, qword [rsp + 0xa8]
mov r8d, r10d
mov r14, qword [rsp + 0x90]
mov rdx, r15
mov rbx, qword [rsp + 0x40]
mov r11d, dword [rsp + 0x34]
shr esi, 2
xor eax, eax
mov dword [rsp + 0xa0], esi
mov r9d, eax
mov dword [rsp + 0x48], eax
nop word [rax + rax]
cmp rdx, rdi
lea rax, [rdx - 1]
cmovle rax, r14
dec r8d
cmp rdx, rdi
cmovle r8d, r11d
mov esi, dword [rbx + rax*8]
cmp esi, ebp
jne 0x140065be4
mov rdx, rax
cmp rax, r15
jne 0x140065bc0
mov ebx, dword [rsp + 0x58]
mov edi, dword [rsp + 0x5c]
mov r11, qword [rsp + 0x68]
cmp r8d, r10d
je 0x140065ee3
cmp esi, ebp
mov dword [rsp + 0x50], r13d
mov esi, r13d
mov qword [rsp + 0x68], r11
setl byte [rsp + 0x21]
mov r8, r11
xor r15b, r15b
mov r10, qword [rsp + 0x70]
test r15b, r15b
jne 0x140065c45
movzx eax, byte [r11 + r10]
mov r9d, 0xffffffff
and al, 3
mov dword [rsp + 0x50], esi
cmp al, 1
mov qword [rsp + 0x68], r11
mov r8, r11
mov r15b, 1
cmove r9d, esi
mov dword [rsp + 0x48], r9d
cmp r11, qword [rsp + 0x90]
lea r14, [r11 + 1]
mov rbp, qword [rsp + 0x40]
mov edx, ecx
cmovge r14, qword [rsp + 0xa8]
inc esi
cmp r11, qword [rsp + 0x90]
cmovge esi, dword [rsp + 0x30]
mov r11d, dword [rbp + r8*8 + 4]
mov eax, r11d
sub eax, ecx
sub edx, r11d
cmovns eax, edx
cmp eax, dword [rsp + 0xa0]
jle 0x140065c91
xor r15b, r15b
jmp 0x140065d25
mov edx, dword [rbp + r14*8 + 4]
sub edx, r11d
sub r11d, dword [rbp + r14*8 + 4]
test edx, edx
cmovns r11d, edx
lea ebp, [r11 + r11*4]
shl ebp, 2
cmp r11d, 5
jle 0x140065cdb
mov rdx, qword [rsp + 0x40]
mov r8d, dword [rdx + r8*8]
mov eax, dword [rdx + r14*8]
mov edx, eax
sub edx, r8d
sub r8d, eax
test edx, edx
cmovns r8d, edx
cmp r8d, ebp
mov r8, qword [rsp + 0x68]
jg 0x140065cdb
xor r15b, r15b
jmp 0x140065d25
movzx eax, byte [r14 + r10]
and al, 3
cmp al, 1
jne 0x140065cf1
test r9d, r9d
mov dword [rsp + 0x48], esi
cmovs r9d, esi
mov rax, qword [rsp + 0x40]
mov edx, dword [rax + r8*8]
mov r10d, dword [rax + r14*8]
mov r8d, r10d
sub r8d, edx
cmp edx, r10d
setl al
cmp al, byte [rsp + 0x21]
jne 0x140065d20
sub edx, r10d
test r8d, r8d
cmovns edx, r8d
cmp edx, dword [rsp + 0x54]
jge 0x140065d37
mov r8, qword [rsp + 0x68]
cmp esi, dword [rsp + 0x38]
je 0x140065e11
mov r11, r14
jmp 0x140065c14
movsxd rax, dword [rsp + 0x50]
lea r11d, [r11 + r11*4]
mov rdx, qword [rsp + 0x40]
mov ecx, dword [rdx + rax*8 + 4]
lea r15, [rdx + rax*8]
movsxd rax, dword [rsp + 0x60]
shl r11d, 2
lea r12, [rdx + rax*8]
nop word [rax + rax]
cmp r14, qword [rsp + 0x90]
lea r10, [r14 + 1]
mov r14d, dword [rsp + 0x30]
lea r13d, [rsi + 1]
cmovge r10, qword [rsp + 0xa8]
cmovge r13d, r14d
mov esi, r13d
mov eax, dword [rdx + r10*8 + 4]
mov edx, ecx
sub edx, eax
mov r8d, eax
sub r8d, ecx
cmovns edx, r8d
cmp edx, 5
jle 0x140065db6
mov r8d, dword [r15]
mov edx, dword [r12]
sub edx, r8d
sub r8d, dword [r12]
test edx, edx
cmovns r8d, edx
cmp r8d, r11d
jle 0x140065dec
mov rax, qword [rsp + 0x70]
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
jne 0x140065dcd
test r9d, r9d
cmovs r9d, r13d
mov eax, r13d
cmp r13d, dword [rsp + 0x38]
je 0x140065e07
mov rdx, qword [rsp + 0x40]
mov r14, r10
mov dword [rsp + 0x48], r13d
mov r11d, ebp
jmp 0x140065d60
mov eax, dword [rsp + 0x48]
cmp r13d, r14d
jle 0x140065e02
mov r14d, dword [rsp + 0x50]
dec r13d
mov r12d, r9d
jmp 0x140065e1a
mov r13d, dword [rsp + 0x34]
mov r14d, dword [rsp + 0x50]
mov r12d, r9d
jmp 0x140065e1a
mov r14d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x3c]
movzx r9d, word [rsp + 0x28]
test r12d, r12d
js 0x140065e63
test eax, eax
js 0x140065e63
mov r8, qword [rsp + 0x40]
cdqe
mov edx, dword [r8 + rax*8]
movsxd rax, r12d
mov r8d, dword [r8 + rax*8]
mov eax, edx
sub eax, r8d
sub r8d, edx
test eax, eax
cmovns r8d, eax
cmp r8d, dword [rsp + 0xa4]
jle 0x140065e63
xor r14b, r14b
jmp 0x140065e96
mov eax, dword [rsp + 0x3c]
mov r14d, dword [rsp + 0x38]
jmp 0x140065e20
mov r8, qword [rsp + 0x70]
movsxd rax, r14d
movzx edx, byte [rax + r8]
and dl, 3
cmp dl, 1
jne 0x140065e8d
movsxd rax, r13d
movzx edx, byte [rax + r8]
and dl, 3
cmp dl, 1
jne 0x140065e8d
xor r14b, r14b
jmp 0x140065e96
mov r14b, 1
test r9b, 4
jne 0x140065ee3
mov r13d, dword [rsp + 0x4c]
mov r12, qword [rsp + 0x88]
mov eax, dword [rsp + 0x2c]
xor esi, esi
test byte [r12 + 4], 1
je 0x140065ecc
cmp ecx, r13d
jle 0x140065f4a
mov r13d, ecx
mov dword [rsp + 0x4c], ecx
movzx ebp, r14b
mov byte [rsp + 0x20], r14b
jmp 0x140065efb
cmp ecx, r13d
jge 0x140065f4a
mov r13d, ecx
mov dword [rsp + 0x4c], ecx
movzx ebp, r14b
mov byte [rsp + 0x20], r14b
jmp 0x140065efb
mov r13d, dword [rsp + 0x4c]
xor esi, esi
mov r12, qword [rsp + 0x88]
movzx ebp, byte [rsp + 0x20]
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x24]
inc ecx
mov dword [rsp + 0x24], ecx
cmp ecx, dword [rsp + 0x80]
jb 0x140065810
mov rcx, qword [rsp + 0xc0]
mov r14d, dword [rsp + 0x7c]
mov r15d, dword [rsp + 0x78]
lea eax, [r13 + 0x7fffffff]
cmp eax, 0xfffffffd
ja 0x140065f64
test bpl, bpl
je 0x140065f51
mov eax, r15d
inc r15d
mov dword [rsp + 0x78], r15d
mov dword [rsp + rax*4 + 0x120], r13d
jmp 0x140065f64
movzx ebp, byte [rsp + 0x20]
jmp 0x140065efb
mov eax, r14d
inc r14d
mov dword [rsp + 0x7c], r14d
mov dword [rsp + rax*4 + 0x1f0], r13d
movzx eax, byte [rcx]
mov r10, qword [rsp + 0x98]
test al, al
jne 0x140065790
mov eax, r15d
test r14d, r14d
jne 0x140065f87
test eax, eax
je 0x140066126
mov r13d, 1
mov r10d, r13d
cmp r15d, r13d
jbe 0x140065fe0
mov edx, r10d
test r10d, r10d
je 0x140065fd8
mov eax, r10d
lea rcx, [rsp + 0x120]
lea rcx, [rcx + rax*4]
nop dword [rax]
mov r8d, dword [rcx]
lea eax, [rdx - 1]
mov r9d, dword [rsp + rax*4 + 0x120]
mov edx, eax
cmp r8d, r9d
jge 0x140065fd8
mov dword [rcx], r9d
sub rcx, 4
mov dword [rsp + rax*4 + 0x120], r8d
test eax, eax
jne 0x140065fb0
inc r10d
cmp r10d, r15d
jb 0x140065f95
mov r10d, r13d
cmp r14d, r13d
jbe 0x140066030
mov edx, r10d
test r10d, r10d
je 0x140066028
mov eax, r10d
lea rcx, [rsp + 0x1f0]
lea rcx, [rcx + rax*4]
nop
mov r8d, dword [rcx]
lea eax, [rdx - 1]
mov r9d, dword [rsp + rax*4 + 0x1f0]
mov edx, eax
cmp r8d, r9d
jge 0x140066028
mov dword [rcx], r9d
sub rcx, 4
mov dword [rsp + rax*4 + 0x1f0], r8d
test eax, eax
jne 0x140066000
inc r10d
cmp r10d, r14d
jb 0x140065fe8
mov r11, qword [rsp + 0xb0]
mov ecx, dword [r11 + 0xd8]
lea r8, [rcx*8 + 0x37]
add r8, rcx
lea eax, [rcx + 1]
mov dword [r11 + 0xd8], eax
lea r8, [r11 + r8*4]
test r14d, r14d
jne 0x140066073
mov eax, r15d
shr rax, 1
mov ecx, dword [rsp + rax*4 + 0x120]
mov dword [r8 + 0xc], ecx
mov dword [r8], ecx
jmp 0x1400660a2
mov eax, r14d
shr rax, 1
mov ecx, dword [rsp + rax*4 + 0x1f0]
test r15d, r15d
jne 0x14006608e
mov dword [r8 + 0xc], ecx
mov dword [r8], ecx
jmp 0x1400660a2
mov eax, r15d
shr rax, 1
mov dword [r8], ecx
mov eax, dword [rsp + rax*4 + 0x120]
mov dword [r8 + 0xc], eax
mov r9d, dword [r8 + 0xc]
mov edx, dword [r8]
cmp r9d, edx
je 0x1400660d5
test byte [r12 + 4], 3
mov ecx, esi
mov eax, esi
setne cl
cmp r9d, edx
setg al
cmp eax, ecx
je 0x1400660d5
lea eax, [r9 + rdx]
cdq
sub eax, edx
sar eax, 1
mov dword [r8 + 0xc], eax
mov dword [r8], eax
mov dword [r8 + 0x18], ebx
mov eax, esi
mov dword [r8 + 0x1c], edi
mov dword [r8 + 0x20], esi
test byte [r12 + 4], r13b
je 0x1400660f7
mov dword [r8 + 0x20], 2
mov eax, 2
test byte [r12 + 4], 2
je 0x140066106
or eax, 4
mov dword [r8 + 0x20], eax
test byte [r12 + 4], 4
je 0x140066115
or eax, 8
mov dword [r8 + 0x20], eax
test byte [r12 + 4], 8
je 0x140066134
or eax, 0x10
mov dword [r8 + 0x20], eax
jmp 0x140066134
mov r11, qword [rsp + 0xb0]
mov r13d, 1
mov eax, dword [r12 + 8]
lea rdx, [0x1400c1a10]
mov r10, qword [rsp + 0x98]
add r12, 8
mov qword [rsp + 0x88], r12
cmp eax, 0x159b
jne 0x140065761
mov r15, qword [rsp + 0x2d0]
mov r14, qword [rsp + 0x2d8]
mov rdi, qword [rsp + 0x2e8]
mov rbp, qword [rsp + 0x320]
mov r9, qword [rsp + 0xc8]
mov ebx, dword [r11 + 0xd8]
mov r12, qword [rsp + 0x2e0]
test ebx, ebx
je 0x1400662a7
lea rax, [rsp + 0xd0]
mov edx, ebx
lea rcx, [r11 + 0xdc]
nop
mov qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x24
sub rdx, 1
jne 0x1400661b0
cmp ebx, 1
jbe 0x14006624c
nop word [rax + rax]
mov eax, r13d
lea rdx, [rsp + 0xd0]
mov r8d, r13d
lea rdx, [rdx + rax*8]
nop dword [rax]
nop word [rax + rax]
lea eax, [r8 - 1]
lea r11, [rsp + 0xd0]
mov r8d, eax
mov rcx, qword [r11 + rax*8]
lea r11, [r11 + rax*8]
test byte [rcx + 0x20], 6
je 0x140066212
mov r9d, dword [rcx]
jmp 0x140066216
mov r9d, dword [rcx + 0xc]
mov rax, qword [rdx]
test byte [rax + 0x20], 6
je 0x140066224
mov r10d, dword [rax]
jmp 0x140066228
mov r10d, dword [rax + 0xc]
cmp r10d, r9d
jge 0x14006623c
mov qword [rdx], rcx
sub rdx, 8
mov qword [r11], rax
test r8d, r8d
jne 0x1400661f0
inc r13d
cmp r13d, ebx
jb 0x1400661d0
mov r11, qword [rsp + 0xb0]
lea eax, [rbx - 1]
test eax, eax
je 0x1400662a3
nop dword [rax]
nop word [rax + rax]
mov eax, esi
mov rcx, qword [rsp + rax*8 + 0xd0]
test byte [rcx + 0x20], 6
je 0x140066274
add rcx, 0xc
lea r8d, [rsi + 1]
mov rdx, qword [rsp + r8*8 + 0xd0]
test byte [rdx + 0x20], 6
je 0x14006628a
add rdx, 0xc
mov eax, dword [rdx]
cmp dword [rcx], eax
jle 0x140066292
mov dword [rcx], eax
mov eax, dword [r11 + 0xd8]
mov esi, r8d
dec eax
cmp r8d, eax
jb 0x140066260
xor eax, eax
jmp 0x1400662e3
mov rdx, qword [r10 + 0x30]
cmp dword [rdx + 8], 0
mov r8, qword [rdx + 0x10]
jbe 0x1400662e0
nop word [rax + rax]
mov eax, esi
movzx ecx, word [r8 + rax*2]
and ecx, 0x3fff
cmp ecx, dword [r9]
jne 0x1400662d9
mov word [r8 + rax*2], 0x42
inc esi
cmp esi, dword [rdx + 8]
jb 0x1400662c0
mov eax, r13d
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.1400bf1d0
add rsp, 0x2f0
pop r13
pop rsi
pop rbx
ret