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

Disassembly:
sub rsp, 0x118
mov rax, qword [0x1402a7100]
xor rax, rsp
mov qword [rsp + 0x108], rax
mov rax, qword [0x1402b49f8]
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 0x14009ef83
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 1
test eax, eax
je 0x14009ef83
mov byte [rsp + 0x3b], 1
jmp 0x14009ef88
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 0x14009f087
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x98]
add rax, 0x20
mov qword [rsp + 0xa8], rax
jmp 0x14009f040
mov rax, qword [rsp + 0x80]
add rax, 4
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x80], rax
je 0x14009f087
mov rax, qword [rsp + 0x80]
mov eax, dword [rax]
mov dword [rsp + 0x94], eax
mov ecx, dword [rsp + 0x94]
call fcn.1400964c0
movzx eax, al
test eax, eax
je 0x14009f085
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e60], 3
jmp 0x14009f02c
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x14009f09c
mov byte [rsp + 0x3c], 1
jmp 0x14009f0a1
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 0x14009f195
lea rax, [rsp + 0xc8]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xa0]
add rax, 0x1c
mov qword [rsp + 0xb0], rax
jmp 0x14009f14e
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb0]
cmp qword [rsp + 0x88], rax
je 0x14009f195
mov rax, qword [rsp + 0x88]
mov eax, dword [rax]
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0x90]
call fcn.1400964c0
movzx eax, al
test eax, eax
je 0x14009f193
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e60], 2
jmp 0x14009f13a
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1fdc], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1e80], 0
je 0x14009f1b8
call fcn.14009fbf0
nop
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1e75], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1e76], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e80], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1eb0]
test eax, eax
je 0x14009f1f5
call fcn.1400a0bf0
nop
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1ef4], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1eb1], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1eb0], 0
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1e71]
test eax, eax
je 0x14009f275
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1e70]
test eax, eax
je 0x14009f275
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1e72]
test eax, eax
jne 0x14009f275
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1e73]
test eax, eax
je 0x14009f275
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009f275
mov byte [rsp + 0x3a], 1
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1e71], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009f2a2
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x1e18]
call fcn.14009e750
nop
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009f2ec
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
cmp qword [rax + 0x3b8], 0
je 0x14009f2ec
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1e28], 0
jne 0x14009f2ec
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
mov qword [rax + 0x3b8], 0
call fcn.1400a1f80
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x14009f303
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009f334
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009f334
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x14009f334
mov dword [rsp + 0x74], 1
jmp 0x14009f33c
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 0x14009f37a
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1e20], 0
je 0x14009f37a
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1e72]
test eax, eax
je 0x14009f393
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1ff8], 0
jne 0x14009f393
mov dword [rsp + 0x78], 0
jmp 0x14009f39b
mov dword [rsp + 0x78], 1
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rsp + 0x78]
mov byte [rax + 0xc8], cl
call fcn.1400a1300
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e34], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e30], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e2c], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e38], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1e20], 0
je 0x14009f72a
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x1e72]
test eax, eax
jne 0x14009f72a
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1ff8], 0
jne 0x14009f72a
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009f72a
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x14009f72a
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x14009f473
mov edx, 0xffffffff
mov ecx, 0x20c
call fcn.1400964e0
movzx eax, al
test eax, eax
jne 0x14009f499
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009f492
mov edx, 0xffffffff
mov ecx, 0x27c
call fcn.1400964e0
movzx eax, al
test eax, eax
jne 0x14009f499
mov byte [rsp + 0x3d], 0
jmp 0x14009f49e
mov byte [rsp + 0x3d], 1
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x41], al
movzx eax, byte [rsp + 0x41]
test eax, eax
je 0x14009f4fb
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x14009f4d2
mov r8d, 0xffffffff
xor edx, edx
mov ecx, 0x20c
call fcn.140096570
movzx eax, al
test eax, eax
jne 0x14009f4f4
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009f4fb
mov r8d, 0xffffffff
xor edx, edx
mov ecx, 0x27c
call fcn.140096570
movzx eax, al
test eax, eax
je 0x14009f4fb
mov byte [rsp + 0x3e], 1
jmp 0x14009f500
mov byte [rsp + 0x3e], 0
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x43], al
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x14009f53e
mov edx, 0xffffffff
mov ecx, 0x20d
call fcn.1400964e0
movzx eax, al
test eax, eax
jne 0x14009f564
mov edx, 0xffffffff
mov ecx, 0x273
call fcn.1400964e0
movzx eax, al
test eax, eax
jne 0x14009f564
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009f55d
mov edx, 0xffffffff
mov ecx, 0x27b
call fcn.1400964e0
movzx eax, al
test eax, eax
jne 0x14009f564
mov byte [rsp + 0x3f], 0
jmp 0x14009f569
mov byte [rsp + 0x3f], 1
movzx eax, byte [rsp + 0x3f]
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x14009f5df
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x14009f5b6
mov r8d, 0xffffffff
xor edx, edx
mov ecx, 0x20d
call fcn.140096570
movzx eax, al
test eax, eax
jne 0x14009f5d8
mov r8d, 0xffffffff
xor edx, edx
mov ecx, 0x273
call fcn.140096570
movzx eax, al
test eax, eax
jne 0x14009f5d8
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009f5df
mov r8d, 0xffffffff
xor edx, edx
mov ecx, 0x27b
call fcn.140096570
movzx eax, al
test eax, eax
je 0x14009f5df
mov byte [rsp + 0x40], 1
jmp 0x14009f5e4
mov byte [rsp + 0x40], 0
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1364], 0
jne 0x14009f629
movzx eax, byte [rsp + 0x43]
test eax, eax
je 0x14009f629
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
mov dword [rax + 0x1e2c], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e38], 2
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1364], 0
je 0x14009f64f
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
cmp dword [rax + 0x1364], ecx
jne 0x14009f67d
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x14009f67d
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
mov dword [rax + 0x1e2c], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e38], 1
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1364], 0
je 0x14009f6a3
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
cmp dword [rax + 0x1364], ecx
jne 0x14009f6cb
movzx eax, byte [rsp + 0x41]
test eax, eax
jne 0x14009f6b5
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x14009f6cb
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
mov dword [rax + 0x1e30], ecx
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1364], 0
je 0x14009f6f1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
cmp dword [rax + 0x1364], ecx
jne 0x14009f72a
movzx eax, byte [rsp + 0x43]
test eax, eax
jne 0x14009f703
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x14009f72a
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e20]
mov dword [rax + 0x1e34], ecx
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 0x1e20]
call fcn.14009d2b0
nop
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009f75d
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
je 0x14009f75d
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1e72], 1
mov rax, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
movss xmm0, dword [rax + 0x1e54]
comiss xmm0, dword [0x140295efc]
jbe 0x14009f7a7
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
movss xmm0, dword [rax + 0x1e54]
subss xmm0, dword [rcx + 0x10]
movaps xmm1, xmm0
xorps xmm0, xmm0
call fcn.1400a8330
mov rax, qword [rsp + 0x30]
movss dword [rax + 0x1e54], xmm0
mov rax, qword [rsp + 0x30]
movss xmm0, dword [rax + 0x1e54]
ucomiss xmm0, dword [0x140295efc]
jp 0x14009f7ce
jne 0x14009f7ce
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e50], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1e58], 0
je 0x14009f834
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e58]
mov dword [rax + 0x1e34], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e34]
mov dword [rax + 0x1e30], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e30]
mov dword [rax + 0x1e2c], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x1e5c]
mov dword [rax + 0x1e38], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1e58], 0
call fcn.14009ff10
nop
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x1ec0], 0xffffffff
jne 0x14009f85d
call fcn.1400a09d0
nop
call fcn.14009e980
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1e70], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1e18], 0
je 0x14009fb4c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x14009fb4c
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x1ff8], 0
jne 0x14009fb4c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x1e18]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x50]
call fcn.14007e420
mulss xmm0, dword [0x140296100]
mov rax, qword [rsp + 0x58]
mulss xmm0, dword [rax + 0x10]
addss xmm0, dword [0x140295f98]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x1ec0]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x50]
movsx eax, word [rax + 0x174]
test eax, eax
jne 0x14009fa01
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0x17a]
test eax, eax
je 0x14009fa01
cmp dword [rsp + 0x48], 0xffffffff
je 0x14009fa01
cmp dword [rsp + 0x48], 0
je 0x14009f943
cmp dword [rsp + 0x48], 1
jne 0x14009f99b
cmp dword [rsp + 0x48], 0
jne 0x14009f95a
movss xmm0, dword [0x14029617c]
movss dword [rsp + 0x7c], xmm0
jmp 0x14009f968
movss xmm0, dword [0x140296004]
movss dword [rsp + 0x7c], xmm0
movss xmm0, dword [rsp + 0x7c]
mulss xmm0, dword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x98]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.14007b450
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.14009b8c0
nop
cmp dword [rsp + 0x48], 2
je 0x14009f9a9
cmp dword [rsp + 0x48], 3
jne 0x14009fa01
cmp dword [rsp + 0x48], 2
jne 0x14009f9c0
movss xmm0, dword [0x14029617c]
movss dword [rsp + 0x64], xmm0
jmp 0x14009f9ce
movss xmm0, dword [0x140296004]
movss dword [rsp + 0x64], xmm0
movss xmm0, dword [rsp + 0x64]
mulss xmm0, dword [rsp + 0x60]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x9c]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.14007b450
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.14009b900
nop
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009fb4c
mov dword [rsp + 0x20], 0x28a
mov r9d, 0x289
mov r8d, 0x288
mov edx, 0x287
lea rcx, [rsp + 0xc0]
call fcn.140095b00
mov ecx, 0x281
call fcn.1400964c0
movzx eax, al
test eax, eax
je 0x14009fa55
movss xmm0, dword [0x140295f30]
movss dword [rsp + 0x6c], xmm0
jmp 0x14009fa90
mov ecx, 0x282
call fcn.1400964c0
movzx eax, al
test eax, eax
je 0x14009fa76
movss xmm0, dword [0x1402960a0]
movss dword [rsp + 0x68], xmm0
jmp 0x14009fa84
movss xmm0, dword [0x140296004]
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 + 0xc0]
ucomiss xmm0, dword [0x140295efc]
jp 0x14009fab0
je 0x14009fafc
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xc8]
test eax, eax
je 0x14009fafc
movss xmm0, dword [rsp + 0xc0]
mulss xmm0, dword [rsp + 0x60]
mulss xmm0, dword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x98]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.14007b450
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.14009b8c0
nop
movss xmm0, dword [rsp + 0xc4]
ucomiss xmm0, dword [0x140295efc]
jp 0x14009fb10
je 0x14009fb4c
movss xmm0, dword [rsp + 0xc4]
mulss xmm0, dword [rsp + 0x60]
mulss xmm0, dword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
movss xmm1, dword [rax + 0x9c]
addss xmm1, xmm0
movaps xmm0, xmm1
call fcn.14007b450
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.14009b900
nop
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x14009fb7f
movzx eax, byte [rsp + 0x38]
test eax, eax
jne 0x14009fb7f
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x1e72], 1
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsp + 0x3a]
mov byte [rax + 0x1e73], cl
movzx eax, byte [rsp + 0x3a]
test eax, eax
je 0x14009fbbb
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 4
test eax, eax
je 0x14009fbbb
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 4
test eax, eax
je 0x14009fbbb
lea rcx, [rsp + 0xb8]
call fcn.14009eb80
mov rcx, rax
call fcn.140096c50
nop
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x1eec], 0
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.1401209e0
add rsp, 0x118
ret