Function at 0x14004db70
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov byte [rsp + 0x18], r8b
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x170
movzx edi, r8b
mov r12, rcx
test rdx, rdx
je 0x14004e1ca
mov ecx, 0xffff
mov word [rsp + 0x1c8], cx
cmp rdx, rcx
jae 0x14004dbbd
mov word [rsp + 0x1c8], dx
jmp 0x14004dbea
cmp byte [rdx], 0x23
jne 0x14004dbea
lea rcx, [rdx + 1]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
lea ecx, [rax - 1]
cmp ecx, 0xfffd
ja 0x14004dbea
movzx ecx, ax
mov word [rsp + 0x1c8], cx
mov qword [rsp + 0x1b8], rcx
test r12, r12
je 0x14004e1ca
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x14004e1ca
movsxd rcx, dword [r12 + 0x3c]
cmp dword [r12 + rcx], 0x4550
lea r13, [r12 + rcx]
jne 0x14004e1ca
xor r10d, r10d
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x40], r10d
test ecx, ecx
jle 0x14004dc3d
cmp ecx, 0x10000000
jae 0x14004dc3d
lea r8, [r13 + 4]
lea rcx, [r13 + 0x18]
jmp 0x14004dc45
lea rcx, [r12 + 0x14]
mov r8, r12
movzx edx, word [rcx]
sub edx, 0x107
je 0x14004e1ca
sub edx, 4
je 0x14004dc71
cmp edx, 0x100
jne 0x14004e1ca
cmp dword [rcx + 0x6c], r10d
jbe 0x14004dcb9
lea rax, [rcx + 0x70]
jmp 0x14004dc7b
cmp dword [rcx + 0x5c], r10d
jbe 0x14004dcb9
lea rax, [rcx + 0x60]
cmp dword [rax], r10d
je 0x14004dcb9
cmp dword [rax + 4], r10d
je 0x14004dcb9
mov r9d, dword [rcx + 0x3c]
movzx edx, dil
mov qword [rsp + 0x30], rcx
mov rcx, r12
mov qword [rsp + 0x28], r8
lea r8, [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.14004e1f0
mov r10d, dword [rsp + 0x40]
mov r14, rax
mov dword [rsp + 0x50], r10d
jmp 0x14004dcbc
xor r14d, r14d
test r14, r14
je 0x14004e1ca
test r10d, r10d
je 0x14004e1ca
mov ebp, dword [r14 + 0x14]
lea rax, [r14 + 0x14]
mov qword [rsp + 0x68], rax
test ebp, ebp
je 0x14004e1ca
cmp r10d, 0x28
ja 0x14004dd0a
cmp ebp, dword [r14 + 0x18]
mov eax, ebp
cmovbe eax, dword [r14 + 0x18]
imul r10d, eax, 0xff
sub r10d, r14d
add r10d, dword [r14 + 0x24]
add r10d, r12d
mov dword [rsp + 0x50], r10d
mov r9d, dword [r14 + 0x20]
lea rsi, [r13 + 6]
mov r11d, dword [r14 + 0x1c]
mov ebx, dword [r14 + 0x24]
mov qword [rsp + 0x58], rsi
test dil, dil
je 0x14004dd3e
lea r8, [r12 + r9]
add r11, r12
mov qword [rsp + 0x40], r8
lea rdx, [r12 + rbx]
mov qword [rsp + 0x60], r11
jmp 0x14004dec1
movzx r10d, word [rsi]
lea rdi, [r13 + 0x14]
test r10d, r10d
je 0x14004dd84
movzx esi, word [rdi]
xor r8d, r8d
add rsi, 0x18
add rsi, r13
test r10d, r10d
je 0x14004dd80
lea rdx, [rsi + 0x10]
mov ecx, dword [rdx - 4]
cmp r9d, ecx
jb 0x14004dd74
add ecx, dword [rdx]
cmp r9d, ecx
jb 0x14004de00
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x14004dd61
lea rsi, [r13 + 6]
movzx r9d, word [rsi]
xor r8d, r8d
mov qword [rsp + 0x58], rsi
mov rax, rdi
mov qword [rsp + 0x40], r8
test r9d, r9d
je 0x14004ddd7
mov r15d, r8d
movzx r10d, word [rax]
xor r8d, r8d
add r10, 0x18
add r10, r13
test r9d, r9d
je 0x14004ddd2
lea rdx, [r10 + 0x10]
mov ecx, dword [rdx - 4]
cmp r11d, ecx
jb 0x14004ddc6
add ecx, dword [rdx]
cmp r11d, ecx
jb 0x14004de37
inc r8d
add rdx, 0x28
cmp r8d, r9d
jb 0x14004ddb7
mov r8, qword [rsp + 0x40]
movzx r9d, word [rsi]
xor r11d, r11d
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], rsi
test r9d, r9d
jne 0x14004de73
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x60], r11
jmp 0x14004deb2
lea rcx, [r8 + r8*4]
lea rdx, [rsi + rcx*8]
lea rsi, [r13 + 6]
test rdx, rdx
je 0x14004dd84
sub r9d, dword [rdx + 0xc]
mov r15d, dword [rdx + 0x14]
mov eax, r9d
movzx r9d, word [rsi]
add rax, r12
add r15, rax
mov rax, rdi
mov qword [rsp + 0x40], r15
jmp 0x14004dda0
lea rcx, [r8 + r8*4]
lea rdx, [r10 + rcx*8]
test rdx, rdx
je 0x14004ddd2
sub r11d, dword [rdx + 0xc]
movzx r10d, word [rdi]
movzx r9d, word [rsi]
add r10, 0x18
mov eax, r11d
add r10, r13
mov r11d, dword [rdx + 0x14]
add rax, r12
add r11, rax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x60], r11
xor r8d, r8d
jmp 0x14004de86
movzx r10d, word [rdi]
xor r8d, r8d
add r10, 0x18
add r10, r13
test r9d, r9d
je 0x14004dead
lea rdx, [r10 + 0x10]
nop word [rax + rax]
mov ecx, dword [rdx - 4]
cmp ebx, ecx
jb 0x14004dea1
add ecx, dword [rdx]
cmp ebx, ecx
jb 0x14004df6c
inc r8d
add rdx, 0x28
cmp r8d, r9d
jb 0x14004de90
mov r8, qword [rsp + 0x40]
xor edx, edx
mov qword [rsp + 0x58], rsi
movzx edi, byte [rsp + 0x1c0]
xor r15d, r15d
mov qword [rsp + 0x48], rdx
test ebp, ebp
je 0x14004e1ca
movzx ebp, word [rdx + r15*2]
mov r11d, dword [r11 + rbp*4]
test r11d, r11d
je 0x14004e133
mov r9d, dword [r8 + r15*4]
test dil, dil
je 0x14004e05f
lea rdi, [r12 + r11]
add r9, r12
mov r8, rdi
cmp rdi, r14
jbe 0x14004e0e8
mov eax, dword [rsp + 0x50]
add rax, r14
cmp rdi, rax
jae 0x14004e0e8
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x14004df20
inc ebx
cmp ebx, 0x100
jae 0x14004e133
mov r8d, ebx
lea rcx, [rsp + 0x70]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
xor eax, eax
test ebx, ebx
je 0x14004e12e
lea rcx, [rsp + 0x70]
cmp byte [rcx], 0x2e
lea edx, [rax + 1]
je 0x14004df95
inc rcx
mov eax, edx
cmp edx, ebx
jb 0x14004df56
jmp 0x14004e12e
lea rcx, [r8 + r8*4]
mov r8, qword [rsp + 0x40]
lea rdx, [r10 + rcx*8]
test rdx, rdx
je 0x14004deb2
sub ebx, dword [rdx + 0xc]
mov edx, dword [rdx + 0x14]
mov eax, ebx
add rax, r12
add rdx, rax
jmp 0x14004deb9
mov ebx, edx
mov byte [rsp + rax + 0x70], 0
add rbx, rdi
je 0x14004e12e
cmp byte [rbx], 0x23
jne 0x14004e010
lea rcx, [rbx + 1]
test rcx, rcx
je 0x14004e12e
movzx edi, word [rsp + 0x1c8]
mov eax, 0xffff
cmp di, ax
jae 0x14004e12e
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ebx, eax
lea ecx, [rbx - 1]
cmp ecx, 0xfffe
ja 0x14004e12e
cmp ebx, edi
jne 0x14004e12e
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, byte [rsp + 0x1c0]
mov rcx, rax
movzx edx, bx
call fcn.14004db70
jmp 0x14004e1cc
mov rax, qword [rsp + 0x1b8]
mov r8, rbx
sub r8, rax
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x14004e033
inc rax
test ecx, ecx
jne 0x14004e020
test edx, edx
jne 0x14004e12e
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, byte [rsp + 0x1c0]
mov rdx, rbx
mov rcx, rax
call fcn.14004db70
jmp 0x14004e1cc
movzx r10d, word [rsi]
lea rbx, [r13 + 0x14]
test r10d, r10d
je 0x14004e0a1
movzx edi, word [rbx]
xor r8d, r8d
add rdi, 0x18
add rdi, r13
test r10d, r10d
je 0x14004e0a1
lea rdx, [rdi + 0x10]
mov ecx, dword [rdx - 4]
cmp r9d, ecx
jb 0x14004e095
add ecx, dword [rdx]
cmp r9d, ecx
jb 0x14004e160
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x14004e082
movzx r10d, word [rsi]
xor r9d, r9d
mov edi, r9d
test r10d, r10d
je 0x14004e0e5
movzx ebx, word [rbx]
xor r8d, r8d
add rbx, 0x18
add rbx, r13
test r10d, r10d
je 0x14004e0e5
lea rdx, [rbx + 0x10]
mov ecx, dword [rdx - 4]
cmp r11d, ecx
jb 0x14004e0d9
add ecx, dword [rdx]
cmp r11d, ecx
jb 0x14004e19b
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x14004e0c6
xor r8d, r8d
mov rax, qword [rsp + 0x1b8]
mov ecx, 0xffff
cmp rax, rcx
jbe 0x14004e11b
sub r9, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r9]
sub edx, ecx
jne 0x14004e113
inc rax
test ecx, ecx
jne 0x14004e100
test edx, edx
je 0x14004e1c5
movzx eax, word [rsp + 0x1c8]
lea ecx, [rbp + 1]
cmp ecx, eax
je 0x14004e1c5
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x68]
inc r15d
cmp r15d, dword [rax]
jae 0x14004e1ca
mov rsi, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx edi, byte [rsp + 0x1c0]
jmp 0x14004ded1
lea rcx, [r8 + r8*4]
lea rdx, [rdi + rcx*8]
test rdx, rdx
je 0x14004e0a1
sub r9d, dword [rdx + 0xc]
movzx ebx, word [rbx]
movzx r10d, word [rsi]
add rbx, 0x18
mov eax, r9d
add rbx, r13
mov r9d, dword [rdx + 0x14]
add rax, r12
add r9, rax
mov rdi, r9
xor r8d, r8d
jmp 0x14004e0c2
lea rcx, [r8 + r8*4]
lea rdx, [rbx + rcx*8]
test rdx, rdx
je 0x14004e0e5
sub r11d, dword [rdx + 0xc]
mov r9, rdi
mov r8d, dword [rdx + 0x14]
mov eax, r11d
add rax, r12
add r8, rax
jmp 0x14004e0e8
mov rax, r8
jmp 0x14004e1cc
xor eax, eax
mov rbx, qword [rsp + 0x1b0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret