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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1e8
mov rax, qword [r8]
mov r9, rcx
lea rcx, [0x180038c48]
test rax, rax
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x60], 2
cmovne rcx, rax
xor eax, eax
mov dword [rsp + 0x64], 3
mov dword [rsp + 0xb0], eax
mov qword [r11 - 0x188], rax
mov dword [rsp + 0x130], eax
mov qword [r11 - 0x108], rax
mov dword [rsp + 0xa8], eax
mov dword [rsp + 0xac], eax
mov dword [rsp + 0xc8], eax
mov qword [r11 - 0x170], rax
mov dword [rsp + 0x128], eax
mov dword [rsp + 0x12c], eax
mov dword [rsp + 0x148], eax
mov qword [r11 - 0xf0], rax
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xc4], eax
mov dword [rsp + 0xe0], eax
mov qword [r11 - 0x158], rax
mov dword [rsp + 0x140], eax
mov dword [rsp + 0x144], eax
mov dword [rsp + 0x160], eax
mov qword [r11 - 0xd8], rax
mov dword [rsp + 0xd8], eax
mov dword [rsp + 0xdc], eax
mov dword [rsp + 0xf8], eax
mov qword [r11 - 0x140], rax
mov dword [rsp + 0x158], eax
mov dword [rsp + 0x15c], eax
mov dword [rsp + 0x178], eax
mov qword [r11 - 0xc0], rax
mov dword [rsp + 0xf0], eax
mov dword [rsp + 0xf4], eax
mov dword [rsp + 0x110], eax
mov qword [r11 - 0x128], rax
mov dword [rsp + 0x170], eax
mov dword [rsp + 0x174], eax
mov dword [rsp + 0x190], eax
mov qword [r11 - 0xa8], rax
mov dword [rsp + 0x108], eax
mov dword [rsp + 0x10c], eax
mov dword [rsp + 0x188], eax
mov dword [rsp + 0x18c], eax
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x8c], eax
mov dword [rsp + 0x90], eax
mov eax, dword [r8 + 0x14]
mov qword [rsp + 0x98], rcx
mov dword [rsp + 0x68], 1
mov dword [rsp + 0x6c], 0xf
mov dword [rsp + 0x70], 0x10
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x248], 0
test eax, eax
je 0x180088515
xor edx, edx
lea r10, [0x180000000]
mov qword [rsp + 0x58], rdx
mov rax, qword [r8 + 8]
xor r15d, r15d
lea r14, [rsp + 0x60]
mov r13, qword [rdx + rax]
lea rbx, [rsp + 0xac]
nop dword [rax + rax]
mov eax, dword [r14]
cmp dword [r13], eax
jne case.0x180087fe9.6
mov eax, dword [r13 + 0x14]
dec eax
cmp eax, 7
ja case.0x180087fe9.6
cdqe
mov ecx, dword [r10 + rax*4 + 0x889a0]
add rcx, r10
jmp rcx
mov edx, dword [rbx]
lea rcx, [rbx - 0xc]
inc edx
call fcn.1800931e0
test eax, eax
jns 0x18008800c
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x180088300
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], 0
lea eax, [rcx + 1]
jmp 0x1800882fe
mov rdx, qword [r13 + 0x18]
lea r8, [rsp + 0x50]
mov rcx, r9
call fcn.18008e0e0
mov edi, eax
test eax, eax
js 0x1800888f2
mov rax, qword [rsp + 0x50]
test byte [rax + 0x14], 1
jne 0x180088359
mov edx, dword [rbx]
lea rcx, [rbx - 0xc]
inc edx
cmp dword [rax + 0x1c], 1
jne 0x180087ff3
mov rdi, qword [rax + 0x20]
add rdi, 0x10
call fcn.1800931e0
test eax, eax
jns 0x18008807b
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x180088300
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], rdi
lea eax, [rcx + 1]
jmp 0x1800882fe
mov rdx, qword [r13 + 0x20]
lea r8, [rsp + 0x50]
mov rcx, r9
call fcn.18008e0e0
mov edi, eax
test eax, eax
js 0x1800888f2
mov rdx, qword [rsp + 0x50]
test byte [rdx + 0x14], 1
jne 0x1800883c5
mov rcx, qword [rdx + 0x40]
mov eax, dword [rdx + 0x1c]
cmp dword [rcx + 4], eax
jne case.0x180087fe9.1
mov rax, qword [rdx + 0x20]
mov ecx, dword [r13 + 0x18]
mov edx, dword [rbx]
shl rcx, 7
inc edx
lea rsi, [rcx + rax + 0x10]
lea rcx, [rbx - 0xc]
call fcn.1800931e0
test eax, eax
jns 0x1800880f9
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x180088300
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], rsi
lea eax, [rcx + 1]
jmp 0x1800882fe
mov rdx, qword [r13 + 0x18]
lea r8, [rsp + 0x50]
mov rcx, r9
call fcn.18008e0e0
mov edi, eax
test eax, eax
js 0x1800888f2
mov r12, qword [rsp + 0x50]
test byte [r12 + 0x14], 1
jne 0x180088435
mov rax, qword [r12 + 0x40]
xor esi, esi
mov ecx, dword [rax + 4]
cmp ecx, dword [r12 + 0x1c]
jne 0x18008819e
test ecx, ecx
je 0x180088300
mov rax, qword [r12 + 0x20]
mov edx, dword [rbx]
mov ecx, esi
shl rcx, 7
inc edx
lea rdi, [rcx + rax + 0x10]
lea rcx, [rbx - 0xc]
call fcn.1800931e0
test eax, eax
jns 0x18008817e
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x18008818d
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], rdi
lea eax, [rcx + 1]
mov dword [rbx], eax
mov rax, qword [r12 + 0x40]
inc esi
cmp esi, dword [rax + 4]
jb 0x180088150
jmp 0x180088300
test ecx, ecx
je 0x180088300
nop word [rax + rax]
mov edx, dword [rbx]
lea rcx, [rbx - 0xc]
inc edx
call fcn.1800931e0
test eax, eax
jns 0x1800881ce
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x1800881e1
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], 0
lea eax, [rcx + 1]
mov dword [rbx], eax
mov rax, qword [r12 + 0x40]
inc esi
cmp esi, dword [rax + 4]
jb 0x1800881b0
jmp 0x180088300
mov rdx, qword [r13 + 0x18]
lea r8, [rsp + 0x50]
mov rcx, r9
call fcn.18008e0e0
mov edi, eax
test eax, eax
js 0x1800888f2
mov r12, qword [rsp + 0x50]
test byte [r12 + 0x14], 1
jne 0x1800884a5
mov rax, qword [r12 + 0x40]
xor esi, esi
mov ecx, dword [rax + 4]
cmp ecx, dword [r12 + 0x1c]
jne 0x18008828b
test ecx, ecx
je 0x180088300
nop word [rax + rax]
mov rax, qword [r12 + 0x20]
mov edx, dword [rbx]
mov ecx, esi
shl rcx, 7
inc edx
lea rdi, [rcx + rax + 0x10]
lea rcx, [rbx - 0xc]
call fcn.1800931e0
test eax, eax
jns 0x18008826e
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x18008827d
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], rdi
lea eax, [rcx + 1]
mov dword [rbx], eax
mov rax, qword [r12 + 0x40]
inc esi
cmp esi, dword [rax + 4]
jb 0x180088240
jmp 0x180088300
test ecx, ecx
je 0x180088300
nop
mov edx, dword [rbx]
lea rcx, [rbx - 0xc]
inc edx
call fcn.1800931e0
test eax, eax
jns 0x1800882ae
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x1800882c1
mov ecx, dword [rbx]
mov rax, qword [rbx - 0xc]
mov qword [rax + rcx*8], 0
lea eax, [rcx + 1]
mov dword [rbx], eax
mov rax, qword [r12 + 0x40]
inc esi
cmp esi, dword [rax + 4]
jb 0x180088290
jmp 0x180088300
mov edx, dword [rbx]
lea rcx, [rbx - 0xc]
inc edx
call fcn.1800931e0
test eax, eax
jns 0x1800882ed
mov edi, dword [rbx + 4]
test edi, edi
js 0x1800888f2
jmp 0x180088300
mov edx, dword [rbx]
mov rax, qword [rbx - 0xc]
lea rcx, [r13 + 0x28]
mov qword [rax + rdx*8], rcx
lea eax, [rdx + 1]
mov dword [rbx], eax
mov r9, qword [rsp + 0x230]
lea r10, [0x180000000]
inc r15d
add r14, 4
add rbx, 0x18
cmp r15d, 5
jb 0x180087fc0
mov ecx, dword [rsp + 0x248]
mov rdx, qword [rsp + 0x58]
inc ecx
add rdx, 8
mov dword [rsp + 0x248], ecx
mov qword [rsp + 0x58], rdx
cmp ecx, dword [rsp + 0x78]
jae 0x180088515
mov r8, qword [rsp + 0x240]
jmp 0x180087fa0
mov esi, 4
lea rbx, [rsp + 0x1a8]
xor ebp, ebp
mov edi, esi
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub edi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088370
lea rbx, [rsp + 0x128]
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub esi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x1800883a0
xor eax, eax
jmp 0x180088961
mov esi, 4
lea rbx, [rsp + 0x1a8]
xor ebp, ebp
mov edi, esi
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub edi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x1800883e0
lea rbx, [rsp + 0x128]
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub esi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088410
xor eax, eax
jmp 0x180088961
mov esi, 4
lea rbx, [rsp + 0x1a8]
xor ebp, ebp
mov edi, esi
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub edi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088450
lea rbx, [rsp + 0x128]
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub esi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088480
xor eax, eax
jmp 0x180088961
mov esi, 4
lea rbx, [rsp + 0x1a8]
xor ebp, ebp
mov edi, esi
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub edi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x1800884c0
lea rbx, [rsp + 0x128]
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub esi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x1800884f0
xor eax, eax
jmp 0x180088961
xor eax, eax
lea rcx, [rsp + 0xac]
nop
cmp dword [rcx], 0
jne 0x180088532
inc eax
add rcx, 0x18
cmp eax, 5
jb 0x180088520
jmp 0x180088537
cmp eax, 5
jb 0x1800885a5
mov esi, 4
lea rbx, [rsp + 0x1a8]
xor ebp, ebp
mov edi, esi
nop dword [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub edi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088550
lea rbx, [rsp + 0x128]
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub esi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088580
xor eax, eax
jmp 0x180088961
xor ecx, ecx
xor ebx, ebx
lea rdx, [rsp + 0x1b8]
mov qword [rsp + 0x58], rdx
mov dword [rsp + 0x248], ecx
mov qword [rsp + 0x50], rbx
xor r14d, r14d
mov r15d, dword [rsp + rbx + 0xac]
xor r13d, r13d
mov dword [rsp + r14 + 0x80], r15d
test r15d, r15d
je 0x18008884e
mov rbp, qword [rsp + rbx + 0xa0]
nop dword [rax]
cmp qword [rbp], 0
je 0x180088988
mov rax, qword [rbp]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x180088981
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
je 0x180088981
mov rax, qword [rbp]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [rbp]
mov rcx, qword [rcx + 8]
mov r12, rax
mov rdx, qword [rcx]
call qword [rdx + 0x20]
mov edx, dword [rsp + rbx + 0x12c]
lea rbx, [rsp + rbx + 0x120]
mov rdi, rax
xor eax, eax
inc edx
mov rcx, rbx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
call fcn.180093290
test eax, eax
js 0x180088995
mov edx, dword [rbx + 0xc]
mov rax, qword [rbx]
lea rcx, [rdx + rdx*4]
lea rsi, [rax + rcx*8]
lea eax, [rdx + 1]
mov dword [rbx + 0xc], eax
test rsi, rsi
je 0x180088995
mov eax, edi
mov r9b, 1
mov r8d, edi
add rax, r12
mov rdx, r12
mov qword [rsp + 0x20], 0
mov qword [rsi + 0x20], rax
mov rax, qword [rbp]
mov ecx, dword [rax + 0x3c]
mov dword [rsi + 0x10], ecx
lea rcx, [rsp + 0x60]
call fcn.180248070
mov edi, eax
test eax, eax
js 0x1800888f2
mov r8, qword [rsp + 0x60]
test r8, r8
je 0x180088728
mov r9, qword [rsp + 0x68]
test r9, r9
je 0x180088728
mov r10d, dword [r8 + 0x1c]
xor ecx, ecx
xor edx, edx
test r10d, r10d
je 0x1800886f9
mov eax, dword [r9 + rdx*4]
cmp dword [rax + r8], 0x4e47534f
je 0x180088732
inc ecx
inc rdx
cmp ecx, r10d
jb 0x1800886e1
test r9, r9
je 0x180088728
mov r10d, dword [r8 + 0x1c]
xor ecx, ecx
xor edx, edx
test r10d, r10d
je 0x180088728
nop dword [rax + rax]
mov eax, dword [r9 + rdx*4]
cmp dword [rax + r8], 0x3547534f
je 0x180088761
inc ecx
inc rdx
cmp ecx, r10d
jb 0x180088710
mov edi, 0x80004005
jmp 0x1800888f2
cmp ecx, 0xffffffff
je 0x1800886f9
cmp r10d, ecx
jbe 0x180088747
mov eax, dword [r9 + rdx*4]
lea rcx, [rax + r8 + 8]
jmp 0x180088749
xor ecx, ecx
mov qword [rsi], rcx
test rcx, rcx
je 0x180088728
mov dword [rsi + 8], 0x18
mov dword [rsi + 0xc], 0
jmp 0x18008878e
cmp ecx, 0xffffffff
je 0x180088728
cmp r10d, ecx
jbe 0x180088776
mov eax, dword [r9 + rdx*4]
lea rcx, [rax + r8 + 8]
jmp 0x180088778
xor ecx, ecx
mov qword [rsi], rcx
test rcx, rcx
je 0x180088728
mov dword [rsi + 8], 0x1c
mov dword [rsi + 0xc], 4
mov r10d, dword [r8 + 0x1c]
xor ecx, ecx
xor edx, edx
test r10d, r10d
je 0x180088728
nop dword [rax + rax]
mov eax, dword [r9 + rdx*4]
cmp dword [rax + r8], 0x4e475349
je 0x1800887c2
inc ecx
inc rdx
cmp ecx, r10d
jb 0x1800887a0
mov edi, 0x80004005
jmp 0x1800888f2
cmp ecx, 0xffffffff
je 0x180088728
cmp r10d, ecx
jbe 0x1800887db
mov eax, dword [r9 + rdx*4]
lea rcx, [rax + r8 + 8]
jmp 0x1800887dd
xor ecx, ecx
mov qword [rsi + 0x18], rcx
test rcx, rcx
je 0x180088728
mov ecx, dword [rsp + 0x248]
cmp ecx, 1
jne 0x180088834
call fcn.180243fdc
lea rdx, [rsp + 0x78]
mov rcx, r12
call fcn.1802482e0
mov edi, eax
test eax, eax
js 0x1800888f2
mov rax, qword [rsp + 0x78]
movzx ecx, word [rax + 2]
sub ecx, 1
je 0x180088975
cmp ecx, 1
jne 0x180088728
mov ecx, dword [rsp + 0x248]
mov rbx, qword [rsp + 0x50]
inc r13d
add rbp, 8
cmp r13d, r15d
jb 0x1800885f0
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + rbx + 0x120]
inc ecx
add rdx, 8
add rbx, 0x18
mov qword [rdx - 8], rax
mov dword [rsp + r14 + 0x1a0], r15d
add r14, 4
mov qword [rsp + 0x58], rdx
mov dword [rsp + 0x248], ecx
mov qword [rsp + 0x50], rbx
cmp ecx, 5
jb 0x1800885c5
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rsp + 0x240]
lea r9, [rsp + 0x80]
mov eax, dword [rcx + 0x1750]
mov rdx, qword [rdx + 0x38]
lea r8, [rsp + 0x1b8]
mov dword [rsp + 0x40], eax
lea rax, [0x1800381c8]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x238]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x1a0]
mov qword [rsp + 0x20], rax
call fcn.180087990
mov edi, eax
mov r13d, 4
lea rbx, [rsp + 0x1a8]
xor ebp, ebp
mov esi, r13d
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub esi, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088910
lea rbx, [rsp + 0x128]
nop word [rax + rax]
mov rcx, qword [rbx - 0x28]
sub rbx, 0x18
mov dword [rbx - 4], ebp
mov dword [rbx], ebp
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
sub r13d, 1
mov qword [rbx - 0x10], rbp
mov dword [rbx - 8], ebp
jns 0x180088940
mov eax, edi
add rsp, 0x1e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rsi]
mov qword [rsi + 0x18], rax
jmp 0x18008882d
mov ecx, dword [rsp + 0x248]
dec dword [rsp + r14 + 0x80]
jmp 0x180088839
mov edi, 0x8007000e
jmp 0x1800888f2