Function at 0x180029ba0
Capabilities:
Parse pe header

Disassembly:
push rbp
push rbx
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0xd8]
sub rsp, 0x1d8
mov r15, r8
mov r12, rdx
mov r14, rcx
test rdx, rdx
je 0x180029f61
xorps xmm0, xmm0
lea rcx, [rbp - 0x40]
xor edx, edx
mov r8d, 0x108
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
call fcn.18010bd80
xor ebx, ebx
mov qword [rsp + 0x40], 0x33
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x80]
mov qword [rsp + 0x58], rax
lea r8, [rsp + 0x40]
lea rax, [rbp + 0x118]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x30], rax
lea r9d, [rbx + 0x28]
mov dword [rsp + 0x28], ebx
mov edx, 0x80862007
mov rcx, r14
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], 0x40
mov dword [rbp + 0x118], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180029f61
mov eax, 0x5a4d
cmp word [rbp - 0x80], ax
jne 0x180029f61
movsxd rax, dword [rbp - 0x44]
add rax, r12
je 0x180029f61
mov qword [rsp + 0x50], rax
lea r9d, [rbx + 0x28]
mov qword [rsp + 0x38], rbx
lea rax, [rbp - 0x40]
mov qword [rsp + 0x58], rax
lea r8, [rsp + 0x40]
lea rax, [rbp + 0x118]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x30], rax
mov edx, 0x80862007
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x40], 0x33
mov qword [rsp + 0x60], 0x108
mov dword [rbp + 0x118], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180029f61
cmp dword [rbp - 0x40], 0x4550
jne 0x180029f61
mov edi, dword [rbp + 0x48]
test edi, edi
je 0x180029f61
mov eax, dword [rbp + 0x4c]
test eax, eax
je 0x180029f61
mov qword [rsp + 0x210], rsi
lea r9d, [rbx + 4]
mov qword [rsp + 0x1d0], r13
mov r8d, 0x3000
mov edx, eax
mov qword [rsp + 0x78], rax
xor ecx, ecx
mov r13d, eax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
mov qword [rsp + 0x70], rdi
lea rax, [rdi + r12]
test rsi, rsi
je 0x180029e90
test rax, rax
je 0x180029e90
test r13, r13
je 0x180029e90
mov qword [rsp + 0x38], rbx
lea r9d, [rbx + 0x28]
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x40]
lea rax, [rbp + 0x118]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x30], rax
mov edx, 0x80862007
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x40], 0x33
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], r13
mov dword [rbp + 0x118], ebx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180029e90
mov ecx, dword [rsi + 0x24]
mov r13, rsi
mov eax, dword [rsi + 0x20]
sub r13, rdi
add rcx, r13
add rax, r13
mov qword [rbp + 0x128], rcx
mov edi, ebx
mov ecx, dword [rsi + 0x1c]
add rcx, r13
mov qword [rbp + 0x118], rax
mov qword [rsp + 0x68], rcx
cmp dword [rsi + 0x18], ebx
jbe 0x180029e90
nop dword [rax]
mov r14d, edi
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov r8, 0xffffffffffffffff
mov qword [rsp + 0x58], rbx
mov edx, dword [rax + r14*4]
add rdx, r13
inc r8
cmp byte [rdx + r8], bl
jne 0x180029e03
lea rcx, [rsp + 0x40]
call fcn.1800091d0
cmp qword [r15 + 0x18], 0xf
mov rdx, r15
jbe 0x180029e23
mov rdx, qword [r15]
cmp qword [rsp + 0x58], 0xf
lea rcx, [rsp + 0x40]
cmova rcx, qword [rsp + 0x40]
call fcn.1800e9c34
test eax, eax
je 0x180029ec4
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x180029e7e
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029e79
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180029f74
call fcn.1800d9c1c
mov rax, qword [rbp + 0x118]
inc edi
cmp edi, dword [rsi + 0x18]
jb 0x180029de0
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
mov rsi, qword [rsp + 0x210]
mov r13, qword [rsp + 0x1d0]
add rsp, 0x1d8
pop r15
pop r14
pop r12
pop rdi
pop rbx
pop rbp
ret
mov rcx, qword [rsp + 0x68]
mov rax, qword [rbp + 0x128]
movzx eax, word [rax + r14*2]
mov edi, dword [rcx + rax*4]
mov rcx, qword [rsp + 0x70]
add rdi, r12
lea rax, [rcx + r12]
cmp rdi, rax
jb 0x180029f0c
mov rax, qword [rsp + 0x78]
add rax, rcx
add rax, r12
cmp rdi, rax
ja 0x180029f0c
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x180029f20
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rbx, rdi
mov rdx, qword [rsp + 0x58]
cmp rdx, 0xf
jbe 0x180029f59
mov rcx, qword [rsp + 0x40]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029f54
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180029f74
call fcn.1800d9c1c
mov rax, rbx
jmp 0x180029ea3
xor eax, eax
add rsp, 0x1d8
pop r15
pop r14
pop r12
pop rdi
pop rbx
pop rbp
ret
call fcn.1800e5f80
int3