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

Disassembly:
sub rsp, 0x118
mov rax, qword [0x140559740]
xor rax, rsp
mov qword [rsp + 0x108], rax
mov rax, qword [0x14055ac88]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
add rax, 8
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov byte [rax + 0xc5], 0
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x1401f2453
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 1
test eax, eax
je 0x1401f2453
mov byte [rsp + 0x3b], 1
jmp 0x1401f2458
mov byte [rsp + 0x3b], 0
movzx eax, byte [rsp + 0x3b]
mov byte [rsp + 0x38], al
mov dword [rsp + 0xe8], 0x27a
mov dword [rsp + 0xec], 0x279
mov dword [rsp + 0xf0], 0x27b
mov dword [rsp + 0xf4], 0x27c
mov dword [rsp + 0xf8], 0x27e
mov dword [rsp + 0xfc], 0x27d
mov dword [rsp + 0x100], 0x27f
mov dword [rsp + 0x104], 0x280
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f2557
lea rax, [rsp + 0xe8]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xa0]
add rax, 0x20
mov qword [rsp + 0xb0], rax
jmp 0x1401f2510
mov rax, qword [rsp + 0x80]
add rax, 4
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xb0]
cmp qword [rsp + 0x80], rax
je 0x1401f2557
mov rax, qword [rsp + 0x80]
mov eax, dword [rax]
mov dword [rsp + 0x9c], eax
mov ecx, dword [rsp + 0x9c]
call fcn.1400039cc
movzx eax, al
test eax, eax
je 0x1401f2555
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b74], 3
jmp 0x1401f24fc
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x1401f256c
mov byte [rsp + 0x3c], 1
jmp 0x1401f2571
mov byte [rsp + 0x3c], 0
movzx eax, byte [rsp + 0x3c]
mov byte [rsp + 0x39], al
mov dword [rsp + 0xc8], 0x20c
mov dword [rsp + 0xcc], 0x20d
mov dword [rsp + 0xd0], 0x20e
mov dword [rsp + 0xd4], 0x202
mov dword [rsp + 0xd8], 0x201
mov dword [rsp + 0xdc], 0x203
mov dword [rsp + 0xe0], 0x204
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1401f2665
lea rax, [rsp + 0xc8]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xa8]
add rax, 0x1c
mov qword [rsp + 0xb8], rax
jmp 0x1401f261e
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb8]
cmp qword [rsp + 0x88], rax
je 0x1401f2665
mov rax, qword [rsp + 0x88]
mov eax, dword [rax]
mov dword [rsp + 0x98], eax
mov ecx, dword [rsp + 0x98]
call fcn.1400039cc
movzx eax, al
test eax, eax
je 0x1401f2663
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b74], 2
jmp 0x1401f260a
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b60], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b98], 0
je 0x1401f2688
call fcn.140004ddb
nop
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b8d], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b8e], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b98], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4bc8]
test eax, eax
je 0x1401f26c5
call fcn.14000545c
nop
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4c0c], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4bc9], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4bc8], 0
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b89]
test eax, eax
je 0x1401f2745
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b88]
test eax, eax
je 0x1401f2745
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b8a]
test eax, eax
jne 0x1401f2745
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b8b]
test eax, eax
je 0x1401f2745
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f2745
mov byte [rsp + 0x3a], 1
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b89], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f2772
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x4b28]
call fcn.1401f6930
nop
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f27bc
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
cmp qword [rax + 0x3b0], 0
je 0x1401f27bc
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b78], 0
jne 0x1401f27bc
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
mov qword [rax + 0x3b0], 0
call fcn.1401f30c0
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x1401f27d3
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f2804
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f2804
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x1401f2804
mov dword [rsp + 0x74], 1
jmp 0x1401f280c
mov dword [rsp + 0x74], 0
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rsp + 0x74]
mov byte [rax + 0xc7], cl
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0xc7]
test eax, eax
je 0x1401f284a
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b30], 0
je 0x1401f284a
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b8a]
test eax, eax
je 0x1401f2863
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4cf8], 0
jne 0x1401f2863
mov dword [rsp + 0x78], 0
jmp 0x1401f286b
mov dword [rsp + 0x78], 1
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rsp + 0x78]
mov byte [rax + 0xc8], cl
call fcn.1401f4140
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b50], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b4c], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b48], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b54], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b30], 0
je 0x1401f2bfa
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b8a]
test eax, eax
jne 0x1401f2bfa
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4cf8], 0
jne 0x1401f2bfa
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f2bfa
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x1401f2bfa
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1401f2943
mov edx, 0xffffffff
mov ecx, 0x20c
call fcn.1400048e0
movzx eax, al
test eax, eax
jne 0x1401f2969
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f2962
mov edx, 0xffffffff
mov ecx, 0x27c
call fcn.1400048e0
movzx eax, al
test eax, eax
jne 0x1401f2969
mov byte [rsp + 0x3d], 0
jmp 0x1401f296e
mov byte [rsp + 0x3d], 1
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x41], al
movzx eax, byte [rsp + 0x41]
test eax, eax
je 0x1401f29cb
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1401f29a2
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x20c
call fcn.1400019d3
movzx eax, al
test eax, eax
jne 0x1401f29c4
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f29cb
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x27c
call fcn.1400019d3
movzx eax, al
test eax, eax
je 0x1401f29cb
mov byte [rsp + 0x3e], 1
jmp 0x1401f29d0
mov byte [rsp + 0x3e], 0
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x43], al
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1401f2a0e
mov edx, 0xffffffff
mov ecx, 0x20d
call fcn.1400048e0
movzx eax, al
test eax, eax
jne 0x1401f2a34
mov edx, 0xffffffff
mov ecx, 0x273
call fcn.1400048e0
movzx eax, al
test eax, eax
jne 0x1401f2a34
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f2a2d
mov edx, 0xffffffff
mov ecx, 0x27b
call fcn.1400048e0
movzx eax, al
test eax, eax
jne 0x1401f2a34
mov byte [rsp + 0x3f], 0
jmp 0x1401f2a39
mov byte [rsp + 0x3f], 1
movzx eax, byte [rsp + 0x3f]
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x1401f2aaf
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1401f2a86
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x20d
call fcn.1400019d3
movzx eax, al
test eax, eax
jne 0x1401f2aa8
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x273
call fcn.1400019d3
movzx eax, al
test eax, eax
jne 0x1401f2aa8
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f2aaf
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x27b
call fcn.1400019d3
movzx eax, al
test eax, eax
je 0x1401f2aaf
mov byte [rsp + 0x40], 1
jmp 0x1401f2ab4
mov byte [rsp + 0x40], 0
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4074], 0
jne 0x1401f2af9
movzx eax, byte [rsp + 0x43]
test eax, eax
je 0x1401f2af9
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
mov dword [rax + 0x4b48], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b54], 2
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4074], 0
je 0x1401f2b1f
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
cmp dword [rax + 0x4074], ecx
jne 0x1401f2b4d
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x1401f2b4d
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
mov dword [rax + 0x4b48], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b54], 1
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4074], 0
je 0x1401f2b73
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
cmp dword [rax + 0x4074], ecx
jne 0x1401f2b9b
movzx eax, byte [rsp + 0x41]
test eax, eax
jne 0x1401f2b85
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x1401f2b9b
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
mov dword [rax + 0x4b4c], ecx
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4074], 0
je 0x1401f2bc1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
cmp dword [rax + 0x4074], ecx
jne 0x1401f2bfa
movzx eax, byte [rsp + 0x43]
test eax, eax
jne 0x1401f2bd3
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x1401f2bfa
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b30]
mov dword [rax + 0x4b50], ecx
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 0x4b30]
call fcn.140001744
nop
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f2c2d
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
je 0x1401f2c2d
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b8a], 1
mov rax, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
movss xmm0, dword [rax + 0x4b5c]
comiss xmm0, dword [0x1403065e8]
jbe 0x1401f2c77
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
movss xmm0, dword [rax + 0x4b5c]
subss xmm0, dword [rcx + 0x10]
movaps xmm1, xmm0
xorps xmm0, xmm0
call fcn.1401dd9c0
mov rax, qword [rsp + 0x30]
movss dword [rax + 0x4b5c], xmm0
mov rax, qword [rsp + 0x30]
movss xmm0, dword [rax + 0x4b5c]
ucomiss xmm0, dword [0x1403065e8]
jp 0x1401f2c9e
jne 0x1401f2c9e
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b58], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b6c], 0
je 0x1401f2d04
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b6c]
mov dword [rax + 0x4b50], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b50]
mov dword [rax + 0x4b4c], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b4c]
mov dword [rax + 0x4b48], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b70]
mov dword [rax + 0x4b54], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b6c], 0
call fcn.1401f4440
nop
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4bd8], 0xffffffff
jne 0x1401f2d2d
call fcn.1401f4ed0
nop
call fcn.1401f5520
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b88], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b28], 0
je 0x1401f301c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x1401f301c
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4cf8], 0
jne 0x1401f301c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b28]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x50]
call fcn.140001e06
mulss xmm0, dword [0x14030676c]
mov rax, qword [rsp + 0x58]
mulss xmm0, dword [rax + 0x10]
addss xmm0, dword [0x14030661c]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x4bd8]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x50]
movsx eax, word [rax + 0x16c]
test eax, eax
jne 0x1401f2ed1
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0x172]
test eax, eax
je 0x1401f2ed1
cmp dword [rsp + 0x48], 0xffffffff
je 0x1401f2ed1
cmp dword [rsp + 0x48], 0
je 0x1401f2e13
cmp dword [rsp + 0x48], 1
jne 0x1401f2e6b
cmp dword [rsp + 0x48], 0
jne 0x1401f2e2a
movss xmm0, dword [0x1403067a0]
movss dword [rsp + 0x7c], xmm0
jmp 0x1401f2e38
movss xmm0, dword [0x140306644]
movss dword [rsp + 0x7c], xmm0
movss xmm0, dword [rsp + 0x7c]
mulss xmm0, dword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x8c]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.1401dd840
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140002ad1
nop
cmp dword [rsp + 0x48], 2
je 0x1401f2e79
cmp dword [rsp + 0x48], 3
jne 0x1401f2ed1
cmp dword [rsp + 0x48], 2
jne 0x1401f2e90
movss xmm0, dword [0x1403067a0]
movss dword [rsp + 0x64], xmm0
jmp 0x1401f2e9e
movss xmm0, dword [0x140306644]
movss dword [rsp + 0x64], xmm0
movss xmm0, dword [rsp + 0x64]
mulss xmm0, dword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x90]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.1401dd840
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140003328
nop
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1401f301c
mov dword [rsp + 0x20], 0x28a
mov r9d, 0x289
mov r8d, 0x288
mov edx, 0x287
lea rcx, [rsp + 0x90]
call fcn.14000376f
mov ecx, 0x281
call fcn.1400039cc
movzx eax, al
test eax, eax
je 0x1401f2f25
movss xmm0, dword [0x14030c2a0]
movss dword [rsp + 0x6c], xmm0
jmp 0x1401f2f60
mov ecx, 0x282
call fcn.1400039cc
movzx eax, al
test eax, eax
je 0x1401f2f46
movss xmm0, dword [0x140306730]
movss dword [rsp + 0x68], xmm0
jmp 0x1401f2f54
movss xmm0, dword [0x140306644]
movss dword [rsp + 0x68], xmm0
movss xmm0, dword [rsp + 0x68]
movss dword [rsp + 0x6c], xmm0
movss xmm0, dword [rsp + 0x6c]
movss dword [rsp + 0x70], xmm0
movss xmm0, dword [rsp + 0x90]
ucomiss xmm0, dword [0x1403065e8]
jp 0x1401f2f80
je 0x1401f2fcc
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbc]
test eax, eax
je 0x1401f2fcc
movss xmm0, dword [rsp + 0x90]
mulss xmm0, dword [rsp + 0x60]
mulss xmm0, dword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x8c]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.1401dd840
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140002ad1
nop
movss xmm0, dword [rsp + 0x94]
ucomiss xmm0, dword [0x1403065e8]
jp 0x1401f2fe0
je 0x1401f301c
movss xmm0, dword [rsp + 0x94]
mulss xmm0, dword [rsp + 0x60]
mulss xmm0, dword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x90]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.1401dd840
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140003328
nop
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x1401f304f
movzx eax, byte [rsp + 0x38]
test eax, eax
jne 0x1401f304f
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b8a], 1
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsp + 0x3a]
mov byte [rax + 0x4b8b], cl
movzx eax, byte [rsp + 0x3a]
test eax, eax
je 0x1401f308b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 4
test eax, eax
je 0x1401f308b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 4
test eax, eax
je 0x1401f308b
lea rcx, [rsp + 0xc0]
call fcn.1401f6670
mov rcx, rax
call fcn.140002fe5
nop
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4c04], 0
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.140002de7
add rsp, 0x118
ret