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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
xor r13d, r13d
mov r15d, r13d
call fcn.180001030
mov rdi, rax
mov eax, 0x5a4d
nop
cmp word [rdi], ax
jne 0x180001093
movsxd rcx, dword [rdi + 0x3c]
cmp ecx, 0x40
jb 0x180001093
cmp ecx, 0x400
jae 0x180001093
cmp dword [rcx + rdi], 0x4550
lea r12, [rcx + rdi]
je 0x180001098
dec rdi
jmp 0x180001070
mov rax, qword gs:[0x60]
mov r11d, 1
mov rcx, qword [rax + 0x18]
mov rsi, qword [rcx + 0x20]
test rsi, rsi
je 0x180001182
mov ebp, 0xffff
nop dword [rax]
mov rax, qword [rsi + 0x50]
mov rcx, r13
movzx edx, word [rsi + 0x48]
movzx r8d, byte [rax]
nop
ror ecx, 0xd
mov rax, r8
cmp r8b, 0x61
jb 0x1800010e0
add rcx, 0xffffffffffffffe0
add rcx, rax
add dx, bp
jne 0x1800010d0
cmp ecx, 0x6a4abc5b
je 0x180001282
cmp ecx, 0x3cfa685d
jne 0x180001176
mov r10, qword [rsi + 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
nop dword [rax]
mov edx, dword [r8]
mov ecx, r13d
add rdx, r10
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 0x180001130
cmp ecx, 0x534c0ab8
jne 0x180001162
mov ecx, dword [rbx + r10 + 0x1c]
movzx edx, word [r9]
add rcx, r10
mov r15d, dword [rcx + rdx*4]
add r15, r10
add r11w, bp
add r8, 4
add r9, 2
test r11w, r11w
jne 0x180001120
mov r11d, 1
mov rsi, qword [rsi]
test rsi, rsi
jne 0x1800010c0
mov edx, dword [r12 + 0x50]
xor ecx, ecx
mov r8d, 0x3000
lea r9d, [rcx + 0x40]
call r13
mov r8d, dword [r12 + 0x54]
mov r14, rax
mov rdx, rdi
test r8, r8
je 0x1800011bf
sub rax, rdi
nop dword [rax]
movzx ecx, byte [rdx]
mov byte [rax + rdx], cl
inc rdx
sub r8, 1
jne 0x1800011b0
movzx r10d, word [r12 + 6]
movzx eax, word [r12 + 0x14]
test r10, r10
je 0x18000121b
lea r9, [r12 + 0x2c]
add r9, rax
nop dword [rax + rax]
mov ecx, dword [r9 - 8]
dec r10
mov edx, dword [r9]
add rcx, r14
mov r8d, dword [r9 - 4]
add rdx, rdi
test r8, r8
je 0x180001212
nop dword [rax]
movzx eax, byte [rdx]
inc rdx
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x180001200
add r9, 0x28
test r10, r10
jne 0x1800011e0
mov ebp, dword [r12 + 0x90]
add rbp, r14
cmp dword [rbp + 0xc], r13d
je 0x180001305
mov ecx, dword [rbp + 0xc]
add rcx, r14
call r13
mov edi, dword [rbp + 0x10]
mov rsi, rax
mov ebx, dword [rbp]
add rdi, r14
add rbx, r14
cmp qword [rdi], r13
je 0x1800012f7
test rbx, rbx
je 0x1800012c9
mov rdx, qword [rbx]
test rdx, rdx
jns 0x1800012c9
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 0x1800012d9
mov r9, qword [rsi + 0x20]
movsxd rax, dword [r9 + 0x3c]
mov ecx, dword [rax + r9 + 0x88]
mov r8d, dword [rcx + r9 + 0x20]
add r8, r9
nop word [rax + rax]
mov edx, dword [r8]
mov ecx, r13d
add rdx, r9
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 0x1800012b0
add r8, 4
jmp 0x1800012a0
mov rdx, qword [rdi]
mov rcx, rsi
add rdx, 2
add rdx, r14
call r13
mov qword [rdi], rax
add rdi, 8
test rbx, rbx
lea rax, [rbx + 8]
cmove rax, rbx
mov rbx, rax
cmp qword [rdi], r13
jne 0x180001251
add rbp, 0x14
cmp dword [rbp + 0xc], r13d
jne 0x180001230
mov r9, r14
sub r9, qword [r12 + 0x30]
cmp dword [r12 + 0xb4], r13d
je 0x1800013c9
mov ebx, dword [r12 + 0xb0]
add rbx, r14
mov eax, dword [rbx + 4]
test eax, eax
je 0x1800013c9
mov r8d, dword [rbx]
lea r11, [rbx + 8]
mov r10d, eax
add r8, r14
sub r10, 8
shr r10, 1
je 0x1800013b8
nop word [rax + rax]
movzx edx, word [r11]
dec r10
movzx ecx, dx
movzx eax, dx
shr cx, 0xc
cmp cx, 0xa
jne 0x180001373
and edx, 0xfff
add qword [rdx + r8], r9
jmp 0x1800013af
cmp cx, 3
jne 0x180001384
and eax, 0xfff
add dword [rax + r8], r9d
jmp 0x1800013af
cmp cx, 1
jne 0x18000139f
and eax, 0xfff
lea rcx, [rax + r8]
mov rax, r9
shr rax, 0x10
add word [rcx], ax
jmp 0x1800013af
cmp cx, 2
jne 0x1800013af
and eax, 0xfff
add word [rax + r8], r9w
add r11, 2
test r10, r10
jne 0x180001350
mov eax, dword [rbx + 4]
add rbx, rax
mov eax, dword [rbx + 4]
test eax, eax
jne 0x180001331
mov ebx, dword [r12 + 0x28]
xor edx, edx
xor r8d, r8d
add rbx, r14
lea rcx, [rdx - 1]
call r15
xor r8d, r8d
mov rcx, r14
lea edx, [r8 + 1]
call rbx
mov rbp, qword [rsp + 0x58]
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret