Function at 0x18002d538
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x150
mov rax, qword [0x18006a040]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x28], rcx
mov rsi, r8
mov rdi, rdx
test r8, r8
je 0x18002d7c5
mov ebx, 0xffff
movzx r12d, bx
cmp r8, rbx
jae 0x18002d589
movzx r12d, r8w
jmp 0x18002d5aa
cmp byte [r8], 0x23
jne 0x18002d5aa
lea rcx, [r8 + 1]
call fcn.180043ea0
lea ecx, [rax - 1]
cmp ecx, 0xfffd
ja 0x18002d5aa
movzx r12d, ax
mov esi, r12d
test rdi, rdi
je 0x18002d7c5
mov eax, 0x5a4d
cmp word [rdi], ax
jne 0x18002d7c5
movsxd rax, dword [rdi + 0x3c]
cmp dword [rax + rdi], 0x4550
jne 0x18002d7c5
and dword [rsp + 0x20], 0
lea r9, [rsp + 0x20]
mov rcx, rdi
call fcn.18002d210
mov rbp, rax
test rax, rax
je 0x18002d7c5
mov r14d, dword [rsp + 0x20]
test r14d, r14d
je 0x18002d7c5
mov ecx, dword [rax + 0x14]
test ecx, ecx
je 0x18002d7c5
cmp r14d, 0x28
ja 0x18002d628
mov eax, dword [rax + 0x18]
cmp ecx, eax
cmova eax, ecx
imul r14d, eax, 0xff
add r14d, dword [rbp + 0x24]
sub r14d, ebp
add r14d, edi
mov r8d, dword [rbp + 0x20]
xor r13d, r13d
mov edx, dword [rbp + 0x1c]
add r8, rdi
mov eax, dword [rbp + 0x24]
add rdx, rdi
add rax, rdi
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
test ecx, ecx
je 0x18002d7c5
movzx r9d, word [rax + r13*2]
cmp dword [rdx + r9*4], 0
je 0x18002d6d2
mov r8d, dword [r8 + r13*4]
mov r15d, dword [rdx + r9*4]
add r8, rdi
add r15, rdi
cmp r15, rbp
jbe 0x18002d78e
mov eax, r14d
add rax, rbp
cmp r15, rax
jae 0x18002d78e
or rbx, 0xffffffffffffffff
inc rbx
cmp byte [r15 + rbx], 0
jne 0x18002d68b
inc ebx
cmp ebx, 0x100
jae 0x18002d6c8
mov r8d, ebx
lea rcx, [rsp + 0x40]
mov rdx, r15
call fcn.180053e30
xor eax, eax
test ebx, ebx
je 0x18002d6c8
lea rcx, [rsp + 0x40]
cmp byte [rcx], 0x2e
je 0x18002d6ee
inc eax
inc rcx
cmp eax, ebx
jb 0x18002d6ba
mov ebx, 0xffff
mov r8, qword [rsp + 0x20]
inc r13d
cmp r13d, dword [rbp + 0x14]
jae 0x18002d7c5
mov rdx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
jmp 0x18002d655
cmp eax, 0x100
jae 0x18002d7f2
lea ebx, [rax + 1]
mov byte [rsp + rax + 0x40], 0
add rbx, r15
je 0x18002d6c8
cmp byte [rbx], 0x23
jne 0x18002d74a
lea rcx, [rbx + 1]
mov ebx, 0xffff
test rcx, rcx
je 0x18002d6cd
cmp r12w, bx
jae 0x18002d6cd
call fcn.180043ea0
mov ebx, eax
lea ecx, [rbx - 1]
cmp ecx, 0xfffe
ja 0x18002d6c8
movzx ecx, r12w
cmp ebx, ecx
jne 0x18002d6c8
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, bx
jmp 0x18002d77c
mov r8, rbx
mov rax, rsi
sub r8, rsi
movzx ecx, byte [rax]
movzx edx, byte [rax + r8]
sub ecx, edx
jne 0x18002d766
inc rax
test edx, edx
jne 0x18002d753
test ecx, ecx
jne 0x18002d6c8
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r8, rbx
mov rcx, qword [rsp + 0x28]
mov r9b, 1
mov rdx, rax
call fcn.18002d538
jmp 0x18002d7c7
cmp rsi, rbx
jbe 0x18002d7b0
mov rax, rsi
sub r8, rsi
movzx ecx, byte [rax]
movzx edx, byte [rax + r8]
sub ecx, edx
jne 0x18002d7ac
inc rax
test edx, edx
jne 0x18002d799
test ecx, ecx
je 0x18002d7c0
lea ecx, [r9 + 1]
movzx eax, r12w
cmp ecx, eax
jne 0x18002d6cd
mov rax, r15
jmp 0x18002d7c7
xor eax, eax
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.180032420
mov rbx, qword [rsp + 0x1a8]
add rsp, 0x150
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180032a0c
int3