Function at 0x14015bcfa
Capabilities:
Parse pe header

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0xf0
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea r14, [rsp + 0x38]
mov rcx, r14
call fcn.14015a630
cmp dword [r14], 5
jne 0x14015bdbb
movzx eax, word [rsp + 0x40]
mov word [rsp + 0x2e], ax
cmp ax, 0x5a4d
jne 0x14015be66
mov byte [rsp + 0x20], 0
lea r14, [rsp + 0x38]
mov r9d, 0x3c
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14015a654
cmp dword [r14], 5
jne 0x14015beea
lea r15, [rsp + 0x38]
mov r14d, dword [r15 + 8]
mov dword [rsp + 0x30], r14d
mov byte [rsp + 0x20], 0
mov rcx, r15
mov rdx, rbx
mov r8, rdi
mov r9, r14
call fcn.14015a654
cmp dword [r15], 5
jne 0x14015bf39
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x34], eax
cmp eax, 0x4550
jne 0x14015bfeb
mov word [rsi + 8], 0x5a4d
mov dword [rsi + 0xc], r14d
mov qword [rsi], 0xa
jmp 0x14015bfd9
lea rax, [0x140287f78]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
lea rax, [0x14018c210]
mov qword [rcx + 8], rax
mov eax, 2
lea r8, [rsp + 0xb8]
mov qword [r8], rax
mov qword [r8 + 0x10], rax
and qword [r8 + 0x20], 0
movabs rdx, 0x400000020
mov qword [r8 + 0x28], rdx
mov byte [r8 + 0x30], 3
lea r9, str.cannot_parse_DOS_signature__offset
lea rdx, [rsp + 0x88]
mov qword [rdx], r9
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], r8
mov eax, 1
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rdi, [rsp + 0x70]
mov rcx, rdi
call fcn.140157091
lea rcx, [rsp + 0x38]
call fcn.14015640d
movzx eax, word [rdi]
mov rcx, qword [rdi + 0x10]
mov qword [rsi + 0x18], rcx
movups xmm0, xmmword [rdi + 2]
movups xmmword [rsi + 0xa], xmm0
mov qword [rsi], 5
mov word [rsi + 8], ax
jmp 0x14015bfd9
lea rax, [rsp + 0x2e]
lea rcx, [rsp + 0x68]
mov qword [rcx], rax
lea rax, [fcn.14018c0b0]
mov qword [rcx + 8], rax
mov eax, 2
lea r8, [rsp + 0xb8]
mov qword [r8], rax
mov qword [r8 + 0x10], rax
and qword [r8 + 0x20], 0
movabs rdx, 0x400000020
mov qword [r8 + 0x28], rdx
mov byte [r8 + 0x30], 3
lea r9, [0x140287f10]
lea rdx, [rsp + 0x88]
mov qword [rdx], r9
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], r8
mov eax, 1
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rcx, [rsi + 8]
call fcn.140157091
mov qword [rsi], 5
jmp 0x14015bfd9
lea rax, [0x140287fc8]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
lea rax, [0x14018c210]
mov qword [rcx + 8], rax
mov eax, 2
lea r8, [rsp + 0xb8]
mov qword [r8], rax
mov qword [r8 + 0x10], rax
and qword [r8 + 0x20], 0
movabs rdx, 0x400000020
mov qword [r8 + 0x28], rdx
mov byte [r8 + 0x30], 3
lea r9, str.cannot_parse_PE_header_pointer__offset
jmp 0x14015bf84
lea rax, [rsp + 0x30]
lea rcx, [rsp + 0x58]
mov qword [rcx], rax
lea rax, [0x14018c210]
mov qword [rcx + 8], rax
mov eax, 2
lea r8, [rsp + 0xb8]
mov qword [r8], rax
mov qword [r8 + 0x10], rax
and qword [r8 + 0x20], 0
movabs rdx, 0x400000020
mov qword [r8 + 0x28], rdx
mov byte [r8 + 0x30], 3
lea r9, str.cannot_parse_PE_header_signature__offset
lea rdx, [rsp + 0x88]
mov qword [rdx], r9
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], r8
mov eax, 1
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rdi, [rsp + 0x70]
mov rcx, rdi
call fcn.140157091
lea rcx, [rsp + 0x38]
call fcn.14015640d
mov eax, dword [rdi]
mov ecx, dword [rdi + 0x14]
mov dword [rsi + 0x1c], ecx
movups xmm0, xmmword [rdi + 4]
movups xmmword [rsi + 0xc], xmm0
mov qword [rsi], 5
mov dword [rsi + 8], eax
mov rax, rsi
add rsp, 0xf0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
lea rax, [rsp + 0x34]
lea rcx, [rsp + 0x68]
mov qword [rcx], rax
lea rax, [0x14018c210]
mov qword [rcx + 8], rax
mov eax, 2
lea r8, [rsp + 0xb8]
mov qword [r8], rax
mov qword [r8 + 0x10], rax
and qword [r8 + 0x20], 0
movabs rdx, 0x400000020
mov qword [r8 + 0x28], rdx
mov byte [r8 + 0x30], 3
lea r9, str.PE_header_is_malformed__signature
jmp 0x14015beb1