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

Disassembly:
sub rsp, 0x118
mov rax, qword [0x140376800]
xor rax, rsp
mov qword [rsp + 0x108], rax
mov rax, qword [0x140394848]
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 0x140097983
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 1
test eax, eax
je 0x140097983
mov byte [rsp + 0x3b], 1
jmp 0x140097988
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 0x140097a87
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 0x140097a40
mov rax, qword [rsp + 0x80]
add rax, 4
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x80], rax
je 0x140097a87
mov rax, qword [rsp + 0x80]
mov eax, dword [rax]
mov dword [rsp + 0x94], eax
mov ecx, dword [rsp + 0x94]
call fcn.140092d40
movzx eax, al
test eax, eax
je 0x140097a85
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b3c], 3
jmp 0x140097a2c
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x140097a9c
mov byte [rsp + 0x3c], 1
jmp 0x140097aa1
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 0x140097b95
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 0x140097b4e
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb0]
cmp qword [rsp + 0x88], rax
je 0x140097b95
mov rax, qword [rsp + 0x88]
mov eax, dword [rax]
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0x90]
call fcn.140092d40
movzx eax, al
test eax, eax
je 0x140097b93
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b3c], 2
jmp 0x140097b3a
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b28], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b60], 0
je 0x140097bb7
call fcn.140095d40
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b55], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b56], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b60], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b98]
test eax, eax
je 0x140097bf3
call fcn.140096020
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4bdc], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b99], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b98], 0
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b51]
test eax, eax
je 0x140097c73
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b50]
test eax, eax
je 0x140097c73
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b52]
test eax, eax
jne 0x140097c73
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b53]
test eax, eax
je 0x140097c73
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x140097c73
mov byte [rsp + 0x3a], 1
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b51], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x140097c9f
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x4b08]
call fcn.140097220
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x140097ce9
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
cmp qword [rax + 0x3a8], 0
je 0x140097ce9
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b40], 0
jne 0x140097ce9
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
mov qword [rax + 0x3a8], 0
call fcn.140099cd0
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x140097d00
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140097d31
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x140097d31
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x140097d31
mov dword [rsp + 0x74], 1
jmp 0x140097d39
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 0x140097d77
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b10], 0
je 0x140097d77
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b52]
test eax, eax
je 0x140097d90
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4ce8], 0
jne 0x140097d90
mov dword [rsp + 0x78], 0
jmp 0x140097d98
mov dword [rsp + 0x78], 1
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rsp + 0x78]
mov byte [rax + 0xc8], cl
call fcn.1400985a0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b20], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b1c], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b18], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b24], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b10], 0
je 0x1400980df
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b52]
test eax, eax
jne 0x1400980df
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4ce8], 0
jne 0x1400980df
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x1400980df
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x1400980df
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140097e6b
mov ecx, 0x20c
call fcn.140092d40
movzx eax, al
test eax, eax
jne 0x140097e8c
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140097e85
mov ecx, 0x27c
call fcn.140092d40
movzx eax, al
test eax, eax
jne 0x140097e8c
mov byte [rsp + 0x3d], 0
jmp 0x140097e91
mov byte [rsp + 0x3d], 1
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x41], al
movzx eax, byte [rsp + 0x41]
test eax, eax
je 0x140097ee2
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140097ebf
xor edx, edx
mov ecx, 0x20c
call fcn.140092fe0
movzx eax, al
test eax, eax
jne 0x140097edb
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140097ee2
xor edx, edx
mov ecx, 0x27c
call fcn.140092fe0
movzx eax, al
test eax, eax
je 0x140097ee2
mov byte [rsp + 0x3e], 1
jmp 0x140097ee7
mov byte [rsp + 0x3e], 0
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x43], al
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140097f1b
mov ecx, 0x20d
call fcn.140092d40
movzx eax, al
test eax, eax
jne 0x140097f3c
mov ecx, 0x273
call fcn.140092d40
movzx eax, al
test eax, eax
jne 0x140097f3c
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140097f35
mov ecx, 0x27b
call fcn.140092d40
movzx eax, al
test eax, eax
jne 0x140097f3c
mov byte [rsp + 0x3f], 0
jmp 0x140097f41
mov byte [rsp + 0x3f], 1
movzx eax, byte [rsp + 0x3f]
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x140097fa5
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140097f82
xor edx, edx
mov ecx, 0x20d
call fcn.140092fe0
movzx eax, al
test eax, eax
jne 0x140097f9e
xor edx, edx
mov ecx, 0x273
call fcn.140092fe0
movzx eax, al
test eax, eax
jne 0x140097f9e
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140097fa5
xor edx, edx
mov ecx, 0x27b
call fcn.140092fe0
movzx eax, al
test eax, eax
je 0x140097fa5
mov byte [rsp + 0x40], 1
jmp 0x140097faa
mov byte [rsp + 0x40], 0
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x406c], 0
jne 0x140097fef
movzx eax, byte [rsp + 0x43]
test eax, eax
je 0x140097fef
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
mov dword [rax + 0x4b18], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b24], 2
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x406c], 0
je 0x140098015
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
cmp dword [rax + 0x406c], ecx
jne 0x140098043
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x140098043
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
mov dword [rax + 0x4b18], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b24], 1
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x406c], 0
je 0x140098069
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
cmp dword [rax + 0x406c], ecx
jne 0x140098091
movzx eax, byte [rsp + 0x41]
test eax, eax
jne 0x14009807b
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x140098091
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
mov dword [rax + 0x4b1c], ecx
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x406c], 0
je 0x1400980b7
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
cmp dword [rax + 0x406c], ecx
jne 0x1400980df
movzx eax, byte [rsp + 0x43]
test eax, eax
jne 0x1400980c9
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x1400980df
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b10]
mov dword [rax + 0x4b20], ecx
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x140098112
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
je 0x140098112
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b52], 1
mov rax, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b34], 0
je 0x14009817d
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b34]
mov dword [rax + 0x4b20], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
mov dword [rax + 0x4b1c], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b1c]
mov dword [rax + 0x4b18], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b38]
mov dword [rax + 0x4b24], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b34], 0
call fcn.1400988a0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4ba8], 0xffffffff
jne 0x1400981a4
call fcn.140099350
call fcn.140098530
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b50], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b08], 0
je 0x14009848f
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x14009848f
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4ce8], 0
jne 0x14009848f
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b08]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x50]
call fcn.140086b70
mulss xmm0, dword [0x14020932c]
mov rax, qword [rsp + 0x58]
mulss xmm0, dword [rax + 0x10]
addss xmm0, dword [0x140209278]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x4ba8]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x50]
movsx eax, word [rax + 0x16c]
test eax, eax
jne 0x140098346
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0x172]
test eax, eax
je 0x140098346
cmp dword [rsp + 0x48], 0xffffffff
je 0x140098346
cmp dword [rsp + 0x48], 0
je 0x14009828a
cmp dword [rsp + 0x48], 1
jne 0x1400982e1
cmp dword [rsp + 0x48], 0
jne 0x1400982a1
movss xmm0, dword [0x140217a1c]
movss dword [rsp + 0x7c], xmm0
jmp 0x1400982af
movss xmm0, dword [0x1402092b0]
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.140092090
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.1400a28a0
cmp dword [rsp + 0x48], 2
je 0x1400982ef
cmp dword [rsp + 0x48], 3
jne 0x140098346
cmp dword [rsp + 0x48], 2
jne 0x140098306
movss xmm0, dword [0x140217a1c]
movss dword [rsp + 0x64], xmm0
jmp 0x140098314
movss xmm0, dword [0x1402092b0]
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.140092090
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.1400a28e0
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14009848f
mov dword [rsp + 0x20], 0x28a
mov r9d, 0x289
mov r8d, 0x288
mov edx, 0x287
lea rcx, [rsp + 0xc0]
call fcn.14008e950
mov ecx, 0x281
call fcn.140092d40
movzx eax, al
test eax, eax
je 0x14009839a
movss xmm0, dword [0x140209244]
movss dword [rsp + 0x6c], xmm0
jmp 0x1400983d5
mov ecx, 0x282
call fcn.140092d40
movzx eax, al
test eax, eax
je 0x1400983bb
movss xmm0, dword [0x1402092d8]
movss dword [rsp + 0x68], xmm0
jmp 0x1400983c9
movss xmm0, dword [0x1402092b0]
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 [0x140217964]
jp 0x1400983f5
je 0x140098440
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbc]
test eax, eax
je 0x140098440
movss xmm0, dword [rsp + 0xc0]
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.140092090
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.1400a28a0
movss xmm0, dword [rsp + 0xc4]
ucomiss xmm0, dword [0x140217964]
jp 0x140098454
je 0x14009848f
movss xmm0, dword [rsp + 0xc4]
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.140092090
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.1400a28e0
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x1400984c2
movzx eax, byte [rsp + 0x38]
test eax, eax
jne 0x1400984c2
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b52], 1
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsp + 0x3a]
mov byte [rax + 0x4b53], cl
movzx eax, byte [rsp + 0x3a]
test eax, eax
je 0x1400984fd
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 4
test eax, eax
je 0x1400984fd
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 4
test eax, eax
je 0x1400984fd
lea rcx, [rsp + 0xb8]
call fcn.140095970
mov rcx, rax
call fcn.1400a33c0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4bd4], 0
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.1401fc060
add rsp, 0x118
ret