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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x50
mov rbp, rcx
mov rbx, rdx
mov rcx, qword [rcx + 8]
mov edx, 0x1f0
mov r15, r9
mov r12, r8
mov rax, qword [rcx]
call qword [rax + 8]
mov r14, rax
test rax, rax
je 0x140066e2d
mov rdx, qword [rbp + 0x3e0]
mov qword [rsp + 0x88], rdi
xor edi, edi
mov qword [rsp + 0x80], rdi
test rdx, rdx
je 0x1400665cd
mov r8d, dword [rbp + 0x3e8]
test r8d, r8d
je 0x1400665cd
mov eax, dword [rbx + 4]
mov ecx, edi
cmp dword [rdx], eax
je 0x14006678a
inc ecx
add rdx, 0x198
cmp ecx, r8d
jb 0x1400665b7
mov edx, dword [rbx + 0x10]
mov rcx, qword [rbp + 8]
lea r9, [rsp + 0x80]
mov r8, rbx
call fcn.14009d280
mov esi, eax
test eax, eax
jne 0x140066e14
mov eax, dword [rbx + 0x3c]
mov edx, dword [rbx + 0x2c]
mov ecx, dword [rbx + 0x28]
sar ecx, 1
sar edx, 1
sar eax, 1
sub edx, eax
movaps xmmword [rsp + 0x20], xmm8
sub edx, dword [rbx + 0x34]
mov eax, dword [rbx + 0x38]
add edx, dword [rbx + 0x24]
sar eax, 1
sub ecx, eax
imul edx, edx
sub ecx, dword [rbx + 0x30]
add ecx, dword [rbx + 0x20]
imul ecx, ecx
add ecx, edx
call fcn.140080210
mov r11d, dword [0x14049f430]
mov r10d, eax
mov rbx, qword [rsp + 0x80]
mov eax, 0x100000
cdq
mov esi, 7
idiv r10d
mov ecx, 0x7fffffff
lea r8d, [rsi + 0x31]
mov r10d, eax
mov edx, ecx
movd xmm8, eax
pshufd xmm8, xmm8, 0
cmp r11d, 2
jl 0x140066795
movdqa xmm4, xmmword [0x1401c3dd0]
lea rax, [rbx + 0x10]
movaps xmmword [rsp + 0x40], xmm6
movdqa xmm5, xmm4
movaps xmmword [rsp + 0x30], xmm7
movdqa xmm6, xmm4
movdqa xmm7, xmm4
mov ecx, esi
nop dword [rax]
movd xmm1, dword [rax + 8]
movd xmm0, dword [rax - 8]
movd xmm2, dword [rax]
movd xmm3, dword [rax - 0x10]
lea rax, [rax + 0x40]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x44]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x34]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0x3c]
pminsd xmm4, xmm3
movd xmm3, dword [rax - 0x4c]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x28]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x18]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0x20]
pminsd xmm5, xmm3
movd xmm3, dword [rax - 0x30]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x24]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x14]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0x1c]
pminsd xmm6, xmm3
movd xmm3, dword [rax - 0x2c]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
pminsd xmm7, xmm3
sub rcx, 1
jne 0x140066690
pminsd xmm5, xmm7
pminsd xmm4, xmm6
movaps xmm7, xmmword [rsp + 0x30]
movdqa xmm0, xmm5
movaps xmm6, xmmword [rsp + 0x40]
mov r9, r8
psrldq xmm0, 8
pminsd xmm5, xmm0
movdqa xmm0, xmm5
psrldq xmm0, 4
pminsd xmm5, xmm0
movdqa xmm0, xmm4
psrldq xmm0, 8
pminsd xmm4, xmm0
movd ecx, xmm5
movdqa xmm0, xmm4
psrldq xmm0, 4
pminsd xmm4, xmm0
movd edx, xmm4
jmp 0x1400667a0
mov edx, dword [rdx + 0x94]
jmp 0x1400665d0
mov r9, rdi
nop dword [rax + rax]
cmp dword [rbx + r9*8], edx
cmovl edx, dword [rbx + r9*8]
cmp dword [rbx + r9*8 + 4], ecx
cmovl ecx, dword [rbx + r9*8 + 4]
inc r9
cmp r9, 0x3e
jl 0x1400667a0
movd xmm4, ecx
movd xmm5, edx
pshufd xmm4, xmm4, 0
pshufd xmm5, xmm5, 0
cmp r11d, 2
jl 0x140066943
lea r9, [rbx + 0x10]
nop dword [rax]
movd xmm1, dword [r9 + 8]
movd xmm0, dword [r9 - 8]
movd xmm2, dword [r9]
movd xmm3, dword [r9 - 0x10]
lea r9, [r9 + 0x40]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
psubd xmm3, xmm5
pmulld xmm3, xmm8
movd dword [r9 - 0x50], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x48], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x40], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x38], xmm3
movd xmm1, dword [r9 - 0x34]
movd xmm0, dword [r9 - 0x44]
movd xmm2, dword [r9 - 0x3c]
movd xmm3, dword [r9 - 0x4c]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
psubd xmm3, xmm4
pmulld xmm3, xmm8
movd dword [r9 - 0x4c], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x44], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x3c], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x34], xmm3
movd xmm1, dword [r9 - 0x18]
movd xmm0, dword [r9 - 0x28]
movd xmm2, dword [r9 - 0x20]
movd xmm3, dword [r9 - 0x30]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
psubd xmm3, xmm5
pmulld xmm3, xmm8
movd dword [r9 - 0x30], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x28], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x20], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x18], xmm3
movd xmm1, dword [r9 - 0x14]
movd xmm2, dword [r9 - 0x1c]
movd xmm0, dword [r9 - 0x24]
movd xmm3, dword [r9 - 0x2c]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
psubd xmm3, xmm4
pmulld xmm3, xmm8
movd dword [r9 - 0x2c], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x24], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x1c], xmm3
psrldq xmm3, 4
movd dword [r9 - 0x14], xmm3
sub rsi, 1
jne 0x1400667e0
jmp 0x140066946
mov r8, rdi
movaps xmm8, xmmword [rsp + 0x20]
nop dword [rax]
mov eax, dword [rbx + r8*8]
sub eax, edx
imul eax, r10d
mov dword [rbx + r8*8], eax
mov eax, dword [rbx + r8*8 + 4]
sub eax, ecx
imul eax, r10d
mov dword [rbx + r8*8 + 4], eax
inc r8
cmp r8, 0x3e
jl 0x140066950
mov dword [r15], 0x18
mov edx, 0x60
mov rcx, qword [rbp + 8]
mov rax, qword [rcx]
call qword [rax + 8]
mov qword [r12], rax
test rax, rax
je 0x140066dfd
mov r8d, 4
lea rax, [r14 + 8]
mov esi, edi
lea r9d, [r8 - 2]
nop word [rax + rax]
lea edx, [r8 - 4]
shr rdx, 1
mov ecx, dword [rbx + rdx*8]
mov dword [rax - 8], ecx
mov ecx, dword [rbx + rdx*8 + 4]
mov dword [rax - 4], ecx
lea ecx, [r8 - 2]
test ecx, ecx
jns 0x1400669ce
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 4], ecx
mov ecx, r8d
test r8d, r8d
jns 0x1400669ee
lea ecx, [r8 + 1]
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 8], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xc], ecx
lea ecx, [r8 + 2]
test ecx, ecx
jns 0x140066a0d
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x10], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x14], ecx
lea ecx, [r8 + 4]
test ecx, ecx
jns 0x140066a2c
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x18], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x1c], ecx
lea ecx, [r8 + 6]
test ecx, ecx
jns 0x140066a4b
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x20], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x24], ecx
lea ecx, [r8 + 8]
test ecx, ecx
jns 0x140066a6a
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x28], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x2c], ecx
lea ecx, [r8 + 0xa]
test ecx, ecx
jns 0x140066a89
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x30], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x34], ecx
lea ecx, [r8 + 0xc]
test ecx, ecx
jns 0x140066aa8
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x38], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x3c], ecx
lea ecx, [r8 + 0xe]
test ecx, ecx
jns 0x140066ac7
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x40], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x44], ecx
lea ecx, [r8 + 0x10]
test ecx, ecx
jns 0x140066ae6
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x48], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x4c], ecx
lea ecx, [r8 + 0x12]
test ecx, ecx
jns 0x140066b05
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x50], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x54], ecx
lea ecx, [r8 + 0x14]
test ecx, ecx
jns 0x140066b24
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x58], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x5c], ecx
lea ecx, [r8 + 0x16]
test ecx, ecx
jns 0x140066b43
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x60], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x64], ecx
lea ecx, [r8 + 0x18]
test ecx, ecx
jns 0x140066b62
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x68], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x6c], ecx
lea ecx, [r8 + 0x1a]
test ecx, ecx
jns 0x140066b81
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x70], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x74], ecx
lea ecx, [r8 + 0x1c]
test ecx, ecx
jns 0x140066ba0
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x78], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x7c], ecx
lea ecx, [r8 + 0x1e]
test ecx, ecx
jns 0x140066bbf
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x80], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x84], ecx
lea ecx, [r8 + 0x20]
test ecx, ecx
jns 0x140066be4
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x88], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x8c], ecx
lea ecx, [r8 + 0x22]
test ecx, ecx
jns 0x140066c09
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x90], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x94], ecx
lea ecx, [r8 + 0x24]
test ecx, ecx
jns 0x140066c2e
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0x98], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x9c], ecx
lea ecx, [r8 + 0x26]
test ecx, ecx
jns 0x140066c53
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xa0], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xa4], ecx
lea ecx, [r8 + 0x28]
test ecx, ecx
jns 0x140066c78
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xa8], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xac], ecx
lea ecx, [r8 + 0x2a]
test ecx, ecx
jns 0x140066c9d
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xb0], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xb4], ecx
lea ecx, [r8 + 0x2c]
test ecx, ecx
jns 0x140066cc2
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xb8], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xbc], ecx
lea ecx, [r8 + 0x2e]
test ecx, ecx
jns 0x140066ce7
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xc0], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xc4], ecx
lea ecx, [r8 + 0x30]
test ecx, ecx
jns 0x140066d0c
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xc8], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xcc], ecx
lea ecx, [r8 + 0x32]
test ecx, ecx
jns 0x140066d31
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xd0], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xd4], ecx
lea ecx, [r8 + 0x34]
test ecx, ecx
jns 0x140066d56
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xd8], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xdc], ecx
lea ecx, [r8 + 0x36]
test ecx, ecx
jns 0x140066d7b
inc ecx
sar ecx, 1
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xe0], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xe4], ecx
lea ecx, [r8 + 0x38]
test ecx, ecx
jns 0x140066da0
inc ecx
sar ecx, 1
add r8d, 0x3e
movsxd rcx, ecx
lea rdx, [rbx + rcx*8]
mov ecx, dword [rbx + rcx*8]
mov dword [rax + 0xe8], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0xec], ecx
add rax, 0xf8
sub r9, 1
jne 0x1400669b0
cmp dword [r15], esi
jle 0x140066e02
mov rdx, rdi
lea r8, str._bdfh
nop
movsxd rax, dword [rdx + r8]
lea rdx, [rdx + 4]
mov rcx, qword [r12]
inc edi
mov eax, dword [r14 + rax*4]
mov dword [rdx + rcx - 4], eax
cmp edi, dword [r15]
jl 0x140066de0
jmp 0x140066e02
mov esi, 0xfffffffd
test rbx, rbx
je 0x140066e14
mov rcx, qword [rbp + 8]
mov rdx, rbx
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 8]
mov rdx, r14
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rdi, qword [rsp + 0x88]
mov eax, esi
jmp 0x140066e32
mov eax, 0xfffffffd
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r12
pop rsi
pop rbp
ret