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

Disassembly:
push rbx
push r14
push r15
sub rsp, 0x2f0
mov rax, qword [0x14143b040]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov r9, qword [rcx]
lea r11, [rcx + 0x2688]
mov r10, rcx
mov qword [rsp + 0x90], rcx
lea rcx, [0x1403fe700]
mov qword [rsp + 0x2d8], r12
mov qword [rsp + 0xb0], rdx
xor r14d, r14d
movsxd rax, dword [r9 + 0xc]
mov r15d, 1
mov qword [rsp + 0xa8], r11
mov qword [rsp + 0xc0], r9
lea r12, [rcx + rax*8]
mov ecx, dword [r10 + 0x38]
mov eax, 0x24924925
mov qword [rsp + 0x68], r12
mul ecx
mov eax, dword [r12]
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 3
mov dword [rsp + 0x98], ecx
cmp eax, 0x159b
je 0x14039c59b
mov qword [rsp + 0x320], rbp
lea rdx, [0x1403fd160]
mov qword [rsp + 0x2e8], rsi
mov qword [rsp + 0x2e0], rdi
mov qword [rsp + 0x2d0], r13
movsxd rcx, eax
mov r13d, r14d
add rcx, rdx
mov dword [rsp + 0x74], r14d
mov edi, r14d
mov dword [rsp + 0x70], r14d
mov esi, r14d
mov dword [rsp + 0x60], r14d
mov ebp, r14d
mov dword [rsp + 0x4c], r14d
movzx eax, byte [rcx]
test al, al
je 0x14039c55a
xor bl, bl
mov byte [rsp + 0x20], bl
cmp al, 0x20
jne 0x14039bc18
nop dword [rax]
inc rcx
cmp byte [rcx], 0x20
je 0x14039bc10
lea r9, [rsp + 0x80]
mov rdx, r10
lea r8, [rsp + 0x28]
vzeroupper
call fcn.14039d7e0
mov rcx, rax
mov qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x80]
test eax, eax
je 0x14039c36d
test byte [r12 + 4], 1
mov edx, 0x7fffffff
mov r15d, 0x80000000
mov dword [rsp + 0x24], r14d
cmove r15d, edx
test eax, eax
je 0x14039c325
mov eax, dword [rsp + 0x28]
mov ecx, r14d
mov dword [rsp + 0x40], r15d
nop dword [rax + rax]
xor dil, dil
mov byte [rsp + 0x38], dil
test eax, eax
je 0x14039c301
mov r13, qword [rsp + 0xb0]
mov r8d, 1
mov rcx, r13
mov edx, eax
vzeroupper
call fcn.14038cf20
mov rcx, qword [r13 + 0x78]
vmovsd xmm0, qword [rcx + 0xb8]
vmovups ymm1, ymmword [rcx + 0x98]
vmovsd qword [rsp + 0xf0], xmm0
test eax, eax
jne 0x14039c2f9
vmovq rax, xmm1
shr rax, 0x10
cmp ax, 2
jle 0x14039c2f9
mov edx, 0xffffffff
mov r9d, r14d
vmovd eax, xmm1
mov rbx, r14
mov dword [rsp + 0x2c], edx
movsx r14, ax
mov r10d, edx
mov r13d, edx
mov r8d, edx
test r14, r14
jle 0x14039c2a3
vextractf128 xmm0, ymm1, 1
vpextrq rdi, xmm1, 1
vpextrq r15, xmm0, 1
mov qword [rsp + 0x58], rdi
lea r11d, [r8 + 1]
movsx r8d, word [r15 + rbx*2]
cmp r8d, r11d
jle 0x14039bdc9
movsxd rax, r11d
lea rcx, [rdi + 4]
shl rax, 3
mov edx, r11d
add rcx, rax
test byte [r12 + 4], 3
jne 0x14039bd80
nop
test r10d, r10d
js 0x14039bd64
mov eax, dword [rcx]
cmp eax, r9d
jl 0x14039bd64
cmp esi, eax
jg 0x14039bd71
mov esi, eax
jmp 0x14039bd71
mov r9d, dword [rcx]
mov r10d, edx
cmp ebp, r9d
cmovge ebp, r9d
inc edx
add rcx, 8
cmp edx, r8d
jle 0x14039bd50
jmp 0x14039bdac
test r10d, r10d
js 0x14039bd94
mov eax, dword [rcx]
cmp eax, r9d
jg 0x14039bd94
cmp ebp, eax
jl 0x14039bda1
mov ebp, eax
jmp 0x14039bda1
mov r9d, dword [rcx]
mov r10d, edx
cmp esi, r9d
cmovle esi, r9d
inc edx
add rcx, 8
cmp edx, r8d
jle 0x14039bd80
mov dword [rsp + 0x60], esi
mov dword [rsp + 0x4c], ebp
cmp r10d, r13d
jle 0x14039bdc5
mov edx, r11d
mov r13d, r8d
mov dword [rsp + 0x2c], edx
jmp 0x14039bdc9
mov edx, dword [rsp + 0x2c]
inc rbx
cmp rbx, r14
jl 0x14039bd23
movzx edi, byte [rsp + 0x38]
mov dword [rsp + 0x44], r13d
test r10d, r10d
js 0x14039c29e
mov r12, qword [rsp + 0x58]
mov r11d, 0xffffffff
mov ebx, dword [rsp + 0x44]
mov ecx, r10d
movsxd r8, r10d
vextractf128 xmm0, ymm1, 1
vmovq r15, xmm0
movsxd r13, r13d
mov edi, dword [r12 + r8*8]
mov dword [rsp + 0x34], r10d
movzx eax, byte [r15 + r8]
and al, 3
mov qword [rsp + 0x88], r15
cmp al, 1
mov qword [rsp + 0xa0], r13
cmove r11d, r10d
mov dword [rsp + 0x30], r11d
mov r14d, r11d
mov dword [rsp + 0x3c], r11d
nop
cmp ecx, edx
jle 0x14039be4b
dec ecx
dec r8
jmp 0x14039be50
mov ecx, ebx
mov r8, r13
mov edx, dword [r12 + r8*8 + 4]
mov eax, edx
sub eax, r9d
jns 0x14039be61
mov eax, r9d
sub eax, edx
cmp eax, 5
jle 0x14039be85
mov r11d, dword [r12 + r8*8]
mov edx, r11d
sub edx, edi
jns 0x14039be76
mov edx, edi
sub edx, r11d
mov r11d, dword [rsp + 0x30]
lea eax, [rax + rax*4]
shl eax, 2
cmp edx, eax
jle 0x14039beb0
movzx eax, byte [r8 + r15]
and al, 3
mov dword [rsp + 0x34], ecx
cmp al, 1
jne 0x14039bea7
test r14d, r14d
mov dword [rsp + 0x30], ecx
mov r11d, ecx
cmovs r14d, ecx
mov dword [rsp + 0x3c], r14d
mov edx, dword [rsp + 0x2c]
cmp ecx, r10d
jne 0x14039be40
movsxd rsi, dword [rsp + 0x2c]
mov ebx, r10d
mov rbp, qword [rsp + 0x58]
mov r14, rsi
mov r12d, ebx
movsxd rdx, r10d
cmp rdx, r13
jge 0x14039bed2
inc ebx
inc rdx
jmp 0x14039bed7
mov ebx, esi
mov rdx, r14
mov ecx, dword [rbp + rdx*8 + 4]
mov eax, ecx
sub eax, r9d
jns 0x14039bee7
mov eax, r9d
sub eax, ecx
cmp eax, 5
jle 0x14039bf07
mov r8d, dword [rbp + rdx*8]
mov ecx, r8d
sub ecx, edi
jns 0x14039befd
mov ecx, edi
sub ecx, r8d
lea eax, [rax + rax*4]
shl eax, 2
cmp ecx, eax
jle 0x14039bf25
movzx eax, byte [rdx + r15]
mov r12d, ebx
and al, 3
cmp al, 1
jne 0x14039bf20
test r11d, r11d
mov dword [rsp + 0x3c], ebx
cmovs r11d, ebx
cmp ebx, r10d
jne 0x14039bec6
mov rax, qword [rsp + 0x68]
mov esi, dword [rsp + 0x60]
mov ebp, dword [rsp + 0x4c]
mov dword [rsp + 0x54], r12d
test byte [rax + 4], 0x10
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x50], ebx
je 0x14039c25c
mov rax, qword [rsp + 0x90]
mov r8, qword [rsp + 0x58]
movsxd rbx, dword [rsp + 0x34]
mov r11d, dword [rax + 0x38]
mov eax, 0x51eb851f
mul r11d
movsxd rax, r12d
shr edx, 3
mov dword [rsp + 0x48], 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 0x14039c125
mov eax, dword [rsp + 0x44]
mov ecx, r12d
sub eax, dword [rsp + 0x2c]
sub ecx, ebx
add ecx, 2
cmp ecx, eax
jg 0x14039c125
mov r15, qword [rsp + 0xa0]
mov ecx, r10d
mov r12, qword [rsp + 0x58]
mov ebp, dword [rsp + 0x44]
shr r11d, 2
xor r13d, r13d
movsxd r8, r10d
mov ebx, r13d
mov dword [rsp + 0x78], r11d
mov rax, r8
cmp rax, r14
jle 0x14039bfde
dec ecx
dec rax
jmp 0x14039bfe3
mov ecx, ebp
mov rax, r15
mov edx, dword [r12 + rax*8]
cmp edx, edi
jne 0x14039bff0
cmp rax, r8
jne 0x14039bfd2
mov ebp, dword [rsp + 0x4c]
cmp ecx, r10d
je 0x14039c347
movsxd rax, dword [rsp + 0x54]
cmp edx, edi
mov dword [rsp + 0x7c], eax
mov r8d, eax
setl r12b
mov r10, rax
xor r14b, r14b
mov r15, rax
test r14b, r14b
jne 0x14039c045
mov rax, qword [rsp + 0x88]
mov ebx, 0xffffffff
mov dword [rsp + 0x7c], r8d
mov r15, r10
mov r14b, 1
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
cmove ebx, r8d
mov r13d, ebx
cmp r10, qword [rsp + 0xa0]
jge 0x14039c057
inc r8d
inc r10
jmp 0x14039c062
movsxd rcx, dword [rsp + 0x2c]
mov r8d, ecx
mov r10, rcx
mov rdx, qword [rsp + 0x58]
mov eax, r9d
mov edi, dword [rdx + r15*8 + 4]
sub eax, edi
jns 0x14039c078
mov eax, edi
sub eax, r9d
cmp eax, r11d
jle 0x14039c085
xor r14b, r14b
jmp 0x14039c10d
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 0x14039c0c2
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 0x14039c0bd
xor r14b, r14b
jmp 0x14039c10d
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x88]
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
jne 0x14039c0de
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 0x14039c108
sub ecx, r11d
test edx, edx
cmovns ecx, edx
cmp ecx, dword [rsp + 0x48]
jge 0x14039c17a
mov r11d, dword [rsp + 0x78]
cmp r8d, dword [rsp + 0x34]
jne 0x14039c018
mov r15, qword [rsp + 0x88]
mov r12d, dword [rsp + 0x54]
mov ebx, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x3c]
test ebx, ebx
js 0x14039c264
test r13d, r13d
js 0x14039c264
mov rdx, qword [rsp + 0x58]
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 + 0x98]
jle 0x14039c264
mov r12, qword [rsp + 0x68]
xor dil, dil
jmp 0x14039c29e
mov r12, qword [rsp + 0x58]
movsxd r15, dword [rsp + 0x7c]
movsxd rax, dword [rsp + 0x50]
lea r11, [r12 + r15*8]
mov r9d, dword [r11 + 4]
lea r14, [r12 + rax*8]
cmp r10, qword [rsp + 0xa0]
jge 0x14039c1a7
inc r8d
inc r10
jmp 0x14039c1b2
movsxd rcx, dword [rsp + 0x2c]
mov r8d, ecx
mov r10, rcx
mov ecx, dword [r12 + r10*8 + 4]
mov eax, ecx
sub eax, r9d
jns 0x14039c1c3
mov eax, r9d
sub eax, ecx
cmp eax, 5
jle 0x14039c1e2
mov edx, dword [r11]
lea eax, [rdi + rdi*4]
mov ecx, dword [r14]
sub ecx, edx
sub edx, dword [r14]
test ecx, ecx
cmovns edx, ecx
shl eax, 2
cmp edx, eax
jle 0x14039c21d
mov rax, qword [rsp + 0x88]
mov r13d, r8d
movzx eax, byte [r10 + rax]
and al, 3
cmp al, 1
jne 0x14039c1fe
test ebx, ebx
cmovs ebx, r8d
cmp r8d, dword [rsp + 0x34]
jne 0x14039c195
mov r9d, dword [r12 + r15*8 + 4]
mov r10d, r15d
mov r15, qword [rsp + 0x88]
mov r12d, r8d
jmp 0x14039c133
cmp r8d, dword [rsp + 0x2c]
jle 0x14039c23f
mov r9d, dword [r12 + r15*8 + 4]
dec r8d
mov r10d, r15d
mov r12d, r8d
mov r15, qword [rsp + 0x88]
jmp 0x14039c133
mov r9d, dword [r12 + r15*8 + 4]
mov r10d, r15d
mov r8d, dword [rsp + 0x44]
mov r12d, r8d
mov r15, qword [rsp + 0x88]
jmp 0x14039c133
mov ebx, r11d
jmp 0x14039c129
movsxd rax, r10d
movzx ecx, byte [rax + r15]
and cl, 3
cmp cl, 1
jne 0x14039c28e
movsxd rax, r12d
movzx ecx, byte [rax + r15]
and cl, 3
cmp cl, 1
jne 0x14039c28e
mov r12, qword [rsp + 0x68]
xor dil, dil
jmp 0x14039c29e
mov r12, qword [rsp + 0x68]
mov dil, 1
test byte [r12 + 4], 4
jne 0x14039c2ec
mov r15d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x24]
xor r14d, r14d
test byte [r12 + 4], 1
mov eax, dword [rsp + 0x28]
je 0x14039c2d1
cmp r9d, r15d
jle 0x14039c353
movzx ebx, dil
mov dword [rsp + 0x40], r9d
mov byte [rsp + 0x20], bl
mov r15d, r9d
jmp 0x14039c301
cmp r9d, r15d
jge 0x14039c353
movzx ebx, dil
mov dword [rsp + 0x40], r9d
mov byte [rsp + 0x20], bl
mov r15d, r9d
jmp 0x14039c301
mov r15d, dword [rsp + 0x40]
movzx ebx, byte [rsp + 0x20]
xor r14d, r14d
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x24]
inc ecx
mov dword [rsp + 0x24], ecx
cmp ecx, dword [rsp + 0x80]
jb 0x14039bc80
mov rcx, qword [rsp + 0xb8]
mov edi, dword [rsp + 0x70]
mov r13d, dword [rsp + 0x74]
lea eax, [r15 + 0x7fffffff]
cmp eax, 0xfffffffd
ja 0x14039c36d
test bl, bl
je 0x14039c35a
mov eax, edi
inc edi
mov dword [rsp + 0x70], edi
mov dword [rsp + rax*4 + 0x120], r15d
jmp 0x14039c36d
mov r15d, dword [rsp + 0x40]
mov r12, qword [rsp + 0x68]
jmp 0x14039c2f1
movzx ebx, byte [rsp + 0x20]
jmp 0x14039c301
mov eax, r13d
inc r13d
mov dword [rsp + 0x74], r13d
mov dword [rsp + rax*4 + 0x1f0], r15d
movzx eax, byte [rcx]
mov r10, qword [rsp + 0x90]
test al, al
jne 0x14039bc03
mov eax, edi
test r13d, r13d
jne 0x14039c38f
test eax, eax
je 0x14039c545
mov r15d, 1
mov r10d, r15d
cmp edi, r15d
jbe 0x14039c3f0
nop dword [rax]
mov edx, r10d
test r10d, r10d
je 0x14039c3e8
mov eax, r10d
lea rcx, [rsp + 0x120]
lea rcx, [rcx + rax*4]
nop word [rax + rax]
mov r8d, dword [rcx]
lea eax, [rdx - 1]
mov r9d, dword [rsp + rax*4 + 0x120]
mov edx, eax
cmp r8d, r9d
jge 0x14039c3e8
mov dword [rcx], r9d
sub rcx, 4
mov dword [rsp + rax*4 + 0x120], r8d
test eax, eax
jne 0x14039c3c0
inc r10d
cmp r10d, edi
jb 0x14039c3a0
mov r10d, r15d
cmp r13d, r15d
jbe 0x14039c440
mov edx, r10d
test r10d, r10d
je 0x14039c438
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 0x14039c438
mov dword [rcx], r9d
sub rcx, 4
mov dword [rsp + rax*4 + 0x1f0], r8d
test eax, eax
jne 0x14039c410
inc r10d
cmp r10d, r13d
jb 0x14039c3f8
mov r11, qword [rsp + 0xa8]
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 r13d, r13d
jne 0x14039c482
mov eax, edi
shr rax, 1
mov ecx, dword [rsp + rax*4 + 0x120]
mov dword [r8 + 0xc], ecx
mov dword [r8], ecx
jmp 0x14039c4af
mov eax, r13d
shr rax, 1
mov ecx, dword [rsp + rax*4 + 0x1f0]
test edi, edi
jne 0x14039c49c
mov dword [r8 + 0xc], ecx
mov dword [r8], ecx
jmp 0x14039c4af
mov eax, edi
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 0x14039c4e4
test byte [r12 + 4], 3
mov ecx, r14d
mov eax, r14d
setne cl
cmp r9d, edx
setg al
cmp eax, ecx
je 0x14039c4e4
lea eax, [r9 + rdx]
cdq
sub eax, edx
sar eax, 1
mov dword [r8 + 0xc], eax
mov dword [r8], eax
mov dword [r8 + 0x18], esi
mov eax, r14d
mov dword [r8 + 0x1c], ebp
mov dword [r8 + 0x20], r14d
test byte [r12 + 4], r15b
je 0x14039c507
mov dword [r8 + 0x20], 2
mov eax, 2
test byte [r12 + 4], 2
je 0x14039c516
or eax, 4
mov dword [r8 + 0x20], eax
test byte [r12 + 4], 4
je 0x14039c525
or eax, 8
mov dword [r8 + 0x20], eax
test byte [r12 + 4], 8
lea rdx, [0x1403fd160]
mov r10, qword [rsp + 0x90]
je 0x14039c55a
or eax, 0x10
mov dword [r8 + 0x20], eax
jmp 0x14039c55a
mov r11, qword [rsp + 0xa8]
lea rdx, [0x1403fd160]
mov r15d, 1
mov eax, dword [r12 + 8]
add r12, 8
mov qword [rsp + 0x68], r12
cmp eax, 0x159b
jne 0x14039bbd2
mov r13, qword [rsp + 0x2d0]
mov rdi, qword [rsp + 0x2e0]
mov rsi, qword [rsp + 0x2e8]
mov rbp, qword [rsp + 0x320]
mov r9, qword [rsp + 0xc0]
mov ebx, dword [r11 + 0xd8]
mov r12, qword [rsp + 0x2d8]
test ebx, ebx
je 0x14039c6c8
lea rax, [rsp + 0xd0]
mov edx, ebx
lea rcx, [r11 + 0xdc]
nop dword [rax]
nop word [rax + rax]
mov qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x24
sub rdx, 1
jne 0x14039c5d0
cmp ebx, 1
jbe 0x14039c66c
nop word [rax + rax]
mov eax, r15d
lea rdx, [rsp + 0xd0]
mov r8d, r15d
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 0x14039c632
mov r9d, dword [rcx]
jmp 0x14039c636
mov r9d, dword [rcx + 0xc]
mov rax, qword [rdx]
test byte [rax + 0x20], 6
je 0x14039c644
mov r10d, dword [rax]
jmp 0x14039c648
mov r10d, dword [rax + 0xc]
cmp r10d, r9d
jge 0x14039c65c
mov qword [rdx], rcx
sub rdx, 8
mov qword [r11], rax
test r8d, r8d
jne 0x14039c610
inc r15d
cmp r15d, ebx
jb 0x14039c5f0
mov r11, qword [rsp + 0xa8]
cmp dword [r11 + 0xd8], 1
je 0x14039c6c4
nop word [rax + rax]
mov eax, r14d
mov rcx, qword [rsp + rax*8 + 0xd0]
test byte [rcx + 0x20], 6
je 0x14039c695
add rcx, 0xc
lea r8d, [r14 + 1]
mov rdx, qword [rsp + r8*8 + 0xd0]
test byte [rdx + 0x20], 6
je 0x14039c6ab
add rdx, 0xc
mov eax, dword [rdx]
cmp dword [rcx], eax
jle 0x14039c6b3
mov dword [rcx], eax
mov eax, dword [r11 + 0xd8]
mov r14d, r8d
dec eax
cmp r8d, eax
jb 0x14039c680
xor eax, eax
jmp 0x14039c706
mov rdx, qword [r10 + 0x30]
cmp dword [rdx + 8], 0
mov r8, qword [rdx + 0x10]
jbe 0x14039c703
nop word [rax + rax]
mov eax, r14d
movzx ecx, word [r8 + rax*2]
and ecx, 0x3fff
cmp ecx, dword [r9]
jne 0x14039c6fa
mov word [r8 + rax*2], 0x42
inc r14d
cmp r14d, dword [rdx + 8]
jb 0x14039c6e0
mov eax, r15d
vzeroupper
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.1403f4b10
add rsp, 0x2f0
pop r15
pop r14
pop rbx
ret