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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov edi, r9d
mov esi, r8d
mov ebp, edx
mov rbx, rcx
call fcn.180080110
test al, al
je 0x180080b7e
test ebp, ebp
je 0x180080b0b
test esi, esi
je 0x180080b0b
mov r9d, 1
cmp edi, r9d
ja 0x18008092c
mov edx, r9d
jmp 0x180080947
cmp edi, 4
ja 0x180080938
mov edx, 4
jmp 0x180080947
mov eax, 8
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
cmp edi, eax
cmovbe edx, eax
pxor xmm2, xmm2
pxor xmm0, xmm0
pxor xmm1, xmm1
mov eax, edx
cvtsi2ss xmm2, rbp
cvtsi2ss xmm0, rsi
cvtsi2ss xmm1, rax
mulss xmm2, xmm0
mulss xmm2, xmm1
mulss xmm2, dword [0x1800f1f80]
comiss xmm2, dword [0x1800f1f7c]
jbe 0x1800809b3
lea rcx, [0x180000000]
mov rax, qword [rcx + 0xf1f60]
mov qword [rbx + 0x58], rax
mov rax, qword [rcx + 0xf1f68]
mov qword [rbx + 0x60], rax
mov rax, qword [rcx + 0xf1f70]
mov qword [rbx + 0x68], rax
mov eax, dword [rcx + 0xf1f78]
mov dword [rbx + 0x70], eax
jmp 0x180080b7e
mov eax, edx
xor r8d, r8d
sub eax, r9d
je 0x1800809df
sub eax, 3
je 0x1800809d6
cmp eax, 4
je 0x1800809cd
mov dword [rbx + 0x30], r8d
jmp 0x1800809e6
mov dword [rbx + 0x30], 0x100
jmp 0x1800809e6
mov dword [rbx + 0x30], reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x1800809e6
mov dword [rbx + 0x30], 2
mov eax, dword [rsp + 0x50]
mov ecx, ebp
mov dword [rbx + 0x10], reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
imul ecx, edx
add ecx, 0x1f
mov dword [rbx + 0x14], ebp
shr ecx, 5
mov dword [rbx + 0x54], eax
mov dword [rbx + 0x18], esi
shl ecx, 2
mov word [rbx + 0x1c], r9w
mov word [rbx + 0x1e], dx
mov dword [rbx + 0x38], ecx
mov dword [rbx + 0x20], r8d
imul ecx, esi
mov dword [rbx + 0x24], ecx
mov rcx, rbx
call fcn.180080370
movsxd rcx, eax
call fcn.1800bf7cc
mov qword [rbx + 8], rax
test rax, rax
jne 0x180080a83
lea rcx, [0x180000000]
mov rax, qword [rcx + 0xf1f38]
mov qword [rbx + 0x58], rax
mov rax, qword [rcx + 0xf1f40]
mov qword [rbx + 0x60], rax
mov rax, qword [rcx + 0xf1f48]
mov qword [rbx + 0x68], rax
mov rax, qword [rcx + 0xf1f50]
mov qword [rbx + 0x70], rax
mov eax, dword [rcx + 0xf1f58]
mov dword [rbx + 0x78], eax
movzx eax, word [rcx + 0xf1f5c]
mov word [rbx + 0x7c], ax
jmp 0x180080b7e
mov rcx, rbx
call fcn.180082fd0
mov rdi, rax
test rax, rax
je 0x180080aa8
mov rcx, rbx
call fcn.180082f60
xor edx, edx
mov rcx, rdi
mov r8d, eax
call fcn.1800c1250
cmp qword [rbx + 0x393], 0
je 0x180080aba
mov rcx, rbx
call fcn.180086610
cmp qword [rbx + 0x39b], 0
je 0x180080acc
mov rcx, rbx
call fcn.180085f20
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
xor edx, edx
mov qword [rcx], rax
mov rax, qword [rbx + 0x18]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x20]
mov qword [rcx + 0x10], rax
mov rax, qword [rbx + 0x28]
mov qword [rcx + 0x18], rax
mov rax, qword [rbx + 0x30]
mov qword [rcx + 0x20], rax
mov rcx, rbx
call fcn.1800802d0
mov qword [rbx + 0x3c], rax
mov rax, qword [rbx + 8]
jmp 0x180080b80
lea rcx, [0x180000000]
mov rax, qword [rcx + 0xf1ef8]
mov qword [rbx + 0x58], rax
mov rax, qword [rcx + 0xf1f00]
mov qword [rbx + 0x60], rax
mov rax, qword [rcx + 0xf1f08]
mov qword [rbx + 0x68], rax
mov rax, qword [rcx + 0xf1f10]
mov qword [rbx + 0x70], rax
mov rax, qword [rcx + 0xf1f18]
mov qword [rbx + 0x78], rax
mov rax, qword [rcx + 0xf1f20]
mov qword [rbx + 0x80], rax
mov rax, qword [rcx + 0xf1f28]
mov qword [rbx + 0x88], rax
mov eax, dword [rcx + 0xf1f30]
mov dword [rbx + 0x90], eax
movzx eax, byte [rcx + 0xf1f34]
mov byte [rbx + 0x94], al
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret