Function at 0x14002d250
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rdi
push r12
push r13
push r15
sub rsp, 0x70
mov rdi, rdx
mov r13, rcx
xor ebx, ebx
mov rcx, rdi
mov r12, r9
xor r15d, r15d
lea edx, [rbx + 0x40]
call fcn.14002dd60
test eax, eax
je 0x14002d29a
mov eax, 0x5a4d
cmp word [r13], ax
je 0x14002d2a9
mov ecx, 0xc1
call qword [0x1402598e8]
xor eax, eax
add rsp, 0x70
pop r15
pop r13
pop r12
pop rdi
pop rbx
ret
movsxd rdx, dword [r13 + 0x3c]
mov rcx, rdi
add rdx, 0x108
call fcn.14002dd60
test eax, eax
je 0x14002d29a
mov qword [rsp + 0xa0], rbp
movsxd rbp, dword [r13 + 0x3c]
add rbp, r13
cmp dword [rbp], 0x4550
jne 0x14002d364
mov eax, 0x8664
cmp word [rbp + 4], ax
jne 0x14002d364
mov ecx, dword [rbp + 0x38]
test cl, 1
jne 0x14002d364
movzx eax, word [rbp + 0x14]
lea rdx, [rbp + 0x24]
add rdx, rax
mov r9d, ecx
movzx eax, word [rbp + 6]
test eax, eax
je 0x14002d32b
mov r8d, eax
mov ecx, dword [rdx + 4]
test ecx, ecx
jne 0x14002d316
mov eax, dword [rdx]
add rax, r9
jmp 0x14002d31a
mov eax, dword [rdx]
add eax, ecx
cmp rax, rbx
cmova rbx, rax
add rdx, 0x28
sub r8, 1
jne 0x14002d308
lea rcx, [rsp + 0x30]
call qword [0x1402598e0]
mov edx, dword [rsp + 0x34]
mov eax, dword [rbp + 0x50]
lea rdi, [rdx - 1]
add rdi, rax
lea rcx, [rdx - 1]
add rcx, rbx
lea rax, [rdx - 1]
not rax
and rdi, rax
lea rax, [rdx - 1]
not rax
and rcx, rax
cmp rdi, rcx
je 0x14002d376
mov ecx, 0xc1
call qword [0x1402598e8]
xor eax, eax
jmp 0x14002d5ee
mov rcx, qword [rbp + 0x30]
mov r9d, 4
mov rbx, qword [rsp + 0xb0]
mov r8d, 0x3000
mov qword [rsp + 0x68], rsi
mov rdx, rdi
mov qword [rsp + 0x60], r14
mov r14, qword [rsp + 0xd8]
mov qword [rsp + 0x20], r14
call rbx
mov rsi, rax
test rax, rax
jne 0x14002d3d4
lea r9d, [rax + 4]
mov qword [rsp + 0x20], r14
mov r8d, 0x3000
mov rdx, rdi
xor ecx, ecx
call rbx
mov rsi, rax
test rax, rax
je 0x14002d55d
movabs rdx, 0xffffffff00000000
lea rcx, [rsi + rdi]
mov rax, rsi
and rcx, rdx
and rax, rdx
cmp rax, rcx
jae 0x14002d45a
mov ecx, 0x10
call fcn.140227f34
mov rbx, rax
test rax, rax
je 0x14002d56a
mov qword [rax], r15
mov r9d, 4
mov r8d, 0x3000
mov qword [rax + 8], rsi
mov rdx, rdi
mov qword [rsp + 0x20], r14
xor ecx, ecx
mov r15, rax
call qword [rsp + 0xb0]
mov rsi, rax
test rax, rax
je 0x14002d54f
lea rcx, [rax + rdi]
movabs rdx, 0xffffffff00000000
and rcx, rdx
and rax, rdx
cmp rax, rcx
jb 0x14002d3f0
mov rbx, qword [rsp + 0xb0]
call fcn.14000f6a0
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x70]
call fcn.140012be0
mov rdi, rax
test rax, rax
je 0x14002d56a
mov qword [rax + 8], rsi
movzx eax, word [rbp + 0x16]
shr eax, 0xd
and eax, 1
mov qword [rdi + 0x28], rbx
mov dword [rdi + 0x20], eax
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 0x38], rax
mov rax, qword [rsp + 0xc8]
mov qword [rdi + 0x40], rax
mov rax, qword [rsp + 0xd0]
mov qword [rdi + 0x48], rax
mov qword [rdi + 0x30], r12
mov qword [rdi + 0x58], r14
mov eax, dword [rsp + 0x34]
mov qword [rdi + 0x70], r15
mov r15, qword [rsp + 0xa8]
mov dword [rdi + 0x68], eax
mov rcx, r15
mov edx, dword [rbp + 0x54]
call fcn.14002dd60
test eax, eax
je 0x14002d5da
mov edx, dword [rbp + 0x54]
mov r9d, 4
mov r8d, 0x1000
mov qword [rsp + 0x20], r14
mov rcx, rsi
call rbx
mov r8d, dword [rbp + 0x54]
mov rdx, r13
mov rcx, rax
mov rbx, rax
call fcn.14021fa00
movsxd rax, dword [r13 + 0x3c]
mov r9, rdi
add rax, rbx
mov r8, rbp
mov qword [rdi], rax
mov rdx, r15
mov rcx, r13
mov qword [rax + 0x30], rsi
call fcn.14002dd90
test eax, eax
je 0x14002d5da
mov rax, qword [rdi]
mov rdx, qword [rax + 0x30]
sub rdx, qword [rbp + 0x30]
je 0x14002d580
mov rcx, rdi
call fcn.14002e210
mov dword [rdi + 0x24], eax
jmp 0x14002d587
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.14002e170
mov ecx, 0xe
call qword [0x1402598e8]
jmp 0x14002d5e2
mov r9, r14
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call r12
mov rcx, r15
jmp 0x14002d552
mov dword [rdi + 0x24], 1
mov rcx, rdi
call fcn.14002dbe0
test eax, eax
je 0x14002d5da
mov rcx, rdi
call fcn.14002dfe0
test eax, eax
je 0x14002d5da
mov rcx, rdi
call fcn.14002dec0
test eax, eax
je 0x14002d5da
mov rax, qword [rdi]
mov ecx, dword [rax + 0x28]
test ecx, ecx
je 0x14002d618
cmp dword [rdi + 0x20], 0
lea rax, [rsi + rcx]
je 0x14002d60f
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 1]
call rax
test eax, eax
jne 0x14002d603
mov ecx, 0x45a
call qword [0x1402598e8]
mov rcx, rdi
call fcn.14002d7c0
xor eax, eax
mov rsi, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
mov rbp, qword [rsp + 0xa0]
add rsp, 0x70
pop r15
pop r13
pop r12
pop rdi
pop rbx
ret
mov dword [rdi + 0x1c], 1
mov rax, rdi
jmp 0x14002d5e4
mov qword [rdi + 0x60], rax
mov rax, rdi
jmp 0x14002d5e4
mov qword [rdi + 0x60], 0
mov rax, rdi
jmp 0x14002d5e4