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

Disassembly:
sub rsp, 0x118
mov rax, qword [0x140292140]
xor rax, rsp
mov qword [rsp + 0x108], rax
mov rax, qword [0x140295eb8]
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 0x1400571e3
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 1
test eax, eax
je 0x1400571e3
mov byte [rsp + 0x3b], 1
jmp 0x1400571e8
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 0x1400572e7
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 0x1400572a0
mov rax, qword [rsp + 0x80]
add rax, 4
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x80], rax
je 0x1400572e7
mov rax, qword [rsp + 0x80]
mov eax, dword [rax]
mov dword [rsp + 0x94], eax
mov ecx, dword [rsp + 0x94]
call fcn.14003b2a0
movzx eax, al
test eax, eax
je 0x1400572e5
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b64], 3
jmp 0x14005728c
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 1
test eax, eax
je 0x1400572fc
mov byte [rsp + 0x3c], 1
jmp 0x140057301
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 0x1400573f5
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 0x1400573ae
mov rax, qword [rsp + 0x88]
add rax, 4
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb0]
cmp qword [rsp + 0x88], rax
je 0x1400573f5
mov rax, qword [rsp + 0x88]
mov eax, dword [rax]
mov dword [rsp + 0x90], eax
mov ecx, dword [rsp + 0x90]
call fcn.14003b2a0
movzx eax, al
test eax, eax
je 0x1400573f3
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b64], 2
jmp 0x14005739a
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b50], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b88], 0
je 0x140057418
call fcn.14004b460
nop
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b7d], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b7e], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b88], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4bc0]
test eax, eax
je 0x140057455
call fcn.14004b900
nop
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4c04], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4bc1], 0
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4bc0], 0
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b79]
test eax, eax
je 0x1400574d5
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b78]
test eax, eax
je 0x1400574d5
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b7a]
test eax, eax
jne 0x1400574d5
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b7b]
test eax, eax
je 0x1400574d5
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x1400574d5
mov byte [rsp + 0x3a], 1
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b79], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x140057502
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x4b18]
call fcn.14005b7d0
nop
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x14005754c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
cmp qword [rax + 0x3b0], 0
je 0x14005754c
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b68], 0
jne 0x14005754c
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
mov qword [rax + 0x3b0], 0
call fcn.140057e50
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x140057563
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140057594
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x140057594
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x140057594
mov dword [rsp + 0x74], 1
jmp 0x14005759c
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 0x1400575da
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b20], 0
je 0x1400575da
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b7a]
test eax, eax
je 0x1400575f3
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4d10], 0
jne 0x1400575f3
mov dword [rsp + 0x78], 0
jmp 0x1400575fb
mov dword [rsp + 0x78], 1
mov rax, qword [rsp + 0x58]
movzx ecx, byte [rsp + 0x78]
mov byte [rax + 0xc8], cl
call fcn.140058f00
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b40], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b3c], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b38], 0
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b44], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b20], 0
je 0x14005798a
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x4b7a]
test eax, eax
jne 0x14005798a
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4d10], 0
jne 0x14005798a
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x14005798a
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x14005798a
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x1400576d3
mov edx, 0xffffffff
mov ecx, 0x20c
call fcn.14004d2b0
movzx eax, al
test eax, eax
jne 0x1400576f9
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1400576f2
mov edx, 0xffffffff
mov ecx, 0x27c
call fcn.14004d2b0
movzx eax, al
test eax, eax
jne 0x1400576f9
mov byte [rsp + 0x3d], 0
jmp 0x1400576fe
mov byte [rsp + 0x3d], 1
movzx eax, byte [rsp + 0x3d]
mov byte [rsp + 0x41], al
movzx eax, byte [rsp + 0x41]
test eax, eax
je 0x14005775b
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140057732
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x20c
call fcn.14004d300
movzx eax, al
test eax, eax
jne 0x140057754
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14005775b
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x27c
call fcn.14004d300
movzx eax, al
test eax, eax
je 0x14005775b
mov byte [rsp + 0x3e], 1
jmp 0x140057760
mov byte [rsp + 0x3e], 0
movzx eax, byte [rsp + 0x3e]
mov byte [rsp + 0x43], al
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x14005779e
mov edx, 0xffffffff
mov ecx, 0x20d
call fcn.14004d2b0
movzx eax, al
test eax, eax
jne 0x1400577c4
mov edx, 0xffffffff
mov ecx, 0x273
call fcn.14004d2b0
movzx eax, al
test eax, eax
jne 0x1400577c4
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1400577bd
mov edx, 0xffffffff
mov ecx, 0x27b
call fcn.14004d2b0
movzx eax, al
test eax, eax
jne 0x1400577c4
mov byte [rsp + 0x3f], 0
jmp 0x1400577c9
mov byte [rsp + 0x3f], 1
movzx eax, byte [rsp + 0x3f]
mov byte [rsp + 0x42], al
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x14005783f
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140057816
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x20d
call fcn.14004d300
movzx eax, al
test eax, eax
jne 0x140057838
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x273
call fcn.14004d300
movzx eax, al
test eax, eax
jne 0x140057838
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x14005783f
xor r8d, r8d
mov edx, 0xffffffff
mov ecx, 0x27b
call fcn.14004d300
movzx eax, al
test eax, eax
je 0x14005783f
mov byte [rsp + 0x40], 1
jmp 0x140057844
mov byte [rsp + 0x40], 0
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4064], 0
jne 0x140057889
movzx eax, byte [rsp + 0x43]
test eax, eax
je 0x140057889
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
mov dword [rax + 0x4b38], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b44], 2
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4064], 0
je 0x1400578af
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
cmp dword [rax + 0x4064], ecx
jne 0x1400578dd
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x1400578dd
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
mov dword [rax + 0x4b38], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b44], 1
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4064], 0
je 0x140057903
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
cmp dword [rax + 0x4064], ecx
jne 0x14005792b
movzx eax, byte [rsp + 0x41]
test eax, eax
jne 0x140057915
movzx eax, byte [rsp + 0x42]
test eax, eax
je 0x14005792b
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
mov dword [rax + 0x4b3c], ecx
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4064], 0
je 0x140057951
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
cmp dword [rax + 0x4064], ecx
jne 0x14005798a
movzx eax, byte [rsp + 0x43]
test eax, eax
jne 0x140057963
movzx eax, byte [rsp + 0x44]
test eax, eax
je 0x14005798a
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b20]
mov dword [rax + 0x4b40], ecx
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax + 0x4b20]
call fcn.14004c010
nop
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x1400579bd
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
je 0x1400579bd
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b7a], 1
mov rax, qword [rsp + 0x30]
mov rax, qword [rsp + 0x30]
movss xmm0, dword [rax + 0x4b4c]
comiss xmm0, dword [0x1401fab3c]
jbe 0x140057a07
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
movss xmm0, dword [rax + 0x4b4c]
subss xmm0, dword [rcx + 0x10]
movaps xmm1, xmm0
xorps xmm0, xmm0
call fcn.1400421e0
mov rax, qword [rsp + 0x30]
movss dword [rax + 0x4b4c], xmm0
mov rax, qword [rsp + 0x30]
movss xmm0, dword [rax + 0x4b4c]
ucomiss xmm0, dword [0x1401fab3c]
jp 0x140057a2e
jne 0x140057a2e
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b48], 0
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4b5c], 0
je 0x140057a94
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b5c]
mov dword [rax + 0x4b40], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b40]
mov dword [rax + 0x4b3c], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b3c]
mov dword [rax + 0x4b38], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x4b60]
mov dword [rax + 0x4b44], ecx
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4b5c], 0
call fcn.140059200
nop
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x4bd0], 0xffffffff
jne 0x140057abd
call fcn.140059cc0
nop
call fcn.14005a310
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b78], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4b18], 0
je 0x140057dac
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
mov eax, dword [rax + 0x14]
and eax, 0x10000
test eax, eax
jne 0x140057dac
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x4d10], 0
jne 0x140057dac
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x4b18]
mov qword [rsp + 0x50], rax
mov rcx, qword [rsp + 0x50]
call fcn.14006be90
mulss xmm0, dword [0x1401ff790]
mov rax, qword [rsp + 0x58]
mulss xmm0, dword [rax + 0x10]
addss xmm0, dword [0x1401ff708]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
movss dword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x4bd0]
mov dword [rsp + 0x48], eax
mov rax, qword [rsp + 0x50]
movsx eax, word [rax + 0x16c]
test eax, eax
jne 0x140057c61
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0x172]
test eax, eax
je 0x140057c61
cmp dword [rsp + 0x48], 0xffffffff
je 0x140057c61
cmp dword [rsp + 0x48], 0
je 0x140057ba3
cmp dword [rsp + 0x48], 1
jne 0x140057bfb
cmp dword [rsp + 0x48], 0
jne 0x140057bba
movss xmm0, dword [0x1401fab70]
movss dword [rsp + 0x7c], xmm0
jmp 0x140057bc8
movss xmm0, dword [0x1401fab44]
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.140042060
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140046cd0
nop
cmp dword [rsp + 0x48], 2
je 0x140057c09
cmp dword [rsp + 0x48], 3
jne 0x140057c61
cmp dword [rsp + 0x48], 2
jne 0x140057c20
movss xmm0, dword [0x1401fab70]
movss dword [rsp + 0x64], xmm0
jmp 0x140057c2e
movss xmm0, dword [0x1401fab44]
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.140042060
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140046d20
nop
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x140057dac
mov dword [rsp + 0x20], 0x28a
mov r9d, 0x289
mov r8d, 0x288
mov edx, 0x287
lea rcx, [rsp + 0xc0]
call fcn.14004c9c0
mov ecx, 0x281
call fcn.14003b2a0
movzx eax, al
test eax, eax
je 0x140057cb5
movss xmm0, dword [0x1401ff6d8]
movss dword [rsp + 0x6c], xmm0
jmp 0x140057cf0
mov ecx, 0x282
call fcn.14003b2a0
movzx eax, al
test eax, eax
je 0x140057cd6
movss xmm0, dword [0x1401ff764]
movss dword [rsp + 0x68], xmm0
jmp 0x140057ce4
movss xmm0, dword [0x1401fab44]
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 [0x1401fab3c]
jp 0x140057d10
je 0x140057d5c
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbc]
test eax, eax
je 0x140057d5c
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.140042060
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140046cd0
nop
movss xmm0, dword [rsp + 0xc4]
ucomiss xmm0, dword [0x1401fab3c]
jp 0x140057d70
je 0x140057dac
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.140042060
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x50]
call fcn.140046d20
nop
movzx eax, byte [rsp + 0x39]
test eax, eax
jne 0x140057ddf
movzx eax, byte [rsp + 0x38]
test eax, eax
jne 0x140057ddf
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x4b7a], 1
mov byte [rsp + 0x3a], 0
mov rax, qword [rsp + 0x30]
movzx ecx, byte [rsp + 0x3a]
mov byte [rax + 0x4b7b], cl
movzx eax, byte [rsp + 0x3a]
test eax, eax
je 0x140057e1b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax]
and eax, 4
test eax, eax
je 0x140057e1b
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 4]
and eax, 4
test eax, eax
je 0x140057e1b
lea rcx, [rsp + 0xb8]
call fcn.14005b4e0
mov rcx, rax
call fcn.14004cde0
nop
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x4bfc], 0
mov rcx, qword [rsp + 0x108]
xor rcx, rsp
call fcn.1401e9b40
add rsp, 0x118
ret