Function at 0x18004cf60
Capabilities:
Access peb ldr_data
Parse pe header
Resolve function by hash
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
xor r12d, r12d
xor r15d, r15d
xor esi, esi
xor r13d, r13d
call fcn.18004d3e0
mov rbp, rax
mov eax, 0x5a4d
cmp word [rbp], ax
jne 0x18004cfba
movsxd rdx, dword [rbp + 0x3c]
lea rcx, [rdx - 0x40]
cmp rcx, 0x3bf
ja 0x18004cfba
cmp dword [rdx + rbp], 0x4550
lea rdi, [rdx + rbp]
mov qword [rsp + 0x70], rdi
je 0x18004cfbf
dec rbp
jmp 0x18004cf91
mov rax, qword gs:[0x60]
mov r11d, 1
mov qword [rsp + 0x68], rbp
mov rcx, qword [rax + 0x18]
mov r14, qword [rcx + 0x20]
test r14, r14
je 0x18004d194
mov edi, 0xffff
lea ebx, [r11 + 2]
nop dword [rax]
mov rdx, qword [r14 + 0x50]
xor eax, eax
movzx r8d, word [r14 + 0x48]
nop dword [rax + rax]
movzx ecx, byte [rdx]
ror eax, 0xd
cmp cl, 0x61
jb 0x18004d00f
add rax, 0xffffffffffffffe0
add rax, rcx
inc rdx
add r8w, di
jne 0x18004d000
cmp eax, 0x6a4abc5b
jne 0x18004d0e7
mov r9, qword [r14 + 0x20]
mov ebp, 0xffff
movsxd rax, dword [r9 + 0x3c]
mov edi, dword [rax + r9 + 0x88]
mov r10d, dword [rdi + r9 + 0x20]
mov r11d, dword [rdi + r9 + 0x24]
add r10, r9
add r11, r9
nop dword [rax + rax]
mov ecx, dword [r10]
add rcx, r9
xor r8d, r8d
movzx eax, byte [rcx]
nop dword [rax]
ror r8d, 0xd
lea rcx, [rcx + 1]
movsx eax, al
add r8d, eax
movzx eax, byte [rcx]
test al, al
jne 0x18004d060
cmp r8d, 0xec0e4e8e
je 0x18004d090
cmp r8d, 0x7c0dfcaa
je 0x18004d090
cmp r8d, 0x91afca54
jne 0x18004d0d2
mov ecx, dword [rdi + r9 + 0x1c]
movzx edx, word [r11]
add rcx, r9
cmp r8d, 0xec0e4e8e
jne 0x18004d0ae
mov r12d, dword [rcx + rdx*4]
add r12, r9
jmp 0x18004d0cf
cmp r8d, 0x7c0dfcaa
jne 0x18004d0c0
mov r15d, dword [rcx + rdx*4]
add r15, r9
jmp 0x18004d0cf
cmp r8d, 0x91afca54
jne 0x18004d0cf
mov esi, dword [rcx + rdx*4]
add rsi, r9
add bx, bp
add r10, 4
add r11, 2
test bx, bx
jne 0x18004d050
mov edi, ebp
jmp 0x18004d160
cmp eax, 0x3cfa685d
jne 0x18004d16a
mov r10, qword [r14 + 0x20]
movsxd rax, dword [r10 + 0x3c]
mov ebx, dword [rax + r10 + 0x88]
mov r8d, dword [rbx + r10 + 0x20]
mov r9d, dword [rbx + r10 + 0x24]
add r8, r10
add r9, r10
mov edx, dword [r8]
add rdx, r10
xor ecx, ecx
movzx eax, byte [rdx]
nop dword [rax]
ror ecx, 0xd
lea rdx, [rdx + 1]
movsx eax, al
add ecx, eax
movzx eax, byte [rdx]
test al, al
jne 0x18004d120
cmp ecx, 0x534c0ab8
jne 0x18004d152
mov ecx, dword [rbx + r10 + 0x1c]
movzx edx, word [r9]
add rcx, r10
mov r13d, dword [rcx + rdx*4]
add r13, r10
add r11w, di
add r8, 4
add r9, 2
test r11w, r11w
jne 0x18004d112
mov r11d, 1
lea ebx, [r11 + 2]
test r12, r12
je 0x18004d17e
test r15, r15
je 0x18004d17e
test rsi, rsi
je 0x18004d17e
test r13, r13
jne 0x18004d18a
mov r14, qword [r14]
test r14, r14
jne 0x18004cff0
mov rbp, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov edx, dword [rdi + 0x50]
xor ecx, ecx
mov r8d, 0x3000
lea r9d, [rcx + 0x40]
call rsi
mov r14, rax
mov rdx, rbp
mov eax, dword [rdi + 0x54]
test rax, rax
je 0x18004d1d0
mov r8, r14
sub r8, rbp
nop dword [rax]
movzx ecx, byte [rdx]
mov byte [r8 + rdx], cl
inc rdx
sub rax, 1
jne 0x18004d1c0
movzx r9d, word [rdi + 0x14]
movzx r10d, word [rdi + 6]
add r9, 0x2c
test r10, r10
je 0x18004d22b
add r9, rdi
nop word [rax + rax]
mov ecx, dword [r9 - 8]
dec r10
mov edx, dword [r9]
add rcx, r14
mov r8d, dword [r9 - 4]
add rdx, rbp
test r8, r8
je 0x18004d222
nop dword [rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x18004d210
add r9, 0x28
test r10, r10
jne 0x18004d1f0
mov ebp, dword [rdi + 0x90]
add rbp, r14
cmp dword [rbp + 0xc], 0
je 0x18004d2cf
nop
mov ecx, dword [rbp + 0xc]
add rcx, r14
call r12
mov edi, dword [rbp + 0x10]
mov rsi, rax
mov ebx, dword [rbp]
add rdi, r14
add rbx, r14
cmp qword [rdi], 0
je 0x18004d2bc
nop
test rbx, rbx
je 0x18004d291
mov rdx, qword [rbx]
test rdx, rdx
jns 0x18004d291
movsxd rax, dword [rsi + 0x3c]
movzx edx, dx
mov ecx, dword [rax + rsi + 0x88]
mov eax, dword [rcx + rsi + 0x10]
mov ecx, dword [rcx + rsi + 0x1c]
sub rdx, rax
add rcx, rsi
mov eax, dword [rcx + rdx*4]
add rax, rsi
jmp 0x18004d2a1
mov rdx, qword [rdi]
mov rcx, rsi
add rdx, 2
add rdx, r14
call r15
mov qword [rdi], rax
add rdi, 8
test rbx, rbx
lea rax, [rbx + 8]
cmove rax, rbx
cmp qword [rdi], 0
mov rbx, rax
jne 0x18004d260
add rbp, 0x14
cmp dword [rbp + 0xc], 0
jne 0x18004d240
mov rdi, qword [rsp + 0x70]
mov r9, r14
sub r9, qword [rdi + 0x30]
cmp dword [rdi + 0xb4], 0
je 0x18004d399
mov ebx, dword [rdi + 0xb0]
add rbx, r14
mov eax, dword [rbx + 4]
test eax, eax
je 0x18004d399
nop word [rax + rax]
mov r8d, dword [rbx]
lea r11, [rbx + 8]
mov r10d, eax
add r8, r14
sub r10, 8
shr r10, 1
je 0x18004d388
nop word [rax + rax]
movzx edx, word [r11]
dec r10
movzx ecx, dx
movzx eax, dx
shr cx, 0xc
cmp cx, 0xa
jne 0x18004d343
and edx, 0xfff
add qword [rdx + r8], r9
jmp 0x18004d37f
cmp cx, 3
jne 0x18004d354
and eax, 0xfff
add dword [rax + r8], r9d
jmp 0x18004d37f
cmp cx, 1
jne 0x18004d36f
and eax, 0xfff
lea rcx, [rax + r8]
mov rax, r9
shr rax, 0x10
add word [rcx], ax
jmp 0x18004d37f
cmp cx, 2
jne 0x18004d37f
and eax, 0xfff
add word [rax + r8], r9w
add r11, 2
test r10, r10
jne 0x18004d320
mov eax, dword [rbx + 4]
add rbx, rax
mov eax, dword [rbx + 4]
test eax, eax
jne 0x18004d300
mov ebx, dword [rdi + 0x28]
xor edx, edx
xor r8d, r8d
add rbx, r14
lea rcx, [rdx - 1]
call r13
mov r8, qword [rsp + 0x60]
mov edx, 1
mov rcx, r14
call rbx
mov rax, rbx
mov rbx, qword [rsp + 0x78]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret