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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x388
mov r13, qword [rcx + 8]
mov r12, qword [rcx + 0x10]
movsxd rax, dword [r13 + 0x14]
lea rdi, [rsp + 0xd0]
mov r14, rcx
mov qword [rsp + 0x3d8], rdx
mov rdx, qword [rcx]
mov ecx, 7
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x3e0], r8
imul rax, rax, 0x38
add rax, qword [r13 + 0x20]
mov rbp, rax
xor eax, eax
rep stosq qword [rdi], rax
movzx eax, byte [r12 + 0x10]
mov rdx, qword [rdx + 8]
mov rdi, qword [r13 + 0x20]
imul rax, rax, 0x70
cmp rbp, rdi
lea rax, [rdx + rax + 8]
mov qword [rsp + 0x28], rax
jbe 0x8f0287
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x38], r13
mov r13, rbp
mov eax, dword [rax + 0x44]
mov dword [rsp + 0x50], eax
lea rax, [rsp + 0x150]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x158]
mov qword [rsp + 0x40], rax
test byte [rdi + 0x15], 2
je 0x8f027e
mov rax, qword [rdi + 0x20]
mov rdx, qword [rax + 0x1e8]
test qword [r12 + 8], rdx
jne 0x8f02a1
add rdi, 0x38
cmp r13, rdi
ja 0x8f0266
xor r15d, r15d
mov eax, r15d
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rax + 0x20]
movsxd rax, dword [rax + 0x14]
imul rax, rax, 0x38
lea rcx, [rsi + rax]
mov rax, qword [r14]
cmp rsi, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0xa0], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0xa8], rax
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0xb0], rax
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0xb8], rax
lea rax, [r12 + 0x18]
mov qword [rsp + 0x78], rax
jae 0x8f06b0
lea rax, [rsp + 0xa0]
mov dword [rsp + 0x54], 1
xor r15d, r15d
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x88], r12
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x3d0], r14
jmp 0x8f03f4
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x28]
xor ebx, ebx
mov word [rsp + 0x110], bx
mov rax, qword [rax + 0x20]
cmp byte [rax + 0x3f], 1
je 0x8f0460
mov rdx, qword [rsp + 0x3d8]
mov rcx, qword [rsp + 0x58]
call fcn.008ef9e0
mov r15d, eax
test r15d, r15d
je 0x8f0486
movzx ebx, word [rsp + 0x110]
test bx, bx
je 0x8f067f
mov r10d, dword [rsp + 0x54]
test r10d, r10d
je 0x8f04b0
mov rax, qword [rsp + 0x30]
movzx r8d, bx
mov word [rsp + 0xd0], bx
shl r8, 4
lea rcx, [rax + 8]
mov rax, qword [rsp + 0x68]
lea rdx, [rax + 8]
call sub.msvcrt.dll_memcpy
mov dword [rsp + 0x54], 0
add rsi, 0x38
cmp qword [rsp + 0x60], rsi
jbe 0x8f05a0
test byte [rsi + 0x15], 4
jne 0x8f0350
mov eax, dword [rsp + 0x50]
cmp dword [rsi + 0x1c], eax
jne 0x8f03e5
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
mov qword [rsp + 0x198], rcx
mov byte [rsp + 0x1a0], 0x2c
mov dword [rsp + 0x1a4], 1
mov dword [rsp + 0x1ac], 1
mov qword [rsp + 0x190], rax
lea rax, [rsp + 0x190]
mov qword [rsp + 0x1b0], rsi
mov qword [rsp + 0xa8], rax
jmp 0x8f035c
mov r8, qword [rsp + 0x3e0]
mov rdx, qword [rsp + 0x3d8]
mov rcx, qword [rsp + 0x58]
call fcn.008e4580
mov r15d, eax
test r15d, r15d
jne 0x8f0397
mov r8, qword [rsp + 0x3e0]
mov rdx, qword [rsp + 0x3d8]
mov rcx, qword [rsp + 0x58]
call fcn.008f01c0
mov r15d, eax
jmp 0x8f0397
movzx r8d, word [rsp + 0xd0]
mov r14, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov word [rsp + 0x150], r8w
mov rbp, r8
shl r8, 4
lea rdx, [r14 + 8]
call sub.msvcrt.dll_memcpy
xor r9d, r9d
test bp, bp
mov word [rsp + 0xd0], r9w
je 0x8f03e5
mov rcx, qword [rsp + 0x48]
lea eax, [rbp - 1]
mov qword [rsp + 0x98], rsi
mov rdi, r14
shl rax, 4
add rax, rcx
mov rbp, rcx
mov qword [rsp + 0x70], rax
test bx, bx
je 0x8f0571
movsx r14d, word [rbp + 0x12]
xor esi, esi
movsx r13d, word [rbp + 0x10]
mov r12, qword [rbp + 8]
mov rbx, qword [rsp + 0x68]
movsx edx, word [rbx + 0x12]
mov ecx, r14d
add esi, 1
add rbx, 0x10
call fcn.008c0bf0
movsx edx, word [rbx]
mov ecx, r13d
mov r10d, eax
call fcn.008c0bf0
mov rdx, qword [rbx - 8]
mov rcx, rdi
movsx r9d, r10w
movsx r8d, ax
or rdx, r12
call fcn.008b9830
movzx eax, word [rsp + 0x110]
cmp eax, esi
jg 0x8f052d
cmp qword [rsp + 0x70], rbp
je 0x8f0590
movzx ebx, word [rsp + 0x110]
add rbp, 0x10
jmp 0x8f0513
mov rsi, qword [rsp + 0x98]
jmp 0x8f03e5
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov r14, qword [rsp + 0x3d0]
mov rax, qword [r12 + 0x48]
mov ecx, 1
xor r8d, r8d
test r15d, r15d
mov word [r12 + 0x3c], cx
mov qword [rax], rdi
mov rax, qword [rsp + 0x78]
mov dword [r12 + 0x38], 0x2000
mov word [r12 + 0x12], r8w
mov byte [r12 + 0x11], 0
mov qword [r12 + 0x18], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
jne 0x8f028a
cmp word [rsp + 0xd0], 0
je 0x8f027e
mov rbx, qword [rsp + 0x30]
xor esi, esi
jmp 0x8f0646
movzx eax, word [rsp + 0xd0]
add rbx, 0x10
cmp eax, esi
jle 0x8f027e
movzx eax, word [rbx + 0x10]
mov rdx, r12
mov rcx, r14
add esi, 1
add eax, 1
mov word [r12 + 0x14], ax
movzx eax, word [rbx + 0x12]
mov word [r12 + 0x16], ax
mov rax, qword [rbx + 8]
mov qword [r12], rax
call fcn.008d41f0
test eax, eax
je 0x8f0632
mov r15d, eax
jmp 0x8f028a
xor r11d, r11d
mov r13, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov word [rsp + 0xd0], r11w
mov rdi, qword [rsp + 0x90]
mov r14, qword [rsp + 0x3d0]
jmp 0x8f05c0
mov eax, 1
xor edx, edx
mov word [r12 + 0x3c], ax
mov rax, qword [r12 + 0x48]
mov qword [rax], rdi
mov dword [r12 + 0x38], 0x2000
mov word [r12 + 0x12], dx
mov byte [r12 + 0x11], 0
mov qword [r12 + 0x18], 0
mov qword [r12 + 0x20], 0
mov qword [r12 + 0x28], 0
mov qword [r12 + 0x30], 0
jmp 0x8f061a