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

Disassembly:
mov qword [rsp + 8], rcx
push rsi
sub rsp, 0x60
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x48], r12
mov r12, rcx
mov rcx, qword [rax + 0x58]
mov qword [rsp + 0x38], r14
mov r14d, edx
test rcx, rcx
je 0x18001ee52
call qword [0x1800ac468]
mov rcx, qword [r12 + 0x28]
call fcn.180013580
mov r11, qword [r12]
test r11, r11
je 0x18001ee74
mov rcx, qword [r11 + 0x58]
test rcx, rcx
je 0x18001ee74
call qword [0x1800ac468]
mov esi, dword [r12 + 0x30]
test esi, esi
je 0x18001ee8b
cmp esi, 5
je 0x18001ee8b
cmp esi, 6
jne 0x18001f640
mov rcx, qword [r12 + 0x28]
mov qword [rsp + 0x58], rbp
mov rbp, qword [r12 + 8]
mov rax, qword [rcx + 8]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x40], r13
or r13d, 0xffffffff
cmp qword [r12], 0
mov qword [rsp + 0x30], r15
mov r15, qword [rax]
mov rax, qword [rbp + 8]
mov dword [rsp + 0x80], r13d
mov rdx, qword [rax]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x20], rdx
je 0x18001eef2
mov rax, qword [rcx + 8]
cmp byte [rax + 0x30], 2
jne 0x18001eef2
lea esi, [r13 + 6]
jmp 0x18001f2b3
cmp dword [r12 + 0x14], 0
jne 0x18001f112
mov rdi, qword [rbp + 8]
mov rcx, rbp
call fcn.180013580
cmp byte [rbp + 0x10], 2
je 0x18001f0b9
cmp byte [rdi + 0x20], 0
je 0x18001ef24
mov esi, 8
jmp 0x18001f0cd
cmp byte [rdi + 0x30], 2
je 0x18001ef73
cmp byte [rdi + 0x79], 0
jne 0x18001ef73
mov rax, qword [rdi + 0x68]
test rax, rax
je 0x18001ef4e
nop dword [rax]
cmp qword [rax], rbp
jne 0x18001ef6e
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18001ef40
cmp byte [rbp + 0x11], 0
mov rax, qword [rbp + 8]
je 0x18001efac
cmp qword [rax + 0x70], rbp
je 0x18001ef89
cmp byte [rax + 0x78], 0
je 0x18001ef89
mov esi, 0x106
jmp 0x18001f0cd
mov rax, qword [rax]
jmp 0x18001ef77
mov rax, qword [rdi + 0x70]
mov rcx, qword [rax]
test rcx, rcx
je 0x18001ef4e
mov esi, 0x106
jmp 0x18001f0cd
mov rax, qword [rax + 0x68]
test rax, rax
je 0x18001efac
cmp qword [rax], rbp
je 0x18001efa3
cmp dword [rax + 8], 1
jne 0x18001efa3
cmp byte [rax + 0xc], 1
jne 0x18001ef7f
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18001ef92
xor esi, esi
nop
cmp qword [rdi + 0x18], 0
jne 0x18001efc7
mov rcx, rdi
call fcn.180015d30
mov esi, eax
test eax, eax
je 0x18001efb0
jmp 0x18001f008
test esi, esi
jne 0x18001f008
cmp byte [rdi + 0x20], sil
je 0x18001efd8
mov esi, 8
jmp 0x18001f008
mov rax, qword [rbp]
mov rcx, qword [rdi]
xor r8d, r8d
cmp byte [rax + 0x29], 2
mov edx, 1
sete r8b
call fcn.180012740
mov esi, eax
test eax, eax
jne 0x18001f008
mov rcx, rdi
call fcn.1800160b0
mov esi, eax
test eax, eax
je 0x18001f039
cmp byte [rdi + 0x30], 0
jne 0x18001f039
mov rax, qword [rdi + 0x18]
test rax, rax
je 0x18001f039
mov rcx, qword [rax + 0x78]
test rcx, rcx
je 0x18001f031
mov rbx, qword [rcx + 0x20]
call fcn.18000d720
mov rcx, rbx
call fcn.180012370
mov qword [rdi + 0x18], 0
cmp esi, 5
jne 0x18001f07c
cmp byte [rdi + 0x30], 0
jne 0x18001f0cd
mov rbx, qword [rdi + 8]
add rbx, 0x298
je 0x18001f0cd
mov rax, qword [rbx]
test rax, rax
je 0x18001f0cd
mov edx, dword [rbx + 0x10]
test edx, edx
js 0x18001f0cd
mov rcx, qword [rbx + 8]
call rax
test eax, eax
je 0x18001f076
inc dword [rbx + 0x10]
jmp 0x18001efb0
mov dword [rbx + 0x10], r13d
jmp 0x18001f0cd
test esi, esi
jne 0x18001f0cd
cmp byte [rbp + 0x10], sil
jne 0x18001f0a3
inc dword [rdi + 0x34]
cmp byte [rbp + 0x11], sil
je 0x18001f0a3
mov byte [rbp + 0x3c], 1
mov rax, qword [rdi + 0x68]
mov qword [rbp + 0x40], rax
lea rax, [rbp + 0x30]
mov qword [rdi + 0x68], rax
mov byte [rbp + 0x10], 2
cmp byte [rdi + 0x30], 2
jae 0x18001f0b1
mov byte [rdi + 0x30], 2
mov qword [rdi + 0x70], rbp
mov byte [rdi + 0x78], 1
mov rax, qword [rbp]
mov rcx, qword [rdi]
mov edx, dword [rax + 0x300]
call fcn.180013060
mov esi, eax
cmp byte [rbp + 0x11], 0
je 0x18001f0ef
dec dword [rbp + 0x14]
jne 0x18001f0ef
mov rax, qword [rbp + 8]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x18001f0eb
call qword [0x1800ac478]
mov byte [rbp + 0x12], 0
test esi, esi
jne 0x18001f2b3
mov rcx, qword [r12 + 8]
lea r8, [r12 + 0x10]
lea edx, [rsi + 1]
mov dword [r12 + 0x14], 1
call fcn.18001ce90
mov rbp, qword [r12 + 0x28]
cmp byte [rbp + 0x10], 0
jne 0x18001f291
mov rdi, qword [rbp + 8]
mov rcx, rbp
xor esi, esi
call fcn.180013580
movzx eax, byte [rbp + 0x10]
cmp al, 2
je 0x18001f260
cmp al, 1
je 0x18001f260
cmp byte [rdi + 0x79], sil
je 0x18001f15c
mov rax, qword [rdi + 0x70]
cmp qword [rax], rsi
je 0x18001f15c
mov esi, 0x106
jmp 0x18001f260
mov rax, qword [rbp + 8]
cmp byte [rbp + 0x11], sil
je 0x18001f1a0
cmp qword [rax + 0x70], rbp
je 0x18001f17c
cmp byte [rax + 0x78], sil
je 0x18001f17c
mov esi, 0x106
jmp 0x18001f260
mov rax, qword [rax + 0x68]
test rax, rax
je 0x18001f1a0
cmp qword [rax], rbp
je 0x18001f196
cmp dword [rax + 8], 1
jne 0x18001f196
cmp byte [rax + 0xc], 1
jne 0x18001f152
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x18001f185
nop
cmp qword [rdi + 0x18], 0
jne 0x18001f1b7
mov rcx, rdi
call fcn.180015d30
mov esi, eax
test eax, eax
je 0x18001f1a0
jmp 0x18001f1bb
test esi, esi
je 0x18001f1ec
cmp byte [rdi + 0x30], 0
jne 0x18001f1ec
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x18001f1ec
mov rcx, qword [rcx + 0x78]
test rcx, rcx
je 0x18001f1e4
mov rbx, qword [rcx + 0x20]
call fcn.18000d720
mov rcx, rbx
call fcn.180012370
mov qword [rdi + 0x18], 0
cmp esi, 5
jne 0x18001f22b
cmp byte [rdi + 0x30], 0
jne 0x18001f260
mov rbx, qword [rdi + 8]
add rbx, 0x298
je 0x18001f260
mov rax, qword [rbx]
test rax, rax
je 0x18001f260
mov edx, dword [rbx + 0x10]
test edx, edx
js 0x18001f260
mov rcx, qword [rbx + 8]
call rax
test eax, eax
je 0x18001f225
inc dword [rbx + 0x10]
jmp 0x18001f1a0
mov dword [rbx + 0x10], r13d
jmp 0x18001f260
test esi, esi
jne 0x18001f260
cmp byte [rbp + 0x10], sil
jne 0x18001f252
inc dword [rdi + 0x34]
cmp byte [rbp + 0x11], sil
je 0x18001f252
mov byte [rbp + 0x3c], 1
mov rax, qword [rdi + 0x68]
mov qword [rbp + 0x40], rax
lea rax, [rbp + 0x30]
mov qword [rdi + 0x68], rax
mov byte [rbp + 0x10], 1
cmp byte [rdi + 0x30], 1
jae 0x18001f260
mov byte [rdi + 0x30], 1
cmp byte [rbp + 0x11], 0
je 0x18001f282
dec dword [rbp + 0x14]
jne 0x18001f282
mov rax, qword [rbp + 8]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x18001f27e
call qword [0x1800ac478]
mov byte [rbp + 0x12], 0
mov dword [rsp + 0x88], 1
test esi, esi
jne 0x18001f2b3
mov esi, dword [r15 + 0x28]
test esi, esi
jne 0x18001f2b3
lea rdx, [rsp + 0x80]
mov rcx, r15
call fcn.1800113b0
mov r13d, dword [rsp + 0x80]
mov esi, eax
xor ebp, ebp
test r14d, r14d
js 0x18001f2c3
cmp ebp, r14d
jge 0x18001f359
mov ebx, dword [r12 + 0x18]
cmp ebx, r13d
ja 0x18001f359
test esi, esi
jne 0x18001f3b0
mov rax, qword [r12 + 0x28]
mov rcx, qword [rax + 8]
mov eax, dword [0x1800ac550]
movzx r8d, word [rcx + 0x24]
cdq
idiv r8d
inc eax
cmp ebx, eax
je 0x18001f34d
test ebx, ebx
jne 0x18001f307
inc dword [r12 + 0x18]
lea esi, [rbx + 0xb]
inc ebp
jmp 0x18001f2b5
lea r8, [rsp + 0x80]
xor r9d, r9d
mov edx, ebx
mov rcx, r15
call fcn.1800123e0
mov esi, eax
test eax, eax
jne 0x18001f34d
mov rdi, qword [rsp + 0x80]
mov edx, ebx
mov rcx, r12
mov r8, qword [rdi]
call fcn.18001eca0
mov rbx, qword [rdi + 0x20]
mov rcx, rdi
mov esi, eax
call fcn.18000d720
mov rcx, rbx
call fcn.180012370
inc dword [r12 + 0x18]
inc ebp
jmp 0x18001f2b5
test esi, esi
jne 0x18001f3b0
mov ecx, dword [r12 + 0x18]
mov eax, r13d
mov dword [r12 + 0x38], r13d
sub eax, ecx
inc eax
mov dword [r12 + 0x34], eax
cmp ecx, r13d
ja 0x18001f3b9
cmp dword [r12 + 0x3c], esi
jne 0x18001f602
mov rax, qword [r12 + 0x28]
mov rcx, qword [rax + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0xd8]
mov qword [r12 + 0x40], rax
mov qword [rdx + 0xd8], r12
mov dword [r12 + 0x3c], 1
jmp 0x18001f602
cmp esi, 0x65
jne 0x18001f602
mov rdi, qword [r12 + 8]
mov ebp, dword [r12 + 0x10]
mov rbx, qword [rdi + 8]
mov rcx, rdi
inc ebp
call fcn.180013580
mov rcx, qword [rbx + 0x18]
mov rbx, qword [rcx + 0x70]
mov rcx, qword [rcx + 0x78]
call fcn.1800129d0
mov esi, eax
test eax, eax
jne 0x18001f404
mov eax, ebp
mov byte [rbx + 0x2b], bpl
shr eax, 0x18
mov byte [rbx + 0x28], al
mov eax, ebp
shr eax, 0x10
mov byte [rbx + 0x29], al
mov eax, ebp
shr eax, 8
mov byte [rbx + 0x2a], al
cmp byte [rdi + 0x11], 0
je 0x18001f426
dec dword [rdi + 0x14]
jne 0x18001f426
mov rax, qword [rdi + 8]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x18001f422
call qword [0x1800ac478]
mov byte [rdi + 0x12], 0
test esi, esi
jne 0x18001f602
mov rax, qword [r12 + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [r12 + 8]
movzx r15d, word [rcx + 0x24]
mov rcx, qword [rax + 8]
movzx ebx, word [rcx + 0x24]
mov rcx, qword [r12]
test rcx, rcx
je 0x18001f459
xor edx, edx
call fcn.18003d0b0
cmp r15d, ebx
jge 0x18001f493
mov eax, ebx
cdq
idiv r15d
mov ecx, eax
lea eax, [rax + r13 - 1]
cdq
idiv ecx
mov rcx, qword [r12 + 8]
mov rdx, qword [rcx + 8]
movzx ecx, word [rdx + 0x24]
mov r8d, eax
mov eax, dword [0x1800ac550]
cdq
idiv ecx
inc eax
cmp r8d, eax
jne 0x18001f4a0
dec r8d
jmp 0x18001f4a0
mov eax, r15d
cdq
idiv ebx
mov r8d, eax
imul r8d, r13d
mov rdi, qword [rsp + 0x20]
xor edx, edx
mov dword [rdi + 0x1c], r8d
mov rcx, rdi
cmp r15d, ebx
jge 0x18001f5d7
movsxd r12, r13d
mov r13, qword [rdi + 0x40]
lea r8d, [rdx + 1]
mov r14, r15
imul r12, r15
call fcn.180012db0
mov esi, eax
test eax, eax
jne 0x18001f602
mov rax, qword [r13]
lea rdx, [rsp + 0x80]
mov rcx, r13
call qword [rax + 0x30]
mov esi, eax
test eax, eax
jne 0x18001f509
cmp qword [rsp + 0x80], r12
jle 0x18001f509
mov rax, qword [r13]
mov rdx, r12
mov rcx, r13
call qword [rax + 0x20]
mov esi, eax
test esi, esi
jne 0x18001f602
cmp byte [rdi + 0xc], sil
jne 0x18001f527
mov rcx, qword [rdi + 0x40]
movzx edx, byte [rdi + 0xe]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov esi, eax
test esi, esi
jne 0x18001f602
mov edx, dword [0x1800ac550]
lea eax, [rdx + rbx]
movsxd rcx, eax
lea eax, [rdx + r15]
cmp rcx, r12
movsxd rdi, eax
cmovl r12, rcx
nop dword [rax]
cmp rdi, r12
jge 0x18001f5e3
mov rax, rdi
mov qword [rsp + 0x80], 0
cqo
idiv r14
inc eax
jne 0x18001f576
lea esi, [rax + 0xb]
jmp 0x18001f5ca
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x80]
xor r9d, r9d
mov edx, eax
call fcn.1800123e0
mov rbp, qword [rsp + 0x80]
mov esi, eax
test eax, eax
jne 0x18001f5b1
mov rax, qword [r13]
mov rdx, qword [rbp]
mov r9, rdi
mov r8d, r15d
mov rcx, r13
call qword [rax + 0x18]
mov esi, eax
test rbp, rbp
je 0x18001f5ca
mov rbx, qword [rbp + 0x20]
mov rcx, rbp
call fcn.18000d720
mov rcx, rbx
call fcn.180012370
add rdi, r15
test esi, esi
je 0x18001f550
jmp 0x18001f602
xor r8d, r8d
call fcn.180012db0
mov esi, eax
jmp 0x18001f5e8
mov r12, qword [rsp + 0x70]
test esi, esi
jne 0x18001f602
mov rcx, qword [r12 + 8]
call fcn.180017110
mov esi, eax
mov eax, 0x65
test esi, esi
cmove esi, eax
cmp dword [rsp + 0x88], 0
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x70]
je 0x18001f63b
mov rcx, qword [r12 + 0x28]
xor edx, edx
call fcn.180016f90
mov rcx, qword [r12 + 0x28]
call fcn.180017110
mov dword [r12 + 0x30], esi
mov rax, qword [r12]
mov r14, qword [rsp + 0x38]
test rax, rax
je 0x18001f65d
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x18001f65d
call qword [0x1800ac478]
mov rbx, qword [r12 + 0x28]
cmp byte [rbx + 0x11], 0
je 0x18001f684
dec dword [rbx + 0x14]
jne 0x18001f684
mov rax, qword [rbx + 8]
mov rcx, qword [rax + 0x48]
test rcx, rcx
je 0x18001f680
call qword [0x1800ac478]
mov byte [rbx + 0x12], 0
mov rax, qword [r12 + 0x20]
mov rbx, qword [rsp + 0x78]
mov r12, qword [rsp + 0x48]
mov rcx, qword [rax + 0x58]
test rcx, rcx
je 0x18001f6a2
call qword [0x1800ac478]
mov eax, esi
add rsp, 0x60
pop rsi
ret