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

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rdi
push r15
sub rsp, 0x60
cmp dword [rcx + 0x3c], 0
mov rbx, r8
movsxd rdi, edx
mov r15, rcx
jne 0x1800bf637
mov r8, rdi
add r8, r8
movsxd rax, dword [rbx + r8*8 + 0x24]
test eax, eax
je 0x1800bf637
imul rcx, rax, 0x38
add rcx, qword [rbx + r8*8 + 0x28]
lea r8d, [rdi - 1]
mov r10d, dword [rcx - 0x30]
sub r10d, dword [rcx - 0x34]
inc r10d
movsxd rcx, r8d
test r8d, r8d
js 0x1800bf2e3
mov rdx, rcx
shl rdx, 4
add rdx, 0x24
add rdx, rbx
cmp dword [rdx], 0
jne 0x1800bf2e3
dec r8d
sub rdx, 0x10
sub rcx, 1
jns 0x1800bf2d1
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], r12
test r8d, r8d
js 0x1800bf4c0
xor r12d, r12d
movsxd rdx, r8d
add rdx, 2
mov r11d, r12d
add rdx, rdx
movsxd r9, dword [rbx + rdx*8 + 4]
test r9d, r9d
jle 0x1800bf47d
cmp r9d, 8
jb 0x1800bf47d
cmp dword [0x1802937e0], 2
jl 0x1800bf47d
mov rsi, qword [rbx + rdx*8 + 8]
mov ecx, r9d
movaps xmmword [rsp + 0x30], xmm6
xorps xmm5, xmm5
movaps xmmword [rsp + 0x20], xmm7
xorps xmm6, xmm6
and ecx, 0x80000007
jge 0x1800bf352
dec ecx
or ecx, 0xfffffff8
inc ecx
movdqa xmm7, xmmword [0x18024f6f0]
mov eax, r9d
sub eax, ecx
movsxd rcx, eax
lea rax, [rsi + 0x74]
nop word [rax + rax]
movd xmm1, dword [rax + 0x38]
movdqa xmm4, xmm7
movd xmm0, dword [rax - 0x38]
add r11d, 8
movd xmm2, dword [rax]
add r12, 8
movd xmm3, dword [rax - 0x70]
lea rax, [rax + 0x1c0]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x1f4]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x184]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0x1bc]
psubd xmm4, xmm3
movd xmm3, dword [rax - 0x22c]
punpckldq xmm3, xmm0
movd xmm0, dword [rax - 0x118]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0xa8]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0xe0]
paddd xmm4, xmm3
movd xmm3, dword [rax - 0x150]
pmaxsd xmm5, xmm4
punpckldq xmm3, xmm0
movdqa xmm4, xmm7
movd xmm0, dword [rax - 0x114]
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0xa4]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0xdc]
psubd xmm4, xmm3
movd xmm3, dword [rax - 0x14c]
punpckldq xmm3, xmm0
punpckldq xmm2, xmm1
punpcklqdq xmm3, xmm2
paddd xmm4, xmm3
pmaxsd xmm6, xmm4
cmp r12, rcx
jl 0x1800bf370
movaps xmm7, xmmword [rsp + 0x20]
pmaxsd xmm5, xmm6
movaps xmm6, xmmword [rsp + 0x30]
movdqa xmm0, xmm5
psrldq xmm0, 8
pmaxsd xmm5, xmm0
movdqa xmm0, xmm5
psrldq xmm0, 4
pmaxsd xmm5, xmm0
movd r12d, xmm5
movsxd r11, r11d
cmp r11, r9
jge 0x1800bf4bb
mov rdx, qword [rbx + rdx*8 + 8]
imul rax, r11, 0x38
add rdx, 4
add rdx, rax
sub r9, r11
nop dword [rax + rax]
mov eax, dword [rdx + 4]
sub eax, dword [rdx]
lea rdx, [rdx + 0x38]
inc eax
cmp eax, r12d
cmovle eax, r12d
mov r12d, eax
sub r9, 1
jne 0x1800bf4a0
cmp r12d, r10d
jge 0x1800bf4c6
mov r8d, edi
mov r12d, r10d
movsxd rdi, r8d
add rdi, 2
shl rdi, 4
add rdi, rbx
cmp dword [rdi], 0
jne 0x1800bf62d
lea ecx, [r8 + 1]
mov dword [rsp + 0x80], ecx
cmp ecx, dword [rbx + 0x1c]
jge 0x1800bf62d
mov qword [rsp + 0x88], rbp
movsxd rsi, ecx
shl rsi, 4
add rsi, 0x24
mov qword [rsp + 0x48], r13
add rsi, rbx
mov qword [rsp + 0x40], r14
cmp dword [rsi - 4], 0
jne 0x1800bf61b
mov eax, dword [rsi]
sub eax, 1
movsxd r14, eax
js 0x1800bf605
imul rbp, r14, 0x38
nop dword [rax]
mov rax, qword [rsi + 4]
mov ecx, dword [rax + rbp + 8]
sub ecx, dword [rax + rbp + 4]
cmp ecx, r12d
jge 0x1800bf61b
cmp dword [r15 + 0x3c], 0
jne 0x1800bf61b
mov eax, dword [rdi + 4]
mov r13, qword [rdi + 8]
inc eax
cdqe
imul rbx, rax, 0x38
call fcn.180003c56
test eax, eax
jne 0x1800bf5a8
mov rdx, rbx
mov rcx, r13
call fcn.18014dd10
mov rbx, rax
test rax, rax
je 0x1800bf5a8
imul eax, dword [rdi + 4], 0x38
lea rcx, [rbx + 0x38]
mov rdx, rbx
movsxd r8, eax
call fcn.180004d90
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
mov qword [rbx + 0x30], rax
mov qword [rdi + 8], rbx
jmp 0x1800bf5b0
mov dword [r15 + 0x3c], 7
cmp dword [r15 + 0x3c], 0
jne 0x1800bf61b
mov rax, qword [rsi + 4]
mov rcx, qword [rdi + 8]
movups xmm0, xmmword [rax + rbp]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + rbp + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + rbp + 0x20]
movups xmmword [rcx + 0x20], xmm0
movsd xmm1, qword [rax + rbp + 0x30]
sub rbp, 0x38
movsd qword [rcx + 0x30], xmm1
inc dword [rdi + 4]
dec dword [rsi]
sub r14, 1
jns 0x1800bf530
mov ecx, dword [rsp + 0x80]
mov rbx, qword [rsp + 0x90]
inc ecx
add rsi, 0x10
mov dword [rsp + 0x80], ecx
cmp ecx, dword [rbx + 0x1c]
jl 0x1800bf511
mov r13, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x88]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
mov r12, qword [rsp + 0x50]
add rsp, 0x60
pop r15
pop rdi
pop rbx
ret