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

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov eax, dword [rcx + 0x24]
mov rsi, rcx
mov rdx, rcx
mov dword [rcx + 0x20], eax
mov rcx, qword [rcx + 0x128]
call fcn.1800225f0
mov rcx, qword [rsi + 0x120]
mov edi, eax
call fcn.180017db0
test rax, rax
je 0x18001bbaf
mov qword [rsp + 0x30], rbx
nop word [rax + rax]
test edi, edi
jne 0x18001bb9d
mov edx, dword [rax + 0x30]
mov rbx, qword [rax + 0x20]
mov rcx, rsi
call fcn.18001ba70
mov edi, eax
mov rax, rbx
test rbx, rbx
jne 0x18001bb80
mov eax, edi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov eax, edi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
push rbx
push rdi
push r13
push r14
sub rsp, 0x58
xor edi, edi
xor r13d, r13d
mov r14, rdx
mov rbx, rcx
test rdx, rdx
je 0x18001bedf
mov ecx, dword [rdx + 0x18]
call fcn.180016f00
mov r13, rax
test rax, rax
jne 0x18001bed9
lea eax, [rdi + 7]
add rsp, 0x58
pop r14
pop r13
pop rdi
pop rbx
ret
mov eax, dword [r14 + 0x18]
jmp 0x18001bee2
mov eax, dword [rcx + 0x24]
mov dword [rbx + 0x20], eax
movzx eax, byte [rbx + 0x10]
mov byte [rbx + 0x17], al
test r14, r14
jne 0x18001bf0c
cmp qword [rbx + 0x128], rdi
je 0x18001bf0c
mov rcx, rbx
add rsp, 0x58
pop r14
pop r13
pop rdi
pop rbx
jmp 0x18001bb40
mov qword [rsp + 0x80], rbp
lea rbp, [rbx + 0x60]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r15
mov r15, qword [rbp]
mov qword [rsp + 0x30], rbp
test r14, r14
je 0x18001bf8a
cmp qword [rbx + 0x128], rdi
jne 0x18001bf8a
mov rax, qword [r14 + 8]
mov rsi, r15
test rax, rax
cmovne rsi, rax
mov rax, qword [r14]
mov qword [rbp], rax
cmp qword [rbp], rsi
jge 0x18001bf80
mov r9d, 1
mov r8, r13
mov rdx, rbp
mov rcx, rbx
mov dword [rsp + 0x20], 1
call fcn.18001ac80
mov edi, eax
test eax, eax
je 0x18001bf53
jmp 0x18001c037
test edi, edi
jne 0x18001c037
jmp 0x18001bf90
mov qword [rbp], rdi
nop
cmp qword [rbp], r15
jge 0x18001c037
lea rax, [rsp + 0x90]
lea r9, [rsp + 0x88]
mov r8, r15
xor edx, edx
mov rcx, rbx
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x20], rax
call fcn.180019d20
mov r12d, dword [rsp + 0x88]
mov edi, eax
test r12d, r12d
jne 0x18001c002
mov eax, dword [rbx + 0xb8]
mov rcx, qword [rbp]
add rax, qword [rbx + 0x68]
cmp rax, rcx
jne 0x18001c002
mov rax, r15
sub rax, rcx
mov rcx, qword [rbx + 0xc8]
add rcx, 8
cqo
idiv rcx
mov r12, rax
xor esi, esi
test edi, edi
jne 0x18001c037
cmp esi, r12d
jae 0x18001bf90
cmp qword [rbp], r15
jge 0x18001c037
mov r9d, 1
mov r8, r13
mov rdx, rbp
mov rcx, rbx
mov dword [rsp + 0x20], 1
call fcn.18001ac80
inc esi
mov edi, eax
test eax, eax
je 0x18001c008
test r14, r14
je 0x18001c2e0
mov rcx, qword [rbx + 0xc8]
mov eax, dword [r14 + 0x1c]
add rcx, 4
imul rcx, rax
mov qword [rsp + 0x90], rcx
mov rcx, qword [rbx + 0x128]
test rcx, rcx
je 0x18001c0a6
mov eax, dword [rcx + 0x88]
cmp dword [r14 + 0x30], eax
je 0x18001c085
mov dword [r14 + 0x24], 0
mov eax, dword [rcx + 0x88]
mov dword [r14 + 0x30], eax
mov eax, dword [r14 + 0x24]
cmp eax, dword [rcx + 0x58]
jae 0x18001c0a4
mov dword [rcx + 0x58], eax
mov eax, dword [r14 + 0x28]
mov dword [rcx + 0x60], eax
mov eax, dword [r14 + 0x2c]
mov dword [rcx + 0x64], eax
call fcn.18001fe60
xor edi, edi
mov eax, dword [r14 + 0x1c]
mov dword [rsp + 0x88], eax
test edi, edi
jne 0x18001c2e0
mov rbp, qword [rsp + 0x90]
cmp eax, dword [rbx + 0x3c]
jae 0x18001c2db
mov r12, qword [rbx + 0x58]
mov r14, qword [rbx + 0x118]
lea rdx, [rsp + 0x90]
mov rax, qword [r12]
mov r9, rbp
mov r8d, 4
mov rcx, r12
call qword [rax + 0x10]
mov edi, eax
test eax, eax
jne 0x18001c2c3
mov esi, dword [rsp + 0x90]
mov rax, qword [r12]
mov r8d, dword [rbx + 0xc8]
lea r9, [rbp + 4]
mov rdx, r14
mov rcx, r12
bswap esi
call qword [rax + 0x10]
mov edi, eax
test eax, eax
jne 0x18001c2c3
mov rax, qword [rbx + 0xc8]
lea rbp, [rax + rbp + 4]
test esi, esi
je 0x18001c2be
cmp esi, dword [rbx + 0xc0]
je 0x18001c2be
cmp esi, dword [rbx + 0x20]
ja 0x18001c2ba
test r13, r13
je 0x18001c179
mov edx, esi
mov rcx, r13
call fcn.180016f90
test eax, eax
jne 0x18001c2ba
mov edx, esi
mov rcx, r13
call fcn.180017070
mov edi, eax
test eax, eax
jne 0x18001c2c3
cmp esi, 1
jne 0x18001c193
movzx eax, byte [r14 + 0x14]
cmp word [rbx + 0xb2], ax
je 0x18001c193
mov word [rbx + 0xb2], ax
cmp qword [rbx + 0x128], 0
je 0x18001c205
xor eax, eax
mov qword [rsp + 0x98], rax
mov edx, 1
mov r10, qword [rbx + 0x48]
cmp qword [r10], 0
je 0x18001c226
movzx ecx, byte [rbx + 0x15]
cmp cl, 4
jae 0x18001c1c3
test cl, cl
jne 0x18001c226
test edx, edx
je 0x18001c226
mov rax, qword [r10]
mov r8d, dword [rbx + 0xc8]
lea r9d, [rsi - 1]
imul r9, qword [rbx + 0xc8]
mov rdx, r14
mov rcx, r10
call qword [rax + 0x18]
mov edi, eax
cmp esi, dword [rbx + 0x28]
jbe 0x18001c1f0
mov dword [rbx + 0x28], esi
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x18001c25d
mov r8, r14
mov edx, esi
call fcn.1800323d0
jmp 0x18001c25d
mov edx, esi
mov rcx, rbx
call fcn.18001e040
mov qword [rsp + 0x98], rax
test rax, rax
je 0x18001c1a7
test byte [rax + 0x34], 8
je 0x18001c1a7
xor edx, edx
jmp 0x18001c1ac
test rax, rax
jne 0x18001c26a
or byte [rbx + 0x19], 2
lea r9d, [rax + 1]
lea r8, [rsp + 0x98]
mov edx, esi
mov rcx, rbx
call qword [rbx + 0x110]
and byte [rbx + 0x19], 0xfd
mov edi, eax
test eax, eax
jne 0x18001c2c3
mov rcx, qword [rsp + 0x98]
call fcn.1800179f0
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x18001c2c3
mov r12, qword [rax + 8]
mov r8, qword [rbx + 0xc8]
mov rdx, r14
mov rcx, r12
call fcn.180127c70
mov rcx, qword [rsp + 0x98]
call qword [rbx + 0x108]
cmp esi, 1
jne 0x18001c2ab
mov rax, qword [r12 + 0x18]
mov qword [rbx + 0x88], rax
mov rax, qword [r12 + 0x20]
mov qword [rbx + 0x90], rax
mov rcx, qword [rsp + 0x98]
call fcn.1800178a0
jmp 0x18001c2c3
xor edi, edi
jmp 0x18001c2c3
mov edi, 0x65
mov eax, dword [rsp + 0x88]
inc eax
mov dword [rsp + 0x88], eax
test edi, edi
je 0x18001c0c1
mov rbp, qword [rsp + 0x30]
mov r12, qword [rsp + 0x48]
test r13, r13
je 0x18001c36c
cmp dword [r13 + 8], 0
je 0x18001c311
lea rbx, [r13 + 0x10]
mov esi, 0x3e
nop
mov rcx, qword [rbx]
call fcn.1800173d0
add rbx, 8
dec rsi
jne 0x18001c300
cmp dword [0x180171920], 0
je 0x18001c363
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x18001c32c
call qword [0x1801719a0]
mov rcx, r13
call qword [0x180171958]
dec qword [0x180181138]
movsxd rcx, eax
sub qword [0x1801810f0], rcx
mov rcx, r13
call qword [0x180171948]
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x18001c36c
call qword [0x1801719b0]
jmp 0x18001c36c
mov rcx, r13
call qword [0x180171948]
mov rsi, qword [rsp + 0x50]
test edi, edi
jne 0x18001c379
mov qword [rbp], r15
mov r15, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x80]
mov eax, edi
add rsp, 0x58
pop r14
pop r13
pop rdi
pop rbx
ret
mov dword [rsp + 0x10], edx
push rsi
push r12
sub rsp, 0x48
mov r12d, dword [rcx + 0x30]
mov r9d, edx
mov rsi, rcx
test r12d, r12d
jne 0x18001f11a
mov eax, dword [rcx + 0x80]
cmp r8d, eax
jge 0x18001f11a
xor ecx, ecx
cmp r9d, 1
mov qword [rsp + 0x28], r14
mov edx, ecx
setne dl
mov qword [rsp + 0x20], r15
add edx, r8d
mov dword [rsp + 0x60], edx
mov r14d, edx
movsxd r15, edx
cmp edx, eax
jge 0x18001f072
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], r13
mov r13, r15
imul r13, r13, 0x38
mov rax, qword [rsi + 0x78]
mov rbp, qword [r13 + rax + 0x10]
test rbp, rbp
je 0x18001f03f
cmp dword [rbp + 8], 0
je 0x18001efe4
lea rbx, [rbp + 0x10]
mov edi, 0x3e
mov rcx, qword [rbx]
call fcn.1800173d0
add rbx, 8
dec rdi
jne 0x18001efd3
cmp dword [0x180171920], 0
je 0x18001f036
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x18001efff
call qword [0x1801719a0]
mov rcx, rbp
call qword [0x180171958]
dec qword [0x180181138]
mov rcx, rbp
movsxd rdx, eax
sub qword [0x1801810f0], rdx
call qword [0x180171948]
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x18001f03f
call qword [0x1801719b0]
jmp 0x18001f03f
mov rcx, rbp
call qword [0x180171948]
inc r14d
add r13, 0x38
cmp r14d, dword [rsi + 0x80]
jl 0x18001efb2
mov edx, dword [rsp + 0x60]
mov r9d, dword [rsp + 0x68]
mov r13, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x70]
xor ecx, ecx
mov r14, qword [rsp + 0x28]
mov dword [rsi + 0x80], edx
cmp r9d, 1
jne 0x18001f0dd
imul r15, r15, 0x38
add r15, qword [rsi + 0x78]
cmp dword [r15 + 0x20], 0
je 0x18001f0cd
mov rcx, qword [rsi + 0x58]
mov rax, qword [rcx]
test rax, rax
je 0x18001f0cd
lea rdx, [0x180144a20]
cmp rax, rdx
jne 0x18001f0c6
mov eax, dword [r15 + 0x1c]
mov rdx, qword [rsi + 0xc8]
add rdx, 4
imul rdx, rax
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r12d, eax
mov ecx, dword [r15 + 0x1c]
mov dword [rsi + 0x3c], ecx
mov eax, r12d
mov r15, qword [rsp + 0x20]
add rsp, 0x48
pop r12
pop rsi
ret
cmp qword [rsi + 0x128], 0
jne 0x18001f0f1
mov rax, qword [rsi + 0x50]
cmp qword [rax], 0
je 0x18001f0cd
test edx, edx
je 0x18001f103
lea eax, [rdx - 1]
movsxd rcx, eax
imul rcx, rcx, 0x38
add rcx, qword [rsi + 0x78]
mov rdx, rcx
mov rcx, rsi
mov r15, qword [rsp + 0x20]
add rsp, 0x48
pop r12
pop rsi
jmp 0x18001bea0
mov eax, r12d
add rsp, 0x48
pop r12
pop rsi
ret