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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov esi, dword [rcx + 0x3c]
xor r13d, r13d
mov r12, qword [rcx + 0x18]
mov rdi, r8
mov qword [rax - 0x48], r13
mov r14, rdx
mov rbp, rcx
mov dword [rsp + 0x70], esi
mov r10, qword [r12 + 0x50]
movzx eax, byte [r10 + 0x26]
movzx ebx, byte [r10 + 0x25]
shl ebx, 8
or ebx, eax
movzx eax, byte [r10 + 0x27]
shl ebx, 8
or ebx, eax
movzx eax, byte [r10 + 0x24]
shl eax, 0x18
or ebx, eax
cmp ebx, esi
jb 0x18001c3d4
mov ecx, 0xf732
call fcn.180049820
jmp 0x18001c755
mov rcx, qword [r12 + 0x70]
call fcn.180018e8c
test ebx, ebx
je 0x18001c6b8
test eax, eax
jne 0x18001c755
mov rcx, qword [r12 + 0x50]
lea edx, [rbx - 1]
mov eax, edx
shr eax, 0x18
mov byte [rcx + 0x24], al
mov eax, edx
shr eax, 0x10
mov byte [rcx + 0x25], al
mov eax, edx
shr eax, 8
mov byte [rcx + 0x26], al
mov byte [rcx + 0x27], dl
mov rcx, qword [r12 + 0x50]
movzx eax, byte [rcx + 0x22]
movzx r15d, byte [rcx + 0x21]
shl r15d, 8
or r15d, eax
movzx eax, byte [rcx + 0x20]
shl eax, 0x18
shl r15d, 8
or r15d, eax
movzx eax, byte [rcx + 0x23]
or r15d, eax
cmp r15d, esi
ja 0x18001c45a
xor r9d, r9d
lea r8, [rsp + 0x20]
mov edx, r15d
mov rcx, rbp
call fcn.18001a680
mov r13, qword [rsp + 0x20]
jmp 0x18001c464
mov ecx, 0xf76a
call fcn.180049820
mov ebx, eax
test eax, eax
jne 0x18001c753
mov rdi, qword [r13 + 0x50]
movzx eax, byte [rdi + 6]
movzx esi, byte [rdi + 5]
shl esi, 8
or esi, eax
movzx eax, byte [rdi + 4]
shl eax, 0x18
shl esi, 8
or esi, eax
movzx eax, byte [rdi + 7]
or esi, eax
jne 0x18001c4ca
mov rcx, qword [r13 + 0x70]
call fcn.180018e8c
mov ebx, eax
test eax, eax
jne 0x18001c745
mov rax, qword [rsp + 0x80]
mov rcx, qword [r12 + 0x50]
mov qword [r14], r13
mov dword [rax], r15d
mov rax, qword [r13 + 0x50]
xor r13d, r13d
mov eax, dword [rax]
mov dword [rcx + 0x20], eax
jmp 0x18001c745
mov eax, dword [rbp + 0x34]
shr eax, 2
sub eax, 2
cmp esi, eax
ja 0x18001c6a7
test esi, esi
je 0x18001c745
mov ebx, dword [rsp + 0x88]
xor r10d, r10d
mov dword [rsp + 0x90], r10d
mov r15d, 1
test ebx, ebx
je 0x18001c5a6
movzx eax, byte [rdi + 0xa]
mov r12d, 0x80000000
movzx edx, byte [rdi + 9]
shl edx, 8
or edx, eax
movzx eax, byte [rdi + 0xb]
shl edx, 8
or edx, eax
movzx eax, byte [rdi + 8]
shl eax, 0x18
or edx, eax
sub edx, ebx
jns 0x18001c53a
cmp edx, r12d
jne 0x18001c538
mov edx, 0x7fffffff
jmp 0x18001c53a
neg edx
mov r9d, r15d
cmp esi, r15d
jbe 0x18001c5a6
mov r11d, Ordinal_13
mov ecx, r11d
add rcx, rdi
movzx eax, byte [rcx + 2]
movzx r8d, byte [rcx + 1]
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx]
shl eax, 0x18
shl r8d, 8
or r8d, eax
movzx eax, byte [rcx + 3]
or r8d, eax
sub r8d, ebx
jns 0x18001c587
cmp r8d, r12d
jne 0x18001c584
mov r8d, 0x7fffffff
jmp 0x18001c587
neg r8d
cmp r8d, edx
jge 0x18001c592
mov r10d, r9d
mov edx, r8d
add r9d, r15d
add r11d, 4
cmp r9d, esi
jb 0x18001c548
mov dword [rsp + 0x90], r10d
lea eax, [r10*4 + 8]
movzx ecx, byte [rax + rdi + 1]
shl ecx, 8
mov r12d, eax
movzx eax, byte [rax + rdi + 2]
or ecx, eax
shl ecx, 8
movzx eax, byte [r12 + rdi]
shl eax, 0x18
or ecx, eax
movzx eax, byte [r12 + rdi + 3]
or ecx, eax
cmp ecx, dword [rsp + 0x70]
ja 0x18001c6a0
mov rax, qword [rsp + 0x80]
mov dword [rax], ecx
mov rcx, qword [r13 + 0x70]
call fcn.180018e8c
mov ebx, eax
test eax, eax
jne 0x18001c745
lea edx, [rsi - 1]
cmp dword [rsp + 0x90], edx
jae 0x18001c616
lea eax, [rsi*4 + 4]
mov eax, dword [rax + rdi]
mov dword [r12 + rdi], eax
mov eax, edx
mov byte [rdi + 7], dl
shr eax, 0x18
mov byte [rdi + 4], al
mov eax, edx
shr eax, 0x10
mov byte [rdi + 5], al
mov eax, edx
shr eax, 8
mov byte [rdi + 6], al
mov rax, qword [rsp + 0x80]
mov rcx, qword [rbp + 0x58]
mov ebx, dword [rax]
test rcx, rcx
je 0x18001c656
cmp ebx, dword [rcx]
ja 0x18001c653
mov edx, ebx
call fcn.18001459c
test eax, eax
je 0x18001c656
xor r15d, r15d
mov r9d, r15d
mov r8, r14
mov edx, ebx
mov rcx, rbp
call fcn.18001a680
mov ebx, eax
test eax, eax
jne 0x18001c745
mov rcx, qword [r14]
mov rcx, qword [rcx + 0x70]
call fcn.180018e8c
mov ebx, eax
test eax, eax
je 0x18001c745
mov rcx, qword [r14]
test rcx, rcx
je 0x18001c697
mov rcx, qword [rcx + 0x70]
call fcn.180018950
and qword [r14], 0
jmp 0x18001c745
mov ecx, 0xf7ea
jmp 0x18001c6ac
mov ecx, 0xf787
call fcn.180049820
mov ebx, eax
jmp 0x18001c745
test eax, eax
jne 0x18001c755
lea r15d, [rax + 1]
xor edx, edx
add dword [rbp + 0x3c], r15d
mov eax, 0x40000000
div dword [rbp + 0x30]
mov ecx, dword [rbp + 0x3c]
add eax, r15d
cmp ecx, eax
jne 0x18001c6e2
lea eax, [rcx + 1]
mov dword [rbp + 0x3c], eax
mov edx, dword [rbp + 0x3c]
mov r9d, r15d
mov rax, qword [rbp + 0x18]
mov r8, r14
mov rcx, qword [rax + 0x50]
mov eax, edx
shr eax, 0x18
mov byte [rcx + 0x1c], al
mov eax, edx
shr eax, 0x10
mov byte [rcx + 0x1d], al
mov eax, edx
mov byte [rcx + 0x1f], dl
shr eax, 8
mov byte [rcx + 0x1e], al
mov rcx, rbp
mov edx, dword [rbp + 0x3c]
mov dword [rdi], edx
call fcn.18001a680
test eax, eax
jne 0x18001c755
mov rcx, qword [r14]
mov rcx, qword [rcx + 0x70]
call fcn.180018e8c
mov ebx, eax
test eax, eax
je 0x18001c753
mov rcx, qword [r14]
test rcx, rcx
je 0x18001c742
mov rcx, qword [rcx + 0x70]
call fcn.180018950
and qword [r14], r13
test r13, r13
je 0x18001c753
mov rcx, qword [r13 + 0x70]
call fcn.180018950
mov eax, ebx
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret