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

Disassembly:
mov qword [rsp + 8], rbx
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.180004af0
mov rbp, rax
mov eax, 0x5a4d
nop dword [rax]
cmp word [rbp], ax
jne 0x1800046d9
movsxd rdx, dword [rbp + 0x3c]
lea rcx, [rdx - 0x40]
cmp rcx, 0x3bf
ja 0x1800046d9
cmp dword [rdx + rbp], 0x4550
lea rdi, [rdx + rbp]
mov qword [rsp + 0x70], rdi
je 0x1800046de
dec rbp
jmp 0x1800046b0
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 0x1800048b4
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 0x18000472f
add rax, 0xffffffffffffffe0
add rax, rcx
inc rdx
add r8w, di
jne 0x180004720
cmp eax, 0x6a4abc5b
jne 0x180004807
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 0x180004780
cmp r8d, 0xec0e4e8e
je 0x1800047b0
cmp r8d, 0x7c0dfcaa
je 0x1800047b0
cmp r8d, 0x91afca54
jne 0x1800047f2
mov ecx, dword [rdi + r9 + 0x1c]
movzx edx, word [r11]
add rcx, r9
cmp r8d, 0xec0e4e8e
jne 0x1800047ce
mov r12d, dword [rcx + rdx*4]
add r12, r9
jmp 0x1800047ef
cmp r8d, 0x7c0dfcaa
jne 0x1800047e0
mov r15d, dword [rcx + rdx*4]
add r15, r9
jmp 0x1800047ef
cmp r8d, 0x91afca54
jne 0x1800047ef
mov esi, dword [rcx + rdx*4]
add rsi, r9
add bx, bp
add r10, 4
add r11, 2
test bx, bx
jne 0x180004770
mov edi, ebp
jmp 0x180004880
cmp eax, 0x3cfa685d
jne 0x18000488a
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 0x180004840
cmp ecx, 0x534c0ab8
jne 0x180004872
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 0x180004832
mov r11d, 1
lea ebx, [r11 + 2]
test r12, r12
je 0x18000489e
test r15, r15
je 0x18000489e
test rsi, rsi
je 0x18000489e
test r13, r13
jne 0x1800048aa
mov r14, qword [r14]
test r14, r14
jne 0x180004710
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 edx, dword [rdi + 0x54]
mov r14, rax
mov rax, rbp
test rdx, rdx
je 0x1800048f1
mov r8, r14
sub r8, rbp
nop dword [rax]
movzx ecx, byte [rax]
mov byte [r8 + rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x1800048e0
movzx r10d, word [rdi + 6]
movzx eax, word [rdi + 0x14]
test r10, r10
je 0x18000494b
lea r9, [rdi + 0x2c]
add r9, rax
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 0x180004942
nop dword [rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x180004930
add r9, 0x28
test r10, r10
jne 0x180004910
mov ebp, dword [rdi + 0x90]
add rbp, r14
cmp dword [rbp + 0xc], 0
je 0x1800049ef
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 0x1800049dc
nop
test rbx, rbx
je 0x1800049b1
mov rdx, qword [rbx]
test rdx, rdx
jns 0x1800049b1
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 0x1800049c1
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 0x180004980
add rbp, 0x14
cmp dword [rbp + 0xc], 0
jne 0x180004960
mov rdi, qword [rsp + 0x70]
mov r9, r14
sub r9, qword [rdi + 0x30]
cmp dword [rdi + 0xb4], 0
je 0x180004ab9
mov ebx, dword [rdi + 0xb0]
add rbx, r14
mov eax, dword [rbx + 4]
test eax, eax
je 0x180004ab9
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 0x180004aa8
nop word [rax + rax]
movzx edx, word [r11]
dec r10
movzx ecx, dx
movzx eax, dx
shr cx, 0xc
cmp cx, 0xa
jne 0x180004a63
and edx, 0xfff
add qword [rdx + r8], r9
jmp 0x180004a9f
cmp cx, 3
jne 0x180004a74
and eax, 0xfff
add dword [rax + r8], r9d
jmp 0x180004a9f
cmp cx, 1
jne 0x180004a8f
and eax, 0xfff
lea rcx, [rax + r8]
mov rax, r9
shr rax, 0x10
add word [rcx], ax
jmp 0x180004a9f
cmp cx, 2
jne 0x180004a9f
and eax, 0xfff
add word [rax + r8], r9w
add r11, 2
test r10, r10
jne 0x180004a40
mov eax, dword [rbx + 4]
add rbx, rax
mov eax, dword [rbx + 4]
test eax, eax
jne 0x180004a20
mov ebx, dword [rdi + 0x28]
xor edx, edx
xor r8d, r8d
add rbx, r14
lea rcx, [rdx - 1]
call r13
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 1]
call rbx
mov rax, rbx
mov rbx, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret