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

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xd8]
sub rsp, 0x1a0
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov rax, qword [0x180060040]
xor rax, rsp
mov qword [rbp], rax
mov r12, rdx
mov r14, rcx
mov rbx, qword [0x1800ada40]
mov r15, rbx
mov rax, qword [rbx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rsi, qword [rbx + 0x3ea0]
mov qword [rsp + 0x70], rsi
cmp byte [rsi + 0x9b], 0
jne 0x18003c434
movsxd r8, dword [rsi + 0xd0]
mov rax, qword [rsi + 0xd8]
mov r8d, dword [rax + r8*4 - 4]
xor edx, edx
call fcn.18000c420
mov edi, eax
cmp dword [rbx + 0x3ee8], eax
jne 0x18003ba79
mov r8, r14
mov edx, 0xb
mov ecx, eax
call fcn.180022c70
mov rbx, qword [0x1800ada40]
mov rcx, r14
cmp r14, 0xffffffffffffffff
jae 0x18003ba9f
movzx edx, byte [rcx]
test dl, dl
je 0x18003ba9f
lea rax, [rcx + 1]
cmp dl, 0x23
jne 0x18003ba96
cmp byte [rax], dl
je 0x18003ba9f
mov rcx, rax
cmp rax, 0xffffffffffffffff
jb 0x18003ba82
movss xmm2, dword [rbx + 0x3c00]
xorps xmm11, xmm11
cmp r14, rcx
jne 0x18003bab5
xorps xmm0, xmm0
jmp 0x18003bb05
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], r14
movss xmm0, dword [0x1800573b4]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x1800573a0]
lea rdx, [rsp + 0x60]
mov rcx, qword [rbx + 0x3bf8]
call fcn.180032900
movss xmm0, dword [rsp + 0x60]
addss xmm0, dword [0x1800571c8]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm2, dword [rsp + 0x64]
movss xmm10, dword [rbx + 0x3820]
addss xmm10, xmm10
addss xmm10, dword [rbx + 0x3c00]
addss xmm10, dword [0x1800571d0]
movss xmm14, dword [rsi + 0xe0]
movss xmm13, dword [rsi + 0xe4]
movss xmm3, dword [r15 + 0x3820]
movaps xmm1, xmm3
addss xmm1, xmm3
addss xmm1, xmm2
comiss xmm0, xmm11
jbe 0x18003bb5c
addss xmm0, dword [r15 + 0x3834]
jmp 0x18003bb5f
xorps xmm0, xmm0
addss xmm1, xmm13
addss xmm0, xmm10
addss xmm0, xmm14
movss dword [rbp - 0x10], xmm14
movss dword [rbp - 0xc], xmm13
movss dword [rbp - 8], xmm0
movss dword [rbp - 4], xmm1
subss xmm1, xmm13
subss xmm0, xmm14
movss dword [rsp + 0x60], xmm0
movss dword [rsp + 0x64], xmm1
movaps xmm1, xmm3
lea rcx, [rsp + 0x60]
call fcn.18001b2b0
xor r9d, r9d
xor r8d, r8d
mov edx, edi
lea rcx, [rbp - 0x10]
call fcn.18001b420
test al, al
je 0x18003c434
xor r13d, r13d
mov dword [rsp + 0x20], r13d
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x51]
mov edx, edi
lea rcx, [rbp - 0x10]
call fcn.180039e00
mov byte [rsp + 0x50], al
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18001a930
test al, al
je 0x18003bd26
mov rcx, qword [0x1800ada40]
mov r8, qword [rcx + 0x3ea0]
cmp byte [rcx + 0x48c3], r13b
je 0x18003bc41
cmp byte [rcx + 0x48c2], r13b
jne 0x18003bc41
test byte [rcx + 0x4740], 4
jne 0x18003bd26
mov eax, dword [rcx + 0x4888]
cmp eax, dword [rcx + 0x473c]
jne 0x18003bd26
test eax, eax
jne 0x18003bd0b
jmp 0x18003bd26
mov eax, dword [rcx + 0x4744]
test al, 1
je 0x18003bd26
cmp qword [rcx + 0x3ea8], r8
je 0x18003bc60
test al, al
jns 0x18003bd26
mov eax, dword [rcx + 0x3f00]
test eax, eax
je 0x18003bc85
cmp eax, dword [rcx + 0x473c]
je 0x18003bc85
cmp byte [rcx + 0x3f0d], r13b
jne 0x18003bc85
cmp eax, dword [r8 + 0x5c]
jne 0x18003bd26
mov rdx, qword [rcx + 0x4880]
test rdx, rdx
je 0x18003bced
mov rdx, qword [rdx + 0x358]
test rdx, rdx
je 0x18003bced
cmp byte [rdx + 0x97], r13b
je 0x18003bced
mov rax, qword [r8 + 0x358]
cmp rdx, rax
je 0x18003bced
mov r9d, dword [rdx + 0xc]
bt r9d, 0x1b
jb 0x18003bcc4
bt r9d, 0x1a
jae 0x18003bced
cmp qword [rax + 0x358], rdx
je 0x18003bced
nop dword [rax]
cmp rax, rdx
je 0x18003bced
mov rax, qword [rax + 0x350]
test rax, rax
jne 0x18003bcd0
test dword [rcx + 0x4740], 0x100
je 0x18003bd26
test byte [rcx + 0x4740], 4
jne 0x18003bd26
mov eax, dword [r8 + 0x5c]
cmp dword [rcx + 0x473c], eax
jne 0x18003bd0b
cmp byte [r8 + 0x98], r13b
jne 0x18003bd26
cmp byte [r12], r13b
sete al
mov byte [r12], al
mov word [rcx + 0x3f10], 0x101
or dword [rcx + 0x4744], 4
mov ecx, dword [0x1800ad984]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov eax, dword [rdx + rax]
cmp dword [0x1800b07c0], eax
jle 0x18003bda7
lea rcx, [0x1800b07c0]
call fcn.18004b1c8
cmp dword [0x1800b07c0], 0xffffffff
jne 0x18003bda7
mov qword [0x1800b0760], r13
mov qword [0x1800b0768], r13
mov ecx, 0x78
call fcn.18004b240
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [0x1800b0760], rax
lea rcx, [0x18004d4f0]
call fcn.18004b5d4
nop
lea rcx, [0x1800b07c0]
call fcn.18004b15c
mov rsi, qword [0x1800b0760]
mov rax, qword [rsi + 8]
mov rbx, rsi
cmp byte [rax + 0x19], 0
jne 0x18003bdd7
nop dword [rax + rax]
cmp dword [rax + 0x1c], edi
jae 0x18003bdcb
mov rax, qword [rax + 0x10]
jmp 0x18003bdd1
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18003bdc0
cmp byte [rbx + 0x19], 0
jne 0x18003bde2
cmp edi, dword [rbx + 0x1c]
jae 0x18003bde5
mov rbx, rsi
cmp rbx, rsi
jne 0x18003bf2d
xor eax, eax
xorps xmm0, xmm0
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm3, xmm3
xorps xmm4, xmm4
mov dword [rbp - 0x68], edi
movups xmmword [rbp - 0x64], xmm0
movups xmmword [rbp - 0x54], xmm1
movups xmmword [rbp - 0x44], xmm2
movups xmmword [rbp - 0x34], xmm3
movups xmmword [rbp - 0x24], xmm4
mov dword [rbp - 0x14], eax
mov rax, qword [rsi + 8]
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], r13d
mov rcx, rsi
cmp byte [rax + 0x19], 0
jne 0x18003be56
nop
mov qword [rbp - 0x80], rax
cmp dword [rax + 0x1c], edi
jae 0x18003be43
mov dword [rbp - 0x78], r13d
mov rax, qword [rax + 0x10]
jmp 0x18003be50
mov dword [rbp - 0x78], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18003be30
cmp byte [rcx + 0x19], 0
jne 0x18003be65
cmp edi, dword [rcx + 0x1c]
jae 0x18003befb
movabs rax, 0x222222222222222
cmp qword [0x1800b0768], rax
je 0x18003c48d
lea rbx, [0x1800b0760]
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], r13
mov ecx, 0x78
call fcn.18004b240
nop
movups xmm0, xmmword [rbp - 0x68]
movups xmmword [rax + 0x1c], xmm0
movups xmm1, xmmword [rbp - 0x58]
movups xmmword [rax + 0x2c], xmm1
movups xmm0, xmmword [rbp - 0x48]
movups xmmword [rax + 0x3c], xmm0
movups xmm1, xmmword [rbp - 0x38]
movups xmmword [rax + 0x4c], xmm1
movups xmm0, xmmword [rbp - 0x28]
movups xmmword [rax + 0x5c], xmm0
movsd xmm1, qword [rbp - 0x18]
movsd qword [rax + 0x6c], xmm1
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rsi
mov word [rax + 0x18], 0
movups xmm0, xmmword [rbp - 0x80]
movaps xmmword [rsp + 0x60], xmm0
mov r8, rax
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.1800241b0
mov rsi, qword [0x1800b0760]
mov rax, qword [rsi + 8]
mov rbx, rsi
cmp byte [rax + 0x19], 0
jne 0x18003bf1f
cmp dword [rax + 0x1c], edi
jae 0x18003bf13
mov rax, qword [rax + 0x10]
jmp 0x18003bf19
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x18003bf08
cmp byte [rbx + 0x19], 0
jne 0x18003bf2a
cmp edi, dword [rbx + 0x1c]
jae 0x18003bf2d
mov rbx, rsi
movss xmm6, dword [r15 + 0x18]
movss xmm12, dword [0x180057258]
mulss xmm6, xmm12
movzx eax, byte [rsp + 0x51]
cmp byte [r12], 0
je 0x18003bf6b
movups xmm2, xmmword [0x1800b07f8]
movaps xmm4, xmm2
shufps xmm4, xmm2, 0x55
movaps xmm5, xmm2
shufps xmm5, xmm2, 0xaa
movaps xmm3, xmm2
shufps xmm3, xmm2, 0xff
jmp 0x18003bf89
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm0, xmm0
shufps xmm0, xmm3, 0x55
movaps xmm4, xmm0
xorps xmm1, xmm1
shufps xmm1, xmm3, 0xaa
movaps xmm5, xmm1
shufps xmm3, xmm3, 0xff
subss xmm2, dword [rbx + 0x20]
mulss xmm2, xmm6
addss xmm2, dword [rbx + 0x20]
subss xmm4, dword [rbx + 0x24]
mulss xmm4, xmm6
addss xmm4, dword [rbx + 0x24]
subss xmm5, dword [rbx + 0x28]
mulss xmm5, xmm6
addss xmm5, dword [rbx + 0x28]
subss xmm3, dword [rbx + 0x2c]
mulss xmm3, xmm6
addss xmm3, dword [rbx + 0x2c]
shufps xmm2, xmm2, 0xe1
movss xmm2, xmm4
shufps xmm2, xmm2, 0xc6
movss xmm2, xmm5
shufps xmm2, xmm2, 0x27
movss xmm2, xmm3
shufps xmm2, xmm2, 0x39
movups xmmword [rsp + 0x60], xmm2
movups xmmword [rbx + 0x20], xmm2
movss xmm6, dword [r15 + 0x18]
mulss xmm6, xmm12
cmp byte [r12], 0
je 0x18003c016
movups xmm2, xmmword [0x1800b08b0]
movaps xmm4, xmm2
shufps xmm4, xmm2, 0x55
movaps xmm5, xmm2
shufps xmm5, xmm2, 0xaa
movaps xmm3, xmm2
shufps xmm3, xmm2, 0xff
jmp 0x18003c034
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm0, xmm0
shufps xmm0, xmm3, 0x55
movaps xmm4, xmm0
xorps xmm1, xmm1
shufps xmm1, xmm3, 0xaa
movaps xmm5, xmm1
shufps xmm3, xmm3, 0xff
subss xmm2, dword [rbx + 0x30]
mulss xmm2, xmm6
addss xmm2, dword [rbx + 0x30]
subss xmm4, dword [rbx + 0x34]
mulss xmm4, xmm6
addss xmm4, dword [rbx + 0x34]
subss xmm5, dword [rbx + 0x38]
mulss xmm5, xmm6
addss xmm5, dword [rbx + 0x38]
subss xmm3, dword [rbx + 0x3c]
mulss xmm3, xmm6
addss xmm3, dword [rbx + 0x3c]
shufps xmm2, xmm2, 0xe1
movss xmm2, xmm4
shufps xmm2, xmm2, 0xc6
movss xmm2, xmm5
shufps xmm2, xmm2, 0x27
movss xmm2, xmm3
shufps xmm2, xmm2, 0x39
movups xmmword [rsp + 0x60], xmm2
movups xmmword [rbx + 0x30], xmm2
movss xmm6, dword [r15 + 0x18]
mulss xmm6, dword [0x180057284]
cmp byte [r12], 0
je 0x18003c0c4
movups xmm2, xmmword [0x1800b0948]
movaps xmm4, xmm2
shufps xmm4, xmm2, 0x55
movaps xmm5, xmm2
shufps xmm5, xmm2, 0xaa
movaps xmm3, xmm2
shufps xmm3, xmm2, 0xff
jmp 0x18003c0e2
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm0, xmm0
shufps xmm0, xmm3, 0x55
movaps xmm4, xmm0
xorps xmm1, xmm1
shufps xmm1, xmm3, 0xaa
movaps xmm5, xmm1
shufps xmm3, xmm3, 0xff
subss xmm2, dword [rbx + 0x50]
mulss xmm2, xmm6
addss xmm2, dword [rbx + 0x50]
subss xmm4, dword [rbx + 0x54]
mulss xmm4, xmm6
addss xmm4, dword [rbx + 0x54]
subss xmm5, dword [rbx + 0x58]
mulss xmm5, xmm6
addss xmm5, dword [rbx + 0x58]
subss xmm3, dword [rbx + 0x5c]
mulss xmm3, xmm6
addss xmm3, dword [rbx + 0x5c]
shufps xmm2, xmm2, 0xe1
movss xmm2, xmm4
shufps xmm2, xmm2, 0xc6
movss xmm2, xmm5
shufps xmm2, xmm2, 0x27
movss xmm2, xmm3
shufps xmm2, xmm2, 0x39
movups xmmword [rsp + 0x60], xmm2
movups xmmword [rbx + 0x50], xmm2
movss xmm3, dword [r15 + 0x18]
mulss xmm3, dword [0x180057248]
cmp byte [r12], 0
je 0x18003c15a
movaps xmm1, xmm11
jmp 0x18003c162
movss xmm1, dword [0x18005728c]
subss xmm1, dword [rbx + 0x70]
mulss xmm1, xmm3
addss xmm1, dword [rbx + 0x70]
movss dword [rbx + 0x70], xmm1
movss xmm2, dword [r15 + 0x18]
mulss xmm2, xmm12
shufps xmm2, xmm2, 0
cmp byte [r12], 0
je 0x18003c194
lea rcx, [0x1800b0900]
jmp 0x18003c1a8
lea rdx, [0x1800b09b8]
lea rcx, [0x1800b07a0]
test al, al
cmovne rcx, rdx
movups xmm0, xmmword [rbx + 0x40]
movups xmm1, xmmword [rcx]
subps xmm1, xmm0
mulps xmm1, xmm2
addps xmm1, xmm0
movups xmmword [rbx + 0x40], xmm1
movaps xmm9, xmm14
addss xmm9, xmm10
movaps xmm6, xmm13
addss xmm6, xmm10
mov r8d, 1
mov edx, edi
lea rcx, [rbp - 0x10]
call fcn.18000e050
lea rcx, [0x1800b0968]
call fcn.18000cef0
mov r8d, eax
movss xmm0, dword [r15 + 0x3824]
movss dword [rsp + 0x20], xmm0
movaps xmm8, xmm9
unpcklps xmm8, xmm6
movq rdx, xmm8
movaps xmm7, xmm14
unpcklps xmm7, xmm13
movq rcx, xmm7
call fcn.18000df10
mov rcx, qword [0x1800ada40]
mov rax, qword [rcx + 0x3ea0]
mov byte [rax + 0x98], 1
mov rax, qword [rcx + 0x3ea0]
mov rcx, qword [rax + 0x278]
mov edi, dword [rcx + 0x20]
movss xmm2, dword [rbx + 0x70]
movaps xmm0, xmm9
subss xmm0, xmm2
movss dword [rsp + 0x60], xmm0
subss xmm6, xmm2
movss dword [rsp + 0x64], xmm6
movaps xmm0, xmm14
addss xmm0, xmm2
movss dword [rbp - 0x10], xmm0
movaps xmm1, xmm13
addss xmm1, xmm2
movss dword [rbp - 0xc], xmm1
lea rcx, [rbx + 0x20]
call fcn.18000cef0
mov r9d, eax
mov dword [rsp + 0x28], 0
movss xmm0, dword [r15 + 0x3824]
movss dword [rsp + 0x20], xmm0
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x10]
mov r12, qword [rsp + 0x70]
mov rcx, qword [r12 + 0x278]
call fcn.18002ebb0
lea rcx, [rbx + 0x20]
call fcn.18000cef0
mov r11d, eax
lea rcx, [rbx + 0x30]
call fcn.18000cef0
mov r10, qword [0x1800ada40]
mov rcx, qword [r10 + 0x3ea0]
mov byte [rcx + 0x98], 1
mov r9, qword [r10 + 0x3ea0]
mov rcx, qword [r9 + 0x278]
mov r8d, dword [rcx + 0x20]
mov byte [r9 + 0x98], 1
mov rcx, qword [r10 + 0x3ea0]
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x28], eax
movsd qword [rsp + 0x20], xmm8
movq r9, xmm7
mov edx, edi
mov rcx, qword [rcx + 0x278]
call fcn.18002f6c0
movaps xmm0, xmm10
divss xmm0, xmm12
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm2, dword [0x1800571d0]
maxss xmm2, xmm1
movaps xmm7, xmm2
addss xmm7, dword [0x180057220]
movaps xmm6, xmm7
addss xmm6, xmm14
addss xmm7, dword [rbx + 0x70]
addss xmm7, xmm13
mulss xmm2, dword [0x18005723c]
subss xmm10, xmm2
lea rcx, [rbx + 0x50]
call fcn.18000cef0
mov r8d, eax
movaps xmm3, xmm10
unpcklps xmm6, xmm7
movq rdx, xmm6
mov rcx, qword [r12 + 0x278]
call fcn.180033430
addss xmm9, dword [r15 + 0x3834]
movss dword [rbp - 0x10], xmm9
addss xmm13, dword [r15 + 0x3820]
movss dword [rbp - 0xc], xmm13
mov rdx, qword [r12 + 0x278]
lea rcx, [rbx + 0x40]
call fcn.18000cef0
mov r8d, eax
test eax, 0xff000000
je 0x18003c42d
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [r14 + rcx], 0
jne 0x18003c3d4
add rcx, r14
cmp r14, rcx
je 0x18003c42d
mov rax, qword [rdx + 0x38]
movups xmm0, xmmword [rdx + 0x88]
movups xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm11
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], r14
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r8d
lea r9, [rbp - 0x10]
movss xmm2, dword [rax + 0x10]
mov rcx, qword [rax + 8]
call fcn.180032b20
movzx eax, byte [rsp + 0x50]
jmp 0x18003c436
xor al, al
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.18004b100
lea r11, [rsp + 0x1a0]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18000bbc0
int3