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

Disassembly:
mov rax, rsp
push rbp
push rbx
lea rbp, [rax - 0x5f]
sub rsp, 0xd8
mov qword [rax - 0x30], r13
mov rbx, rcx
mov qword [rax - 0x40], r15
mov r15, qword [0x1800b1c28]
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x40], xmm11
mov rax, qword [r15 + 0x1c08]
mov qword [rbp + 0x77], rax
movsxd rax, dword [rcx + 0x7c]
cmp eax, 0xffffffff
je 0x18004064f
mov rdx, qword [rbx + 0x190]
imul rcx, rax, 0x68
add rcx, qword [rbx + 0x18]
test byte [rbx + 0x98], 1
je 0x1800405e9
lea rax, [rcx + 0x48]
jmp 0x1800405fa
cmp byte [rbx + 0x204], 0
lea rax, [rcx + 0x44]
jne 0x1800405fa
lea rax, [rcx + 0x40]
movss xmm0, dword [rax]
maxss xmm0, dword [rdx + 0xf0]
movss dword [rax], xmm0
movss xmm1, dword [rdx + 0xf4]
movss xmm0, dword [rbx + 0x88]
addss xmm1, dword [rbx + 0xc8]
maxss xmm0, xmm1
movss dword [rbx + 0x88], xmm0
mov eax, dword [rdx + 0x194]
mov dword [rcx + 0x3c], eax
movss xmm0, dword [rbx + 0x90]
maxss xmm0, dword [rdx + 0x114]
movss dword [rbx + 0x90], xmm0
mov qword [rsp + 0xd0], rsi
xor r13d, r13d
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0xb0], r14
cmp byte [r15 + 0x30ec], r13b
je 0x1800407da
mov rax, qword [r15 + 0x3118]
lea r14, [0x18009d4bc]
mov rdx, qword [r15 + 0x3110]
mov rdi, r14
mov rsi, qword [r15 + 0x1c08]
mov qword [rbp + 0x6f], rax
mov qword [r15 + 0x3118], r13
mov qword [r15 + 0x3110], r13
cmp r14, 0xffffffffffffffff
jae 0x1800406d3
movzx ecx, byte [rdi]
test cl, cl
je 0x1800406d3
lea rax, [rdi + 1]
cmp cl, 0x23
jne 0x1800406ca
cmp byte [rax], cl
je 0x1800406d3
mov rdi, rax
cmp rax, 0xffffffffffffffff
jb 0x1800406b6
mov r12, 0xffffffffffffffff
test rdx, rdx
je 0x1800406f5
mov r8, r12
inc r8
cmp byte [rdx + r8], r13b
jne 0x1800406e2
add r8, rdx
xor ecx, ecx
call fcn.18002cdf0
mov ecx, dword [r15 + 0x3128]
mov eax, dword [rsi + 0x158]
cmp ecx, eax
jle 0x18004070f
mov dword [r15 + 0x3128], eax
mov ecx, eax
mov r13d, dword [rsi + 0x158]
sub r13d, ecx
nop dword [rax]
mov r8, rdi
mov edx, 0xa
sub r8, r14
mov rcx, r14
call fcn.1800884e0
test rax, rax
mov rsi, rdi
cmovne rsi, rax
cmp r14, rsi
jne 0x180040747
cmp rsi, rdi
je 0x1800407ab
mov r9d, esi
lea edx, [r13*4]
sub r9d, r14d
cmp byte [r15 + 0x3124], 0
jne 0x180040764
mov edx, 1
lea r8, [0x1800964ad]
mov qword [rsp + 0x20], r14
lea rcx, str._s_.s
call fcn.18002cdb0
mov byte [r15 + 0x3124], 0
cmp byte [rsi], 0xa
jne 0x18004079d
lea rcx, [0x18009ce34]
call fcn.18002cdb0
mov byte [r15 + 0x3124], 1
cmp rsi, rdi
je 0x1800407ab
lea r14, [rsi + 1]
jmp 0x180040720
mov rax, qword [rbp + 0x6f]
mov r13d, 0
test rax, rax
je 0x1800407da
nop word [rax + rax]
cmp byte [rax + r12 + 1], r13b
lea r12, [r12 + 1]
jne 0x1800407c0
lea r8, [rax + r12]
mov rdx, rax
xor ecx, ecx
call fcn.18002cdf0
mov r15, qword [rbp + 0x77]
mov eax, dword [rbx + 0x88]
mov dword [r15 + 0xdc], eax
mov r8d, dword [rbx + 0x78]
movsx r10d, byte [rbx + 0x1f2]
movsx eax, byte [rbx + 0x1f1]
movss xmm9, dword [rbx + 0x84]
movss xmm8, dword [rbx + 0x88]
lea r9d, [r8 + 1]
mov dword [rbp + 0x67], r9d
mov dword [rbp + 0x6f], r10d
mov dword [rbp + 0x77], eax
test r8d, r8d
jne 0x180040835
movaps xmm0, xmm8
subss xmm0, xmm9
movss dword [rbx + 0xd8], xmm0
comiss xmm8, dword [rbx + 0x128]
movss xmm11, dword [0x18009eae4]
jb 0x180040bfa
movss xmm0, dword [rbx + 0x130]
comiss xmm0, xmm9
jb 0x180040bfa
mov eax, dword [rbx + 0xa0]
lea r9, [rbx + 4]
movaps xmmword [rsp + 0x50], xmm10
mov esi, r13d
cmp eax, 0x1000000
jne 0x1800408ba
test byte [r9], 0x40
mov eax, r8d
je 0x1800408bf
mov rcx, qword [0x1800b1c28]
mov eax, dword [rbx + 0x9c]
and eax, 1
add rax, rax
movups xmm0, xmmword [rcx + rax*8 + 0x18f0]
movups xmmword [rbp - 0x59], xmm0
shufps xmm0, xmm0, 0xff
mulss xmm0, dword [rcx + 0x1558]
lea rcx, [rbp - 0x59]
movss dword [rbp - 0x4d], xmm0
call fcn.18001ba00
mov esi, eax
mov eax, r8d
mov edi, dword [rbx + 0xa4]
mov r12d, r13d
cmp edi, 0x1000000
cmovne r8d, eax
cmove edi, r13d
test r8d, r8d
jg 0x1800408eb
mov rax, qword [rbx + 0x188]
cmp qword [rbx + 0x190], rax
jne 0x18004090d
test byte [r9], 0x80
je 0x18004090d
test dword [rbx + 0x98], 0x10000
je 0x180040906
mov r12d, dword [rbx + 0xa8]
jmp 0x18004090d
mov r12d, dword [rbx + 0xac]
movzx r14d, byte [rbx + 0x1f5]
mov eax, edi
shr r14b, 7
or eax, r12d
or eax, esi
jne 0x18004092d
cmp dword [rbp + 0x67], r10d
je 0x18004092d
test r14b, r14b
jne 0x180040965
test dword [rbx + 4], 0x100000
jne 0x18004094f
movups xmm0, xmmword [rbx + 0x144]
mov rax, qword [r15 + 0x280]
movups xmmword [rbp - 0x59], xmm0
movups xmmword [rax + 0x88], xmm0
mov rdx, qword [r15 + 0x280]
xor r8d, r8d
mov rcx, qword [rbx + 0x1a8]
call fcn.180039a00
xorps xmm10, xmm10
test esi, esi
jne 0x180040975
test edi, edi
je 0x180040a39
movss xmm0, dword [rbx + 0x114]
movaps xmmword [rsp + 0x90], xmm6
movaps xmm6, xmm9
movaps xmmword [rsp + 0x80], xmm7
movaps xmm7, xmm8
maxss xmm0, dword [rbx + 0x134]
maxss xmm6, dword [rbx + 0x138]
minss xmm7, dword [rbx + 0x140]
movss dword [rbp - 0x59], xmm0
movss xmm0, dword [rbx + 0x11c]
movss dword [rbp - 0x55], xmm6
movss dword [rbp - 0x4d], xmm7
minss xmm0, dword [rbx + 0x13c]
movss dword [rbp - 0x51], xmm0
test esi, esi
je 0x1800409fd
comiss xmm7, xmm6
jbe 0x1800409fd
mov rcx, qword [r15 + 0x280]
lea r8, [rbp - 0x51]
mov dword [rsp + 0x28], r13d
lea rdx, [rbp - 0x59]
mov r9d, esi
movss dword [rsp + 0x20], xmm10
call fcn.1800391c0
test edi, edi
je 0x180040a29
comiss xmm7, xmm6
jbe 0x180040a29
mov rcx, qword [r15 + 0x280]
lea r8, [rbp - 0x51]
mov dword [rsp + 0x28], r13d
lea rdx, [rbp - 0x59]
mov r9d, edi
movss dword [rsp + 0x20], xmm10
call fcn.1800391c0
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0x80]
test r14b, r14b
jne 0x180040b18
mov rdi, qword [rbx + 0x38]
movsx rax, byte [rbx + 0x1f5]
lea rsi, [rdi + rax*8]
cmp rdi, rsi
ja 0x180040b18
nop dword [rax + rax]
movsx rax, byte [rdi + 4]
imul rcx, rax, 0x68
mov rax, qword [rbx + 0x18]
cmp byte [rcx + rax + 0x54], 0xff
movss xmm3, dword [rcx + rax + 0xc]
movss xmm2, dword [rcx + rax + 8]
movaps xmm1, xmm3
jne 0x180040a8b
subss xmm2, dword [rbx + 0xcc]
cmp byte [rcx + rax + 0x55], 0xff
jne 0x180040a9a
addss xmm1, dword [rbx + 0xd0]
movss xmm0, dword [rbx + 0x84]
lea r8, [rbp - 0x51]
maxss xmm0, dword [rbx + 0x138]
maxss xmm2, dword [rbx + 0x134]
minss xmm1, dword [rbx + 0x13c]
mov r9d, dword [rdi]
lea rdx, [rbp - 0x59]
mov dword [rsp + 0x28], r13d
movss dword [rbp - 0x55], xmm0
maxss xmm2, dword [rcx + rax + 0x20]
movss xmm0, dword [rbx + 0x88]
minss xmm1, xmm3
minss xmm0, dword [rbx + 0x140]
mov rcx, qword [r15 + 0x280]
movss dword [rsp + 0x20], xmm10
movss dword [rbp - 0x59], xmm2
movss dword [rbp - 0x51], xmm1
movss dword [rbp - 0x4d], xmm0
call fcn.1800391c0
add rdi, 8
cmp rdi, rsi
jbe 0x180040a60
movaps xmm10, xmmword [rsp + 0x50]
test r12d, r12d
je 0x180040b82
comiss xmm9, dword [rbx + 0x138]
jb 0x180040b82
movss xmm0, dword [rbx + 0x140]
comiss xmm0, xmm9
jbe 0x180040b82
movss xmm0, dword [rbx + 0xb4]
lea r8, [rbp + 0x7f]
movss xmm1, dword [rbx + 0xb0]
lea rdx, [rbp - 0x59]
mov rcx, qword [r15 + 0x280]
mov r9d, r12d
movss dword [rbp + 0x7f], xmm0
movss dword [rbp - 0x59], xmm1
movss dword [rbp + 0x83], xmm9
movss dword [rbp - 0x55], xmm9
movss dword [rsp + 0x20], xmm11
call fcn.180038f50
mov r9d, dword [rbp + 0x67]
mov r10d, dword [rbp + 0x6f]
cmp r9d, r10d
jne 0x180040bfa
comiss xmm8, dword [rbx + 0x138]
jb 0x180040bfa
movss xmm0, dword [rbx + 0x140]
comiss xmm0, xmm8
jbe 0x180040bfa
movss xmm0, dword [rbx + 0xb4]
lea r8, [rbp + 0x7f]
movss xmm1, dword [rbx + 0xb0]
lea rdx, [rbp - 0x59]
mov r9d, dword [rbx + 0xa8]
mov rcx, qword [r15 + 0x280]
movss dword [rbp + 0x7f], xmm0
movss dword [rbp - 0x59], xmm1
movss dword [rbp + 0x83], xmm8
movss dword [rbp - 0x55], xmm8
movss dword [rsp + 0x20], xmm11
call fcn.180038f50
mov r9d, dword [rbp + 0x67]
mov r10d, dword [rbp + 0x6f]
movaps xmm9, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
mov r14, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
cmp r9d, dword [rbp + 0x77]
jne 0x180040c60
cmp dword [rbx + 0x74], 0
mov edx, r13d
jle 0x180040c60
mov r8, r13
nop dword [rax + rax]
movsx eax, byte [rbx + 0x1f4]
lea r8, [r8 + 0x68]
cmp edx, eax
mov rax, qword [rbx + 0x18]
setl cl
inc edx
mov byte [r8 + rax - 6], cl
cmp edx, dword [rbx + 0x74]
jl 0x180040c40
cmp r9d, r10d
jne 0x180040dc5
movss xmm1, dword [rbx + 0x88]
movzx eax, byte [rbx + 0x1f8]
movaps xmm0, xmm1
addss xmm0, xmm11
mov byte [rbx + 0x204], 1
maxss xmm0, dword [r15 + 0x1f4]
minss xmm0, dword [r15 + 0x1fc]
movss dword [rbx + 0x158], xmm0
movss dword [rbx + 0x138], xmm0
movss xmm0, dword [r15 + 0x1fc]
movss dword [rbx + 0x160], xmm0
movss dword [rbx + 0x140], xmm0
movaps xmm0, xmm1
addss xmm1, dword [rbx + 0x118]
subss xmm0, dword [rbx + 0x84]
mov byte [rbx + 0x1f7], al
subss xmm1, dword [rbx + 0xf8]
movss dword [r15 + 0xdc], xmm1
cmp dword [rbx + 0x74], 0
movss dword [rbx + 0x88], xmm1
subss xmm1, xmm0
movss dword [rbx + 0x84], xmm1
jle 0x180040d34
mov rdx, r13
nop dword [rax]
mov rcx, qword [rbx + 0x18]
lea rdx, [rdx + 0x68]
inc r13d
movzx eax, byte [rdx + rcx - 0xf]
mov byte [rdx + rcx - 0x11], al
mov eax, dword [rbx + 0x158]
mov dword [rdx + rcx - 0x44], eax
cmp r13d, dword [rbx + 0x74]
jl 0x180040d10
mov rax, qword [rbx + 0x18]
movss xmm1, dword [rax + 0x20]
movss xmm2, dword [rax + 0x24]
movss xmm3, dword [rax + 0x28]
movss xmm4, dword [rax + 0x2c]
movups xmm0, xmmword [rax + 0x20]
mov rax, qword [r15 + 0x280]
movups xmmword [r15 + 0x220], xmm0
movss dword [rax + 0x88], xmm1
movss dword [rax + 0x8c], xmm2
movss dword [rax + 0x90], xmm3
movss dword [rax + 0x94], xmm4
mov rax, qword [r15 + 0x280]
movsxd rdx, dword [rax + 0x58]
mov rcx, qword [rax + 0x60]
add rdx, rdx
movss dword [rcx + rdx*8 - 0x10], xmm1
movss dword [rcx + rdx*8 - 0xc], xmm2
movss dword [rcx + rdx*8 - 8], xmm3
movss dword [rcx + rdx*8 - 4], xmm4
mov rax, qword [rbx + 0x18]
mov rdx, qword [r15 + 0x280]
mov rcx, qword [rbx + 0x1a8]
movzx r8d, byte [rax + 0x57]
call fcn.180039a00
test byte [rbx + 0x98], 1
movaps xmm11, xmmword [rsp + 0x40]
mov r15, qword [rsp + 0xa8]
mov r13, qword [rsp + 0xb8]
mov byte [rbx + 0x1fa], 0
jne 0x180040df1
inc dword [rbx + 0x9c]
add rsp, 0xd8
pop rbx
pop rbp
ret