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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x3a8
mov rax, qword [0x1802ffb80]
xor rax, rsp
mov qword [rsp + 0x390], rax
mov eax, 0x20
mov eax, eax
mov ecx, dword [0x18031b2e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
mov eax, dword [rax + rcx]
cmp dword [0x18031d508], eax
jle 0x1800183d6
lea rcx, [0x18031d508]
call fcn.18024c2f8
cmp dword [0x18031d508], 0xffffffff
jne 0x1800183d6
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [0x18031d510]
call fcn.180003530
nop
lea rcx, [0x18031d508]
call fcn.18024c28c
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 0x80
test rax, rax
jne 0x18001847f
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 8
test rax, rax
jne 0x18001847f
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 0x10
test rax, rax
jne 0x18001847f
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 0x100
test rax, rax
jne 0x18001847f
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 0x200
test rax, rax
jne 0x18001847f
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 0x400
test rax, rax
jne 0x18001847f
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 2
test rax, rax
jne 0x18001847f
mov dword [rsp + 0x34], 0
jmp 0x180018487
mov dword [rsp + 0x34], 1
movzx eax, byte [rsp + 0x34]
mov byte [rsp + 0x30], al
lea rcx, [0x18031d450]
call fcn.180004850
mov rcx, qword [rax + 8]
call fcn.1800120b0
movzx eax, al
test eax, eax
jne 0x1800184ff
mov rax, qword [rsp + 0x3c0]
add rax, 0x24
mov qword [rsp + 0x50], rax
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rsp + 0x1a0]
call fcn.180003530
lea rcx, [rsp + 0xb0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0xb0]
mov rcx, qword [rsp + 0x50]
call fcn.180016c20
jmp 0x180018c2f
lea rcx, [0x18031b688]
call fcn.180004850
mov qword [rsp + 0x58], rax
lea rcx, [0x18031d418]
call fcn.180004850
mov eax, dword [rax + 0x35c]
mov dword [rsp + 0x3c], eax
lea rcx, [0x18031d418]
call fcn.180004850
mov eax, dword [rax + 0x358]
mov dword [rsp + 0x40], eax
mov r8d, dword [rsp + 0x3c]
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
call fcn.180012a70
movzx eax, al
test eax, eax
jne 0x1800185a9
mov rax, qword [rsp + 0x3c0]
add rax, 0x24
mov qword [rsp + 0x60], rax
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rsp + 0x1ac]
call fcn.180003530
lea rcx, [rsp + 0xc0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0xc0]
mov rcx, qword [rsp + 0x60]
call fcn.180016c20
jmp 0x180018c2f
mov rax, qword [rsp + 0x3c0]
add rax, 0x2c
mov rcx, rax
call fcn.180117ee0
movzx eax, al
test eax, eax
je 0x180018883
lea rcx, [0x18031d450]
call fcn.180004850
mov rcx, qword [rax + 8]
call fcn.180012640
mov rcx, qword [rax]
call fcn.180012520
lea rcx, [0x18031d510]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x280]
call fcn.180014f80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x3001
lea rcx, [rsp + 0x240]
call fcn.1801213e0
mov edx, 1
lea rcx, [rsp + 0x270]
call fcn.180019c70
xor ecx, ecx
mov word [rax], cx
lea rax, [rsp + 0x208]
mov rdi, rax
xor eax, eax
mov ecx, 0x38
rep stosb byte [rdi], al
lea rcx, [rsp + 0x208]
call fcn.180018c50
lea rcx, [0x18031d3f0]
call fcn.180004850
mov rax, qword [rax + 0x48]
mov qword [rsp + 0x70], rax
lea rcx, [0x18031d4a0]
call fcn.180004850
mov rcx, rax
call fcn.180004c70
add rax, 0x44
mov qword [rsp + 0x68], rax
movss xmm3, dword [0x1802d9f0c]
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rsp + 0x1b8]
call fcn.180003530
lea rcx, [rsp + 0xd0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0xe0]
lea rcx, [rsp + 0xd0]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0x1c4]
mov rcx, qword [rsp + 0x68]
call fcn.180013750
lea rcx, [rsp + 0x98]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x110]
lea rcx, [rsp + 0x98]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rcx, [0x18031d4a0]
call fcn.180004850
mov rcx, rax
call fcn.180004c70
lea rcx, [rsp + 0x100]
mov rdi, rcx
lea rsi, [rax + 0x44]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x120]
lea rcx, [rsp + 0x100]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x130]
lea rcx, [rsp + 0x110]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0x120]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x280]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x240]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x130]
lea r8, [rsp + 0xf0]
lea rdx, [rsp + 0x208]
mov rcx, qword [rsp + 0x70]
call fcn.1800167b0
movss xmm0, dword [0x1802d9c98]
comiss xmm0, dword [rsp + 0x32c]
jbe 0x18001883f
movss xmm3, dword [0x1802d9d00]
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rsp + 0x1d0]
call fcn.180003530
mov r8, rax
lea rdx, [rsp + 0x1dc]
lea rcx, [rsp + 0x304]
call fcn.180015ff0
lea rcx, [0x18031d510]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x3c0]
add rax, 0x24
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x140]
lea rcx, [0x18031d510]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x140]
mov rcx, qword [rsp + 0x78]
call fcn.180016c20
jmp 0x180018b4b
lea rcx, [0x18031d450]
call fcn.180004850
mov rcx, qword [rax + 8]
call fcn.180012640
mov rcx, qword [rax]
call fcn.180012520
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x150]
mov rcx, qword [rsp + 0x3c0]
mov rdi, rax
lea rsi, [rcx + 0x2c]
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x160]
lea rcx, [rsp + 0x150]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x160]
mov rcx, qword [rsp + 0x80]
call fcn.180117f40
comiss xmm0, dword [0x1802d9d80]
jbe 0x180018b24
mov rax, qword [rsp + 0x3c0]
movzx eax, byte [rax + 0x26]
test eax, eax
je 0x180018b22
mov rax, qword [rsp + 0x3c0]
mov eax, dword [rax + 0x28]
inc eax
mov rcx, qword [rsp + 0x3c0]
mov dword [rcx + 0x28], eax
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rsp + 0x1f8]
call fcn.180003530
lea rcx, [0x18031d420]
call fcn.180004850
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x3c0]
add rax, 0x2c
mov qword [rsp + 0x88], rax
lea rcx, [0x18031d450]
call fcn.180004850
mov rcx, qword [rax + 8]
call fcn.180012640
mov rcx, qword [rax]
call fcn.180012520
lea rcx, [rsp + 0x170]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x170]
lea rdx, [rsp + 0x1e8]
mov rcx, qword [rsp + 0x88]
call fcn.180013750
lea rcx, [rsp + 0x180]
mov rdi, rcx
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x190]
lea rcx, [rsp + 0x180]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x1f8]
lea rdx, [rsp + 0x190]
mov rcx, qword [rsp + 0x90]
call fcn.18003f2e0
mov rcx, qword [rsp + 0x3d0]
call fcn.180012380
mov rcx, rax
call fcn.180012280
subss xmm0, dword [rsp + 0x1fc]
call fcn.180015fd0
call fcn.180015ed0
movss dword [rsp + 0x44], xmm0
cvtss2sd xmm1, dword [rsp + 0x1f8]
mulsd xmm1, qword [0x1802d9cb8]
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
cvtsd2ss xmm0, xmm0
movss xmm1, dword [rsp + 0x44]
mulss xmm1, xmm0
movaps xmm0, xmm1
movaps xmm1, xmm0
movss xmm0, dword [0x1802d9c98]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fminf]
movss xmm1, dword [0x1802d9f54]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x3d0]
call fcn.180016520
mov rcx, qword [rsp + 0x3d0]
call fcn.180012380
mov rcx, rax
call fcn.180012280
subss xmm0, dword [rsp + 0x1fc]
call fcn.180015fd0
call fcn.180015ef0
movss dword [rsp + 0x48], xmm0
cvtss2sd xmm1, dword [rsp + 0x1f8]
mulsd xmm1, qword [0x1802d9cb8]
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
cvtsd2ss xmm0, xmm0
movss xmm1, dword [rsp + 0x48]
mulss xmm1, xmm0
movaps xmm0, xmm1
movaps xmm1, xmm0
movss xmm0, dword [0x1802d9c98]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fminf]
movss xmm1, dword [0x1802d9f54]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
xorps xmm0, xmmword [0x1802d9fd0]
movaps xmm1, xmm0
mov rcx, qword [rsp + 0x3d0]
call fcn.1800165e0
jmp 0x180018b4b
mov rax, qword [rsp + 0x3c0]
mov byte [rax + 0x26], 0
mov rax, qword [rsp + 0x3c0]
mov byte [rax + 0x25], 0
mov rax, qword [rsp + 0x3c0]
mov dword [rax + 0x28], 0
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 1
test rax, rax
jne 0x180018b7e
movzx eax, byte [rsp + 0x30]
test eax, eax
jne 0x180018bb9
lea rcx, [0x18031d418]
call fcn.180004850
cmp dword [rax + 0x354], 0
jne 0x180018bb9
mov rax, qword [rsp + 0x3c0]
mov byte [rax + 0x26], 1
mov rax, qword [rsp + 0x3c0]
mov byte [rax + 0x24], 1
mov rax, qword [rsp + 0x3c8]
mov rax, qword [rax + 0x60]
and rax, 1
test rax, rax
je 0x180018bb7
mov rax, qword [rsp + 0x3c0]
mov byte [rax + 0x25], 1
jmp 0x180018c2f
mov rax, qword [rsp + 0x3c8]
cmp qword [rax + 0x60], 0
jne 0x180018bd2
mov dword [rsp + 0x38], 1
jmp 0x180018bda
mov dword [rsp + 0x38], 0
mov eax, dword [rsp + 0x38]
and eax, 1
test eax, eax
je 0x180018c2f
movzx eax, byte [rsp + 0x30]
test eax, eax
je 0x180018c2f
lea rcx, [0x18031d418]
call fcn.180004850
cmp dword [rax + 0x354], 1
jne 0x180018c2f
mov rax, qword [rsp + 0x3c0]
movzx eax, byte [rax + 0x26]
test eax, eax
je 0x180018c2f
mov rax, qword [rsp + 0x3c0]
movzx eax, byte [rax + 0x25]
test eax, eax
jne 0x180018c2f
mov rax, qword [rsp + 0x3c0]
mov byte [rax + 0x26], 0
mov rcx, qword [rsp + 0x390]
xor rcx, rsp
call fcn.18024c230
add rsp, 0x3a8
pop rdi
pop rsi
ret