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

Disassembly:
push rbx
sub rsp, 0x20
mov rdx, rcx
test rcx, rcx
je 0x140008102
mov rbx, qword [rcx + 0x28]
test rbx, rbx
je 0x140008102
cmp qword [rcx + 0x30], 0
je 0x140008102
cmp qword [rcx + 0x38], 0
je 0x140008102
mov dword [rcx + 0x48], 2
mov qword [rsp + 0x30], rdi
xor edi, edi
mov dword [rcx + 0x1c], edi
mov dword [rcx + 0xc], edi
mov qword [rcx + 0x20], rdi
mov rax, qword [rbx + 0x10]
mov dword [rbx + 0x28], edi
mov qword [rbx + 0x20], rax
mov eax, dword [rbx + 0x2c]
test eax, eax
jns 0x140008034
neg eax
mov dword [rbx + 0x2c], eax
mov ecx, dword [rbx + 0x2c]
mov eax, 0x71
mov r8d, 0x2a
test ecx, ecx
cmovne eax, r8d
cmp ecx, 2
mov rcx, rbx
mov dword [rbx + 8], eax
mov eax, edi
setne al
mov dword [rdx + 0x4c], eax
mov dword [rbx + 0x40], edi
call fcn.140007f50
mov ecx, dword [rbx + 0x44]
mov rax, qword [rbx + 0x68]
xor edx, edx
add ecx, ecx
mov dword [rbx + 0x58], ecx
mov ecx, dword [rbx + 0x74]
dec ecx
mov word [rax + rcx*2], di
mov r8d, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
dec r8d
add r8, r8
call fcn.140011a90
movsxd r11, dword [rbx + 0xac]
lea rcx, [0x1400241d0]
add r11, r11
movzx eax, word [rcx + r11*8 + 2]
mov dword [rbx + 0xa8], eax
movzx eax, word [rcx + r11*8]
mov dword [rbx + 0xb4], eax
movzx eax, word [rcx + r11*8 + 4]
mov dword [rbx + 0xb8], eax
movzx eax, word [rcx + r11*8 + 6]
mov dword [rbx + 0x84], edi
mov dword [rbx + 0x9c], edi
mov qword [rbx + 0x90], rdi
mov dword [rbx + 0x70], edi
mov rdi, qword [rsp + 0x30]
mov dword [rbx + 0xa4], eax
mov dword [rbx + 0xa0], 2
xor eax, eax
mov dword [rbx + 0x88], 2
add rsp, 0x20
pop rbx
ret
mov eax, 0xfffffffe
add rsp, 0x20
pop rbx
ret
push rbx
sub rsp, 0x20
cmp byte [rdx], 0x31
mov rbx, rcx
jne 0x1400082ca
test rcx, rcx
jne 0x140008130
lea eax, [rcx - 2]
add rsp, 0x20
pop rbx
ret
mov qword [rsp + 0x30], rsi
xor esi, esi
mov qword [rsp + 0x38], rdi
mov qword [rcx + 0x20], rsi
cmp qword [rcx + 0x30], rsi
jne 0x140008155
lea rax, [0x140004510]
mov qword [rcx + 0x40], rsi
mov qword [rcx + 0x30], rax
mov rax, qword [rcx + 0x38]
lea rcx, [0x140004520]
mov edx, 1
cmp rax, rsi
mov r8d, 0x1718
cmove rax, rcx
mov rcx, qword [rbx + 0x40]
mov qword [rbx + 0x38], rax
call qword [rbx + 0x30]
mov rdi, rax
test rax, rax
je 0x1400082b5
mov qword [rbx + 0x28], rax
mov qword [rax], rbx
mov dword [rax + 0x2c], 2
mov qword [rax + 0x30], rsi
mov dword [rax + 0x48], reloc.OLEAUT32.dll_SafeArrayDestroy
mov dword [rax + 0x44], 0x8000
mov dword [rax + 0x4c], 0x7fff
mov dword [rax + 0x78], 0x10
mov dword [rax + 0x74], 0x10000
mov dword [rax + 0x7c], 0xffff
mov dword [rax + 0x80], 6
mov rcx, qword [rbx + 0x40]
mov edx, 0x8000
mov r8d, 2
call qword [rbx + 0x30]
mov edx, dword [rdi + 0x44]
mov r8d, 2
mov qword [rdi + 0x50], rax
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov edx, dword [rdi + 0x74]
mov r8d, 2
mov qword [rdi + 0x60], rax
mov rcx, qword [rbx + 0x40]
call qword [rbx + 0x30]
mov dword [rdi + 0x16f0], 0x8000
mov edx, 0x8000
mov qword [rdi + 0x68], rax
mov rcx, qword [rbx + 0x40]
mov r8d, 4
call qword [rbx + 0x30]
mov r11, rax
mov qword [rdi + 0x10], rax
mov eax, dword [rdi + 0x16f0]
lea ecx, [rax*4]
mov dword [rdi + 0x18], ecx
cmp qword [rdi + 0x50], rsi
je 0x14000829b
cmp qword [rdi + 0x60], rsi
je 0x14000829b
cmp qword [rdi + 0x68], rsi
je 0x14000829b
test r11, r11
je 0x14000829b
mov ecx, eax
shr rax, 1
mov qword [rdi + 0xac], 9
lea rax, [r11 + rax*2]
mov byte [rdi + 0x3c], 8
mov qword [rdi + 0x16f8], rax
lea rax, [r11 + rcx*2]
add rcx, rax
mov qword [rdi + 0x16e8], rcx
mov rcx, rbx
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
jmp 0x140007fd0
lea rax, str.insufficient_memory
mov dword [rdi + 8], 0x29a
mov rcx, rbx
mov qword [rbx + 0x20], rax
call fcn.140007e70
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov eax, 0xfffffffc
add rsp, 0x20
pop rbx
ret
mov eax, 0xfffffffa
add rsp, 0x20
pop rbx
ret