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

Disassembly:
push rbx
sub rsp, 0x20
mov rax, qword [rcx]
mov rbx, rcx
call qword [rax + 0x18]
test al, al
je 0x140039a0a
mov rax, qword [rbx + 0x60]
cmp dword [rax + 0x88], 0xffffffff
je 0x1400399dd
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x14003a130
cmp qword [rax + 0x100], 0
je 0x1400399f4
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x140039d10
cmp dword [rax + 0xb0], 0xffffffff
je 0x140039a0a
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x140039a20
mov eax, 3
add rsp, 0x20
pop rbx
ret
push rbx
sub rsp, 0x60
mov rax, qword [rcx + 0x60]
mov rbx, rcx
mov ecx, dword [rax + 0xb0]
call fcn.140013eb0
test rax, rax
je 0x140039cf8
mov ecx, dword [rbx + 0x6c]
mov r8d, 0
mov dword [rsp + 0x24], ecx
mov r11d, 2
inc ecx
mov dword [rsp + 0x20], 1
mov dword [rbx + 0x6c], ecx
mov rcx, qword [rax + 0x28]
mov r10, qword [rax + 0x20]
movzx eax, byte [rcx]
movss xmm3, dword [r10 + 0x10]
comiss xmm3, dword [str.fff_]
setae dl
neg al
sbb r9d, r9d
and r9d, 0x10
mov eax, r9d
and r9d, 0xffffffbf
or eax, 0x40
cmp byte [rcx + 1], 0
cmovne r9d, eax
mov eax, r9d
btr r9d, 7
bts eax, 7
cmp byte [rcx + 2], 0
cmovne r9d, eax
mov eax, r9d
and r9d, 0xffffffdf
or eax, 0x20
cmp byte [rcx + 3], 0
cmovne r9d, eax
mov eax, r9d
btr r9d, 0xe
bts eax, 0xe
cmp byte [rcx + 0xa], 0
cmovne r9d, eax
mov eax, r9d
btr r9d, 0xd
bts eax, 0xd
cmp byte [rcx + 0xb], 0
cmovne r9d, eax
mov eax, r9d
btr r9d, 0xa
bts eax, 0xa
cmp byte [rcx + 8], 0
cmovne r9d, eax
mov eax, r9d
btr r9d, 8
bts eax, 8
test dl, dl
mov edx, dword [rbx + 0x7c]
cmovne r9d, eax
mov eax, r9d
and r9d, 0xfffffffd
or eax, 2
cmp byte [rcx + 6], 0
cmovne r9d, eax
mov eax, r9d
btr r9d, 0x10
bts eax, 0x10
cmp byte [rcx + 0xe], 0
mov ecx, r8d
cmovne r9d, eax
test dl, 0x10
mov eax, r8d
mov dword [rsp + 0x2c], r9d
cmova ecx, r11d
test r9b, 0x10
seta al
add ecx, eax
mov eax, r8d
mov dword [rsp + 0x48], ecx
test dl, 0x40
mov ecx, r8d
cmova ecx, r11d
test r9b, 0x40
seta al
add ecx, eax
mov dword [rsp + 0x50], ecx
test edx, 0x80
mov ecx, r8d
cmova ecx, r11d
movss xmm1, dword [0x1400c4514]
movss xmm0, dword [r10]
test r9d, 0x80
movss xmm2, dword [0x1400bdf7c]
mov eax, r8d
seta al
mov dword [rsp + 0x28], 5
add ecx, eax
addss xmm0, xmm2
mov dword [rsp + 0x54], ecx
addss xmm3, xmm2
test dl, 0x20
mov eax, r8d
mov ecx, r8d
cmova ecx, r11d
test r9b, 0x20
mulss xmm0, xmm1
seta al
add ecx, eax
mulss xmm3, xmm1
mov dword [rsp + 0x4c], ecx
test edx, 0x2000
mov eax, r8d
mov ecx, r8d
cmova ecx, r11d
test r9d, 0x2000
seta al
add ecx, eax
mov eax, r8d
mov dword [rsp + 0x3c], ecx
test edx, 0x4000
mov ecx, r8d
cmova ecx, r11d
test r9d, 0x4000
seta al
add ecx, eax
mov eax, r8d
mov dword [rsp + 0x40], ecx
test edx, 0x10000
mov ecx, r8d
cmova ecx, r11d
test r9d, 0x10000
seta al
add ecx, eax
mov eax, r8d
mov dword [rsp + 0x44], ecx
test edx, 0x400
mov ecx, r8d
cmova ecx, r11d
test r9d, 0x400
seta al
add ecx, eax
mov eax, r8d
mov dword [rsp + 0x30], ecx
test edx, 0x100
mov ecx, r8d
cmova ecx, r11d
test r9d, 0x100
seta al
add ecx, eax
mov eax, r8d
test r11b, dl
mov dword [rsp + 0x34], ecx
cvttss2si rcx, xmm3
cmova eax, r11d
test r11b, r9b
seta r8b
add eax, r8d
mov dword [rsp + 0x38], eax
cvttss2si rax, xmm0
mov byte [rsp + 0x58], cl
movss xmm0, dword [r10 + 4]
addss xmm0, xmm2
mov byte [rsp + 0x59], al
mulss xmm0, xmm1
movups xmm1, xmmword [rsp + 0x30]
cvttss2si rax, xmm0
movups xmm0, xmmword [rsp + 0x20]
mov byte [rsp + 0x5a], al
movups xmmword [rbx + 0x70], xmm0
movups xmm0, xmmword [rsp + 0x40]
mov ecx, dword [rsp + 0x58]
lea eax, [r11 - 1]
movups xmmword [rbx + 0x80], xmm1
movsd xmm1, qword [rsp + 0x50]
movups xmmword [rbx + 0x90], xmm0
movsd qword [rbx + 0xa0], xmm1
mov dword [rbx + 0xa8], ecx
add rsp, 0x60
pop rbx
ret
mov eax, 3
add rsp, 0x60
pop rbx
ret
sub rsp, 0x58
mov rax, qword [rcx + 0xb0]
mov r10, rcx
test rax, rax
je 0x14003a117
movzx eax, byte [rax + 0x29]
test al, al
jne 0x14003a117
mov rdx, qword [rcx + 0xb0]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov eax, dword [rdx + 0x6c]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x40], r15
xchg dword [rdx + 0x68], eax
movsxd rax, dword [rdx + 0x68]
mov rax, qword [rdx + rax*8 + 0x50]
xor r11d, r11d
movups xmm0, xmmword [rcx + 0x70]
mov rax, qword [rax]
mov qword [rcx + 0x70], 1
mov rdx, rax
mov qword [rcx + 0x78], 5
mov qword [rcx + 0x80], r11
mov qword [rcx + 0x88], r11
mov qword [rcx + 0x90], r11
mov qword [rcx + 0x98], r11
mov qword [rcx + 0xa0], r11
mov word [rcx + 0xa8], 0x8000
mov byte [rcx + 0xaa], 0x80
mov ecx, dword [rcx + 0x6c]
shr rdx, 8
mov dword [r10 + 0x74], ecx
and dl, 0xf
inc ecx
mov dword [r10 + 0x6c], ecx
movups xmmword [rsp], xmm0
cmp dl, 1
jbe 0x140039dde
cmp dl, 7
je 0x140039dde
xor sil, sil
jmp 0x140039de1
mov sil, 1
lea ecx, [rdx - 3]
mov dword [r10 + 0x7c], r11d
cmp cl, 2
movzx r8d, al
lea ecx, [rdx - 5]
movzx r9d, al
setbe bpl
movzx ebx, al
cmp cl, 2
movzx edi, al
movzx ecx, al
setbe r14b
dec dl
cmp dl, 2
movzx edx, al
setbe r15b
shr dl, 2
shr r8b, 3
and dl, 1
shr r9b, 4
and r8b, 1
shr cl, 1
and r9b, 1
shr bl, 5
and cl, 1
and bl, 1
and dil, 1
test sil, sil
mov rsi, qword [rsp + 0x70]
je 0x140039e4c
or dword [r10 + 0x7c], 0x10
jmp 0x140039e51
and dword [r10 + 0x7c], 0xffffffef
test bpl, bpl
mov rbp, qword [rsp + 0x68]
je 0x140039e62
or dword [r10 + 0x7c], 0x40
jmp 0x140039e67
and dword [r10 + 0x7c], 0xffffffbf
test r14b, r14b
mov r14, qword [rsp + 0x48]
je 0x140039e7b
or dword [r10 + 0x7c], 0x80
jmp 0x140039e83
and dword [r10 + 0x7c], 0xffffff7f
test r15b, r15b
mov r15, qword [rsp + 0x40]
je 0x140039e94
or dword [r10 + 0x7c], 0x20
jmp 0x140039e99
and dword [r10 + 0x7c], 0xffffffdf
test dil, dil
mov rdi, qword [rsp + 0x50]
je 0x140039ead
or dword [r10 + 0x7c], 0x4000
jmp 0x140039eb5
and dword [r10 + 0x7c], 0xffffbfff
test cl, cl
je 0x140039ec3
or dword [r10 + 0x7c], 0x2000
jmp 0x140039ecb
and dword [r10 + 0x7c], 0xffffdfff
test dl, dl
je 0x140039ed9
or dword [r10 + 0x7c], 0x400
jmp 0x140039ee1
and dword [r10 + 0x7c], 0xfffffbff
test r8b, r8b
je 0x140039ef0
or dword [r10 + 0x7c], 0x100
jmp 0x140039ef8
and dword [r10 + 0x7c], 0xfffffeff
test r9b, r9b
je 0x140039f04
or dword [r10 + 0x7c], 2
jmp 0x140039f09
and dword [r10 + 0x7c], 0xfffffffd
test bl, bl
je 0x140039f17
or dword [r10 + 0x7c], 0x10000
jmp 0x140039f1f
and dword [r10 + 0x7c], 0xfffeffff
mov r8d, dword [r10 + 0x7c]
mov ebx, 2
mov r9, qword [rsp + 8]
mov edx, r11d
shr r9, 0x20
mov ecx, r11d
test r8b, 0x10
seta dl
test r9b, 0x10
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0x98], edx
test r8b, 0x40
mov edx, r11d
seta dl
test r9b, 0x40
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0xa0], edx
test r8d, 0x80
mov edx, r11d
seta dl
test r9d, 0x80
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0xa4], edx
test r8b, 0x20
mov edx, r11d
seta dl
test r9b, 0x20
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0x9c], edx
test r9d, 0x2000
mov edx, r11d
cmova edx, ebx
test r8d, 0x2000
seta cl
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0x8c], edx
test r9d, 0x4000
mov edx, r11d
cmova edx, ebx
test r8d, 0x4000
seta cl
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0x90], edx
test r8d, 0x10000
mov edx, r11d
seta dl
test r9d, 0x10000
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
mov dword [r10 + 0x94], edx
test r8d, 0x400
mov edx, r11d
seta dl
test r9d, 0x400
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
test r8d, 0x100
mov dword [r10 + 0x80], edx
mov edx, r11d
seta dl
test r9d, 0x100
cmova ecx, ebx
add edx, ecx
mov ecx, r11d
test bl, r8b
mov dword [r10 + 0x84], edx
seta cl
test bl, r9b
cmova r11d, ebx
movss xmm2, dword [0x1400bdf8c]
add ecx, r11d
movss xmm1, dword [0x1400c4518]
mov dword [r10 + 0x88], ecx
mov rcx, rax
shr rcx, 0x10
movsx edx, cx
add edx, 0x7fff
mov dword [r10 + 0x78], 5
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
mulss xmm0, xmm1
cvttss2si rcx, xmm0
mov byte [r10 + 0xa9], cl
mov rcx, rax
shr rcx, 0x20
movsx edx, cx
add edx, 0x7fff
shr rax, 0x30
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
mulss xmm0, xmm1
cvttss2si rcx, xmm0
mov byte [r10 + 0xaa], cl
movsx ecx, ax
lea eax, [rbx - 1]
mov rbx, qword [rsp + 0x60]
add ecx, 0x7fff
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
mulss xmm0, xmm1
cvttss2si rcx, xmm0
mov byte [r10 + 0xa8], cl
add rsp, 0x58
ret
mov eax, 3
add rsp, 0x58
ret
mov qword [rsp + 0x10], rbx
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0x90
mov rax, qword [0x140101140]
xor rax, rsp
mov qword [rbp + 0x47], rax
mov rax, qword [rcx + 0x60]
lea rdx, [rbp + 0x27]
mov rbx, rcx
mov r8d, 0x1f
mov ecx, dword [rax + 0x88]
call fcn.14003a590
test eax, eax
jns 0x14003a17a
mov eax, 3
jmp 0x14003a33b
jne 0x14003a187
xor r9d, r9d
mov eax, r9d
jmp 0x14003a33b
mov edx, dword [rbx + 0x7c]
mov r9d, 0
mov eax, dword [rbx + 0x6c]
mov r10d, 2
movzx r8d, byte [rbp + 0x2b]
mov ecx, r9d
and r8d, 1
mov dword [rbp - 0x15], eax
inc eax
shl r8d, 8
mov dword [rbx + 0x6c], eax
movzx eax, byte [rbp + 0x2a]
or r8d, eax
mov dword [rbp - 0x19], 1
movzx eax, byte [rbp + 0x29]
shl r8d, 8
or r8d, eax
mov eax, r9d
test dl, 0x10
mov dword [rbp - 0xd], r8d
cmova ecx, r10d
test r8b, 0x10
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 0xf], ecx
test dl, 0x40
mov ecx, r9d
cmova ecx, r10d
test r8b, 0x40
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 0x17], ecx
test edx, 0x80
mov ecx, r9d
cmova ecx, r10d
test r8d, 0x80
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 0x1b], ecx
test dl, 0x20
mov ecx, r9d
cmova ecx, r10d
test r8b, 0x20
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 0x13], ecx
test edx, 0x2000
mov ecx, r9d
cmova ecx, r10d
test r8d, 0x2000
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 3], ecx
test edx, 0x4000
mov ecx, r9d
cmova ecx, r10d
test r8d, 0x4000
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 7], ecx
test edx, 0x10000
mov ecx, r9d
cmova ecx, r10d
test r8d, 0x10000
seta al
add ecx, eax
mov eax, r9d
mov dword [rbp + 0xb], ecx
test edx, 0x400
mov ecx, r9d
cmova ecx, r10d
test r8d, 0x400
seta al
add ecx, eax
mov dword [rbp - 9], ecx
test edx, 0x100
mov eax, r9d
mov ecx, r9d
cmova ecx, r10d
test r8d, 0x100
seta al
add ecx, eax
mov eax, r9d
test r10b, dl
mov dword [rbp - 5], ecx
movzx ecx, byte [rbp + 0x45]
cmova eax, r10d
mov dword [rbp - 0x11], ecx
movups xmm0, xmmword [rbp - 0x19]
test r10b, r8b
movups xmmword [rbx + 0x70], xmm0
seta r9b
movups xmm0, xmmword [rbp + 7]
add eax, r9d
mov dword [rbp - 1], eax
movzx eax, byte [rbp + 0x39]
movups xmm1, xmmword [rbp - 9]
mov byte [rbp + 0x1f], al
movzx eax, byte [rbp + 0x2d]
movups xmmword [rbx + 0x80], xmm1
mov byte [rbp + 0x20], al
movzx eax, byte [rbp + 0x2e]
movsd xmm1, qword [rbp + 0x17]
mov byte [rbp + 0x21], al
lea eax, [r10 - 1]
mov ecx, dword [rbp + 0x1f]
movups xmmword [rbx + 0x90], xmm0
movsd qword [rbx + 0xa0], xmm1
mov dword [rbx + 0xa8], ecx
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.140062030
mov rbx, qword [rsp + 0xa8]
add rsp, 0x90
pop rbp
ret