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

Disassembly:
mov r11, rsp
mov dword [r11 + 0x18], r8d
push rbp
push rbx
push r13
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x1801fbf58]
xor r13d, r13d
movaps xmmword [r11 - 0xa8], xmm12
mov ebx, r8d
movaps xmm12, xmm1
mov qword [rsp + 0x68], rcx
mov qword [rbp - 0x58], rax
cmp dword [rax + 0x40a0], r13d
jle 0x1800d0a15
mov qword [r11 + 0x10], rsi
xor ecx, ecx
mov qword [r11 - 0x20], rdi
lea rsi, [0x180194b10]
mov qword [r11 - 0x30], r14
movaps xmmword [r11 - 0xb8], xmm13
xorps xmm13, xmm13
movaps xmmword [r11 - 0xc8], xmm14
movss xmm14, dword [rsp + 0x6c]
movaps xmmword [r11 - 0xd8], xmm15
movss xmm15, dword [rsp + 0x68]
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x38], r15
movaps xmmword [r11 - 0x48], xmm6
movaps xmmword [r11 - 0x58], xmm7
movaps xmmword [r11 - 0x68], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x88], xmm10
movaps xmmword [r11 - 0x98], xmm11
mov qword [rbp - 0x60], rcx
nop word [rax + rax]
mov rax, qword [rax + 0x40a8]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rcx + rax]
call fcn.1800d1840
xorps xmm0, xmm0
xorps xmm1, xmm1
mov rdi, rax
mov rcx, qword [rax + 0x38]
mov rdx, qword [rcx + 8]
mov r14, qword [rdx + 0x40]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm1
cmp ebx, 8
ja 0x1800d097e
test byte [r14], 2
jne 0x1800d097e
movsxd rcx, dword [r14 + 0x484]
movaps xmm8, xmm15
shl rcx, 5
movaps xmm9, xmm14
add rcx, qword [r14 + 0x60]
movsxd rax, ebx
lea rdx, [rax + rax*2]
movzx eax, word [rcx + 4]
movss xmm10, dword [rsi + rdx*8 + 8]
movss xmm11, dword [rsi + rdx*8 + 0xc]
subss xmm8, dword [rsi + rdx*8 + 0x10]
subss xmm9, dword [rsi + rdx*8 + 0x14]
movd xmm4, eax
movzx eax, word [rcx + 6]
mov rcx, rdi
cvtdq2ps xmm4, xmm4
movd xmm3, eax
addss xmm4, dword [rsi + rdx*8]
cvtdq2ps xmm3, xmm3
movaps xmm1, xmm4
movss dword [rsp + 0x60], xmm8
mulss xmm1, dword [r14 + 0x38]
addss xmm3, dword [rsi + rdx*8 + 4]
movss dword [rsp + 0x64], xmm9
movaps xmm0, xmm3
movaps xmm2, xmm3
mulss xmm0, dword [r14 + 0x3c]
addss xmm2, xmm11
movss dword [rsp + 0x40], xmm1
movaps xmm1, xmm4
addss xmm4, dword [0x180196174]
movss dword [rsp + 0x44], xmm0
addss xmm1, xmm10
movaps xmm0, xmm2
mulss xmm0, dword [r14 + 0x3c]
mulss xmm1, dword [r14 + 0x38]
movss dword [rsp + 0x4c], xmm0
movaps xmm0, xmm4
movss dword [rsp + 0x48], xmm1
mulss xmm0, dword [r14 + 0x38]
mulss xmm3, dword [r14 + 0x3c]
movss dword [rsp + 0x50], xmm0
movaps xmm0, xmm10
addss xmm0, xmm4
movss dword [rsp + 0x54], xmm3
mulss xmm2, dword [r14 + 0x3c]
mulss xmm0, dword [r14 + 0x38]
movss dword [rsp + 0x5c], xmm2
movss dword [rsp + 0x58], xmm0
mov r14, qword [r14 + 8]
mov rdx, r14
call fcn.1800fd990
movaps xmm0, xmm10
mov dword [rsp + 0x30], 0x30000000
addss xmm0, dword [0x1801960c8]
movaps xmm7, xmm11
lea rax, [rsp + 0x58]
addss xmm7, xmm13
mov qword [rsp + 0x28], rax
movaps xmm6, xmm12
lea rax, [rsp + 0x50]
mulss xmm6, xmm13
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x78]
mov rdx, r14
mulss xmm0, xmm12
mov rcx, rdi
mov qword [rsp + 0x20], rax
mulss xmm7, xmm12
addss xmm0, xmm8
movss dword [rsp + 0x70], xmm0
movaps xmm0, xmm7
addss xmm0, xmm9
movss dword [rsp + 0x74], xmm0
movaps xmm0, xmm8
addss xmm0, xmm12
movss dword [rsp + 0x78], xmm0
movaps xmm0, xmm6
addss xmm0, xmm9
movss dword [rsp + 0x7c], xmm0
call fcn.180100360
movaps xmm0, xmm10
mov dword [rsp + 0x30], 0x30000000
addss xmm0, dword [0x180196100]
movaps xmm1, xmm12
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
addss xmm1, xmm12
lea rax, [rsp + 0x50]
mov rdx, r14
lea r9, [rbp - 0x80]
mov qword [rsp + 0x20], rax
mulss xmm0, xmm12
lea r8, [rbp - 0x78]
mov rcx, rdi
addss xmm1, xmm8
addss xmm0, xmm8
movss dword [rbp - 0x78], xmm1
movss dword [rbp - 0x80], xmm0
movaps xmm0, xmm9
addss xmm0, xmm7
movss dword [rbp - 0x7c], xmm0
movaps xmm0, xmm9
addss xmm0, xmm6
movss dword [rbp - 0x74], xmm0
call fcn.180100360
mov r12, qword [rdi + 0x98]
movaps xmm7, xmm9
mulss xmm10, xmm12
mulss xmm11, xmm12
movaps xmm6, xmm10
addss xmm10, xmm8
addss xmm6, xmm8
addss xmm7, xmm11
addss xmm11, xmm9
movss dword [rbp - 0x70], xmm10
movss dword [rbp - 0x6c], xmm11
cmp r14, r12
je 0x1800d0741
mov rdx, r14
mov rcx, rdi
call fcn.1800fd990
mov eax, dword [rdi + 0x34]
add eax, 4
cmp eax, 0x10000
jb 0x1800d0784
test byte [rdi + 0x30], 8
je 0x1800d0784
movsxd rax, dword [rdi]
mov ecx, dword [rdi + 0x20]
imul rdx, rax, 0x38
mov rax, qword [rdi + 8]
mov dword [rdi + 0xa0], ecx
mov dword [rdi + 0x34], 0
cmp dword [rdx + rax - 0x18], 0
je 0x1800d0780
mov rcx, rdi
call fcn.1800fd4f0
jmp 0x1800d0784
mov dword [rdx + rax - 0x20], ecx
movsxd rax, dword [rdi]
imul rcx, rax, 0x38
mov rax, qword [rdi + 8]
add dword [rcx + rax - 0x18], 6
lea rcx, [rdi + 0x20]
movsxd rbx, dword [rdi + 0x20]
lea edx, [rbx + 4]
call fcn.180105be0
mov rax, qword [rdi + 0x28]
lea rcx, [rbx + rbx*4]
movsxd rbx, dword [rdi + 0x10]
lea rcx, [rax + rcx*4]
mov qword [rdi + 0x48], rcx
lea edx, [rbx + 6]
lea rcx, [rdi + 0x10]
call fcn.1800e7af0
mov rax, qword [rdi + 0x18]
lea r9, [rsp + 0x50]
mov dword [rsp + 0x28], 0xff000000
lea r8, [rbp - 0x70]
lea rdx, [rsp + 0x60]
lea rcx, [rax + rbx*2]
mov qword [rdi + 0x50], rcx
lea rax, [rsp + 0x58]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1800fdc60
cmp r14, r12
je 0x1800d0805
mov rcx, rdi
call fcn.1800fdad0
mov r12, qword [rdi + 0x98]
movss dword [rbp - 0x68], xmm6
movss dword [rbp - 0x64], xmm7
cmp r14, r12
je 0x1800d0826
mov rdx, r14
mov rcx, rdi
call fcn.1800fd990
mov eax, dword [rdi + 0x34]
add eax, 4
cmp eax, 0x10000
jb 0x1800d0869
test byte [rdi + 0x30], 8
je 0x1800d0869
movsxd rax, dword [rdi]
mov ecx, dword [rdi + 0x20]
imul rdx, rax, 0x38
mov rax, qword [rdi + 8]
mov dword [rdi + 0xa0], ecx
mov dword [rdi + 0x34], 0
cmp dword [rdx + rax - 0x18], 0
je 0x1800d0865
mov rcx, rdi
call fcn.1800fd4f0
jmp 0x1800d0869
mov dword [rdx + rax - 0x20], ecx
movsxd rax, dword [rdi]
lea rcx, [rdi + 0x20]
imul rdx, rax, 0x38
mov rax, qword [rdi + 8]
add dword [rdx + rax - 0x18], 6
movsxd rbx, dword [rdi + 0x20]
lea edx, [rbx + 4]
call fcn.180105be0
mov rax, qword [rdi + 0x28]
lea rdx, [rbx + rbx*4]
movsxd rbx, dword [rdi + 0x10]
lea rcx, [rdi + 0x10]
lea rdx, [rax + rdx*4]
mov qword [rdi + 0x48], rdx
lea edx, [rbx + 6]
call fcn.1800e7af0
mov rax, qword [rdi + 0x18]
lea r9, [rsp + 0x40]
mov dword [rsp + 0x28], 0xffffffff
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x60]
lea rcx, [rax + rbx*2]
mov qword [rdi + 0x50], rcx
lea rax, [rsp + 0x48]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1800fdc60
cmp r14, r12
je 0x1800d08ea
mov rcx, rdi
call fcn.1800fdad0
movsxd rcx, dword [rdi + 0x68]
lea eax, [rcx - 1]
mov dword [rdi + 0x68], eax
test eax, eax
jne 0x1800d08fd
xor r14d, r14d
jmp 0x1800d0906
mov rax, qword [rdi + 0x70]
mov r14, qword [rax + rcx*8 - 0x10]
movsxd rcx, dword [rdi]
imul rbx, rcx, 0x38
mov qword [rdi + 0x98], r14
lea r12d, [rcx - 1]
add rbx, qword [rdi + 8]
mov eax, dword [rbx - 0x18]
test eax, eax
je 0x1800d0937
cmp qword [rbx - 0x28], r14
je 0x1800d0933
mov rcx, rdi
call fcn.1800fd4f0
jmp 0x1800d0971
test eax, eax
jne 0x1800d096d
cmp ecx, 1
jle 0x1800d096d
lea rcx, [rdi + 0x88]
mov r8d, 0x1c
lea rdx, [rbx - 0x70]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800d096d
mov eax, dword [rbx - 0x50]
add eax, dword [rbx - 0x54]
cmp eax, dword [rbx - 0x1c]
jne 0x1800d096d
cmp qword [rbx - 0x48], 0
jne 0x1800d096d
mov dword [rdi], r12d
jmp 0x1800d0971
mov qword [rbx - 0x28], r14
mov ebx, dword [rbp + 0xa0]
lea rsi, [0x180194b10]
mov rcx, qword [rbp - 0x60]
inc r13d
mov rax, qword [rbp - 0x58]
add rcx, 8
mov qword [rbp - 0x60], rcx
cmp r13d, dword [rax + 0x40a0]
jl 0x1800d04a0
movaps xmm15, xmmword [rsp + 0xb0]
movaps xmm14, xmmword [rsp + 0xc0]
movaps xmm13, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm9, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm6, xmmword [rsp + 0x140]
mov r15, qword [rsp + 0x150]
mov r14, qword [rsp + 0x158]
mov r12, qword [rsp + 0x160]
mov rdi, qword [rsp + 0x168]
mov rsi, qword [rsp + 0x198]
movaps xmm12, xmmword [rsp + 0xe0]
add rsp, 0x170
pop r13
pop rbx
pop rbp
ret