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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rdi, qword [rcx]
xor ebx, ebx
mov r12, qword [r8 + 0x60]
mov r15, r8
movsxd rsi, edx
mov rbp, rcx
mov qword [rsp + 0x50], r12
mov r14, qword [rdi + 0x10]
mov rax, qword [rdi + 0x60]
mov qword [rdi + 0x60], rbx
mov qword [rsp + 0x68], rax
mov rax, qword [rdi + 0x68]
mov qword [rdi + 0x68], rbx
movsxd rdx, dword [r14 + 0x90]
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x40], edx
cmp dword [r14 + 0x94], edx
jg 0x1800c7d6f
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor r8d, r8d
lea edx, [rbx + 0xf]
mov rcx, r14
call fcn.1800419d0
mov dword [rsp + 0x40], eax
jmp 0x1800c7d96
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r14 + 0x90], eax
mov rax, qword [r14 + 0x88]
mov qword [rax + rcx*8], 0xf
mov qword [rax + rcx*8 + 8], rbx
mov qword [rax + rcx*8 + 0x10], rbx
mov qword [rsp + 0x48], rsi
nop dword [rax + rax]
mov r8, r15
mov rdx, rbp
mov rcx, rdi
call fcn.1800bba40
dec dword [rdi + 0x44]
mov r9d, dword [rdi + 0x38]
mov r13d, dword [r15 + 4]
inc r9d
mov eax, dword [rdi + 0x44]
mov dword [rsp + 0x38], eax
mov dword [rdi + 0x38], r9d
mov dword [r15 + 0x34], r9d
movzx r15d, byte [r15 + 0x40]
mov rbp, qword [rbp + 8]
imul rcx, r15, 0x68
mov dword [rsp + 0x34], r13d
mov rax, qword [rcx + rbp + 0x28]
movsx ecx, word [rax + 0x3a]
mov eax, 0x66666667
imul ecx
mov r8d, edx
sar r8d, 2
mov eax, r8d
shr eax, 0x1f
add r8d, eax
lea eax, [r8 + r8*4]
add eax, eax
sub ecx, eax
movsxd rdx, ecx
cmp rdx, 5
jb 0x1800c7e14
sub rdx, 2
jmp 0x1800c7e1d
cmp rdx, 1
jb 0x1800c7e1d
dec rdx
cmp r8w, 0x3c
jg 0x1800c7e5e
add rdx, 8
movsx eax, r8w
cmp r8w, 3
jl 0x1800c7e3b
lea ecx, [rax - 3]
shl rdx, cl
jmp 0x1800c7e45
mov ecx, 3
sub ecx, eax
shr rdx, cl
cmp rdx, 0x2710
jae 0x1800c7e55
mov edx, 0x2710
jmp 0x1800c7e63
cmp rdx, 0x989680
jbe 0x1800c7e63
mov edx, 0x989680
movsxd rcx, dword [r14 + 0x90]
cmp dword [r14 + 0x94], ecx
jg 0x1800c7e89
mov r8d, edx
mov dword [rsp + 0x20], ebx
mov edx, 0x4d
mov rcx, r14
call fcn.1800419d0
jmp 0x1800c7eb7
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x4d
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], ebx
mov qword [rax + rcx*8 + 0x10], rbx
movsxd rdx, dword [r14 + 0x90]
mov dword [rsp + 0x3c], edx
cmp dword [r14 + 0x94], edx
jg 0x1800c7ee7
xor r9d, r9d
mov dword [rsp + 0x20], ebx
mov r8d, r13d
mov rcx, r14
lea edx, [r9 + 0x24]
call fcn.1800419d0
mov dword [rsp + 0x3c], eax
jmp 0x1800c7f16
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r14 + 0x90], eax
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x24
mov dword [rax + rcx*8 + 4], r13d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], rbx
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rax + 0x90]
movsxd rax, dword [rax + 0x84]
imul rsi, rax, 0x38
add rsi, rbx
cmp rbx, rsi
jae 0x1800c7f7d
mov r12d, dword [rsp + 0x38]
nop dword [rax]
test byte [rbx + 0x12], 2
jne 0x1800c7f6f
mov rcx, qword [rbx]
xor r9d, r9d
mov r8d, r15d
mov rdx, rbp
call fcn.18005f800
test eax, eax
je 0x1800c7f6f
mov rdx, qword [rbx]
mov r9d, 0x10
mov r8d, r12d
mov rcx, rdi
call fcn.180066bd0
add rbx, 0x38
cmp rbx, rsi
jb 0x1800c7f40
mov r12, qword [rsp + 0x50]
test dword [r12 + 0x38], 0x100
je 0x1800c8094
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x1800c7f9c
inc dword [rdi + 0x38]
mov ebx, dword [rdi + 0x38]
jmp 0x1800c7fab
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov ebx, dword [rdi + rax*4 + 0xe8]
movsxd rcx, dword [r14 + 0x90]
xor esi, esi
cmp dword [r14 + 0x94], ecx
jg 0x1800c7fd6
mov r9d, ebx
mov dword [rsp + 0x20], esi
mov r8d, r13d
mov edx, 0x87
mov rcx, r14
call fcn.1800419d0
jmp 0x1800c8004
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x87
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov r15, qword [rsp + 0xe0]
movsxd rcx, dword [r14 + 0x90]
mov edx, dword [r15 + 0x34]
cmp dword [r14 + 0x94], ecx
jg 0x1800c8041
mov r8d, edx
mov dword [rsp + 0x28], 1
mov edx, VarDecFix
mov dword [rsp + 0x20], ebx
xor r9d, r9d
mov rcx, r14
call fcn.180041a30
jmp 0x1800c8071
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0xfdb7
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], ebx
mov dword [rax + rcx*8 + 0x10], 1
test ebx, ebx
je 0x1800c827d
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x1800c827d
mov dword [rdi + rax*4 + 0xe8], ebx
inc byte [rdi + 0x1f]
jmp 0x1800c827d
movzx esi, word [r12 + 0x18]
mov r13, qword [r12 + 0x20]
mov dword [rsp + 0x44], esi
cmp esi, 1
jne 0x1800c80d9
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x1800c80c0
inc dword [rdi + 0x38]
lea r8, [rdi + 0x28]
mov eax, dword [rdi + 0x38]
mov dword [rsp + 0x30], eax
jmp 0x1800c8107
dec al
lea r8, [rdi + 0x28]
movzx eax, al
mov byte [rdi + 0x1f], al
mov eax, dword [rdi + rax*4 + 0xe8]
mov dword [rsp + 0x30], eax
jmp 0x1800c8107
mov ecx, dword [rdi + 0x28]
lea r8, [rdi + 0x28]
mov edx, dword [rdi + 0x2c]
mov dword [rsp + 0x30], edx
cmp esi, ecx
jg 0x1800c80f8
lea eax, [rdx + rsi]
sub ecx, esi
mov dword [rdi + 0x2c], eax
mov dword [r8], ecx
jmp 0x1800c8107
mov eax, dword [rdi + 0x38]
lea ecx, [rax + 1]
add eax, esi
mov dword [rdi + 0x38], eax
mov dword [rsp + 0x30], ecx
xor r9d, r9d
mov rbx, r8
mov r15d, r9d
test esi, esi
je 0x1800c81e0
mov ebp, dword [rsp + 0x30]
mov r12d, r9d
mov r14, rsi
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r13 + 8]
movsx ecx, word [rax + r15*2]
cmp cx, 0xfffe
jne 0x1800c819c
mov eax, dword [rsp + 0x34]
mov rsi, qword [rdi]
inc eax
mov dword [rdi + 0x40], eax
mov rax, qword [r13 + 0x50]
mov rdx, qword [rax + r12 + 8]
test rdx, rdx
je 0x1800c816c
xor r9d, r9d
xor r8d, r8d
mov rcx, rsi
call fcn.18005dae0
mov rbx, rax
jmp 0x1800c816f
mov rbx, r9
cmp byte [rsi + 0x67], 0
jne 0x1800c8183
mov r8d, ebp
mov rdx, rbx
mov rcx, rdi
call fcn.180065ff0
test rbx, rbx
je 0x1800c8193
mov rdx, rbx
mov rcx, rsi
call fcn.18005d720
xor r9d, r9d
mov dword [rdi + 0x40], r9d
jmp 0x1800c81b8
mov r8d, dword [rsp + 0x34]
mov r9d, ecx
mov rcx, qword [rdi + 0x10]
mov rdx, qword [r13 + 0x18]
mov dword [rsp + 0x20], ebp
call fcn.180063140
xor r9d, r9d
inc ebp
inc r15
add r12, 0x20
cmp r15, r14
jl 0x1800c8130
mov r14, qword [rsp + 0x58]
lea rbx, [rdi + 0x28]
mov esi, dword [rsp + 0x44]
lea r8, [rdi + 0x28]
mov r12, qword [rsp + 0x50]
mov r15, qword [rsp + 0xe0]
movsxd rcx, dword [r14 + 0x90]
mov edx, dword [r15 + 0x34]
cmp dword [r14 + 0x94], ecx
jg 0x1800c8221
mov eax, dword [rsp + 0x30]
mov r8d, edx
mov edx, VarDecFix
mov dword [rsp + 0x28], esi
xor r9d, r9d
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.180041a30
mov edx, dword [rsp + 0x30]
jmp 0x1800c8255
lea eax, [rcx + 1]
mov rbx, r8
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x30]
mov dword [rax + rcx*8 + 0xc], edx
mov dword [rax + rcx*8], 0xfdb7
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0x10], esi
cmp esi, 1
jne 0x1800c8272
test edx, edx
je 0x1800c827b
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x1800c827b
mov dword [rdi + rax*4 + 0xe8], edx
inc byte [rdi + 0x1f]
jmp 0x1800c827b
cmp esi, dword [rbx]
jle 0x1800c827b
mov dword [rbx], esi
mov dword [rdi + 0x2c], edx
xor esi, esi
mov rcx, qword [r14 + 0x18]
mov edx, dword [rsp + 0x38]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x1800c829c
mov r8d, edx
mov rdx, r14
call fcn.180042190
jmp 0x1800c82ad
mov rcx, qword [rcx + 0x50]
mov eax, dword [r14 + 0x90]
movsxd rdx, edx
mov dword [rcx + rdx*4], eax
movsxd rbx, dword [rsp + 0x3c]
movsxd rcx, dword [r14 + 0x90]
mov r8d, dword [r15 + 4]
lea edx, [rbx + 1]
cmp dword [r14 + 0x94], ecx
jg 0x1800c82df
mov r9d, edx
mov dword [rsp + 0x20], esi
mov edx, 0x27
mov rcx, r14
call fcn.1800419d0
jmp 0x1800c830d
lea eax, [rcx + 1]
mov dword [r14 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r14 + 0x88]
mov dword [rax + rcx*8], 0x27
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], esi
mov qword [rax + rcx*8 + 0x10], rsi
mov rax, qword [r14]
lea r11, [0x1801564c0]
mov edx, dword [r14 + 0x90]
cmp byte [rax + 0x67], 0
je 0x1800c8329
mov rax, r11
jmp 0x1800c8338
mov rax, qword [r14 + 0x88]
lea rcx, [rbx + rbx*2]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
and dword [r12 + 0x38], 0xffbfffff
mov rax, qword [rdi]
test dword [rax + 0x60], 0x100000
jne 0x1800c840d
mov esi, dword [rsp + 0xd8]
mov rbx, qword [rsp + 0x48]
inc esi
mov rbp, qword [rsp + 0xd0]
inc rbx
mov dword [rsp + 0xd8], esi
mov qword [rsp + 0x48], rbx
movzx r10d, byte [rbp + 0x40]
cmp esi, r10d
jge 0x1800c8402
mov r9, qword [rbp + 8]
mov r14, qword [rsp + 0xe8]
imul rdx, rbx, 0x70
add rdx, 0x3c0
add rdx, rbp
nop dword [rax]
movzx eax, byte [rdx - 0x20]
lea r15, [rdx - 0x60]
imul rcx, rax, 0x68
mov qword [rsp + 0xe0], r15
test byte [rcx + r9 + 0x44], 0x48
jne 0x1800c83db
mov r12, qword [rdx]
test r12, r12
je 0x1800c83db
test qword [r12], r14
jne 0x1800c83db
mov eax, dword [r12 + 0x38]
and eax, 0x400004
cmp eax, 0x400000
je 0x1800c83e9
inc esi
inc rbx
add rdx, 0x70
cmp rbx, r10
jl 0x1800c83a0
mov r14, qword [rsp + 0x58]
cmp esi, r10d
mov dword [rsp + 0xd8], esi
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], r12
mov ebx, 0
jl 0x1800c7da0
mov rax, qword [r14]
mov edx, dword [r14 + 0x90]
cmp byte [rax + 0x67], 0
jne 0x1800c8431
movsxd rax, dword [rsp + 0x40]
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x88]
lea r11, [rax + rcx*8]
mov rax, qword [rsp + 0x68]
mov dword [r11 + 8], edx
mov qword [rdi + 0x60], rax
mov rax, qword [rsp + 0x70]
mov qword [rdi + 0x68], rax
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret