Function at 0x140054140
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 0x14005479a
mov ecx, 0xffff
mov word [rsp + 0x1c8], cx
cmp rdx, rcx
jae 0x14005418d
mov word [rsp + 0x1c8], dx
jmp 0x1400541ba
cmp byte [rdx], 0x23
jne 0x1400541ba
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 0x1400541ba
movzx ecx, ax
mov word [rsp + 0x1c8], cx
mov qword [rsp + 0x1b8], rcx
test r12, r12
je 0x14005479a
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x14005479a
movsxd rcx, dword [r12 + 0x3c]
cmp dword [r12 + rcx], 0x4550
lea r13, [r12 + rcx]
jne 0x14005479a
xor r10d, r10d
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x40], r10d
test ecx, ecx
jle 0x14005420d
cmp ecx, 0x10000000
jae 0x14005420d
lea r8, [r13 + 4]
lea rcx, [r13 + 0x18]
jmp 0x140054215
lea rcx, [r12 + 0x14]
mov r8, r12
movzx edx, word [rcx]
sub edx, 0x107
je 0x14005479a
sub edx, 4
je 0x140054241
cmp edx, 0x100
jne 0x14005479a
cmp dword [rcx + 0x6c], r10d
jbe 0x140054289
lea rax, [rcx + 0x70]
jmp 0x14005424b
cmp dword [rcx + 0x5c], r10d
jbe 0x140054289
lea rax, [rcx + 0x60]
cmp dword [rax], r10d
je 0x140054289
cmp dword [rax + 4], r10d
je 0x140054289
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.1400547c0
mov r10d, dword [rsp + 0x40]
mov r14, rax
mov dword [rsp + 0x50], r10d
jmp 0x14005428c
xor r14d, r14d
test r14, r14
je 0x14005479a
test r10d, r10d
je 0x14005479a
mov ebp, dword [r14 + 0x14]
lea rax, [r14 + 0x14]
mov qword [rsp + 0x68], rax
test ebp, ebp
je 0x14005479a
cmp r10d, 0x28
ja 0x1400542da
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 0x14005430e
lea r8, [r12 + r9]
add r11, r12
mov qword [rsp + 0x40], r8
lea rdx, [r12 + rbx]
mov qword [rsp + 0x60], r11
jmp 0x140054491
movzx r10d, word [rsi]
lea rdi, [r13 + 0x14]
test r10d, r10d
je 0x140054354
movzx esi, word [rdi]
xor r8d, r8d
add rsi, 0x18
add rsi, r13
test r10d, r10d
je 0x140054350
lea rdx, [rsi + 0x10]
mov ecx, dword [rdx - 4]
cmp r9d, ecx
jb 0x140054344
add ecx, dword [rdx]
cmp r9d, ecx
jb 0x1400543d0
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x140054331
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 0x1400543a7
mov r15d, r8d
movzx r10d, word [rax]
xor r8d, r8d
add r10, 0x18
add r10, r13
test r9d, r9d
je 0x1400543a2
lea rdx, [r10 + 0x10]
mov ecx, dword [rdx - 4]
cmp r11d, ecx
jb 0x140054396
add ecx, dword [rdx]
cmp r11d, ecx
jb 0x140054407
inc r8d
add rdx, 0x28
cmp r8d, r9d
jb 0x140054387
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 0x140054443
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x60], r11
jmp 0x140054482
lea rcx, [r8 + r8*4]
lea rdx, [rsi + rcx*8]
lea rsi, [r13 + 6]
test rdx, rdx
je 0x140054354
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 0x140054370
lea rcx, [r8 + r8*4]
lea rdx, [r10 + rcx*8]
test rdx, rdx
je 0x1400543a2
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 0x140054456
movzx r10d, word [rdi]
xor r8d, r8d
add r10, 0x18
add r10, r13
test r9d, r9d
je 0x14005447d
lea rdx, [r10 + 0x10]
nop word [rax + rax]
mov ecx, dword [rdx - 4]
cmp ebx, ecx
jb 0x140054471
add ecx, dword [rdx]
cmp ebx, ecx
jb 0x14005453c
inc r8d
add rdx, 0x28
cmp r8d, r9d
jb 0x140054460
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 0x14005479a
movzx ebp, word [rdx + r15*2]
mov r11d, dword [r11 + rbp*4]
test r11d, r11d
je 0x140054703
mov r9d, dword [r8 + r15*4]
test dil, dil
je 0x14005462f
lea rdi, [r12 + r11]
add r9, r12
mov r8, rdi
cmp rdi, r14
jbe 0x1400546b8
mov eax, dword [rsp + 0x50]
add rax, r14
cmp rdi, rax
jae 0x1400546b8
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x1400544f0
inc ebx
cmp ebx, 0x100
jae 0x140054703
mov r8d, ebx
lea rcx, [rsp + 0x70]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
xor eax, eax
test ebx, ebx
je 0x1400546fe
lea rcx, [rsp + 0x70]
cmp byte [rcx], 0x2e
lea edx, [rax + 1]
je 0x140054565
inc rcx
mov eax, edx
cmp edx, ebx
jb 0x140054526
jmp 0x1400546fe
lea rcx, [r8 + r8*4]
mov r8, qword [rsp + 0x40]
lea rdx, [r10 + rcx*8]
test rdx, rdx
je 0x140054482
sub ebx, dword [rdx + 0xc]
mov edx, dword [rdx + 0x14]
mov eax, ebx
add rax, r12
add rdx, rax
jmp 0x140054489
mov ebx, edx
mov byte [rsp + rax + 0x70], 0
add rbx, rdi
je 0x1400546fe
cmp byte [rbx], 0x23
jne 0x1400545e0
lea rcx, [rbx + 1]
test rcx, rcx
je 0x1400546fe
movzx edi, word [rsp + 0x1c8]
mov eax, 0xffff
cmp di, ax
jae 0x1400546fe
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 0x1400546fe
cmp ebx, edi
jne 0x1400546fe
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, byte [rsp + 0x1c0]
mov rcx, rax
movzx edx, bx
call fcn.140054140
jmp 0x14005479c
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 0x140054603
inc rax
test ecx, ecx
jne 0x1400545f0
test edx, edx
jne 0x1400546fe
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, byte [rsp + 0x1c0]
mov rdx, rbx
mov rcx, rax
call fcn.140054140
jmp 0x14005479c
movzx r10d, word [rsi]
lea rbx, [r13 + 0x14]
test r10d, r10d
je 0x140054671
movzx edi, word [rbx]
xor r8d, r8d
add rdi, 0x18
add rdi, r13
test r10d, r10d
je 0x140054671
lea rdx, [rdi + 0x10]
mov ecx, dword [rdx - 4]
cmp r9d, ecx
jb 0x140054665
add ecx, dword [rdx]
cmp r9d, ecx
jb 0x140054730
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x140054652
movzx r10d, word [rsi]
xor r9d, r9d
mov edi, r9d
test r10d, r10d
je 0x1400546b5
movzx ebx, word [rbx]
xor r8d, r8d
add rbx, 0x18
add rbx, r13
test r10d, r10d
je 0x1400546b5
lea rdx, [rbx + 0x10]
mov ecx, dword [rdx - 4]
cmp r11d, ecx
jb 0x1400546a9
add ecx, dword [rdx]
cmp r11d, ecx
jb 0x14005476b
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x140054696
xor r8d, r8d
mov rax, qword [rsp + 0x1b8]
mov ecx, 0xffff
cmp rax, rcx
jbe 0x1400546eb
sub r9, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r9]
sub edx, ecx
jne 0x1400546e3
inc rax
test ecx, ecx
jne 0x1400546d0
test edx, edx
je 0x140054795
movzx eax, word [rsp + 0x1c8]
lea ecx, [rbp + 1]
cmp ecx, eax
je 0x140054795
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x68]
inc r15d
cmp r15d, dword [rax]
jae 0x14005479a
mov rsi, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx edi, byte [rsp + 0x1c0]
jmp 0x1400544a1
lea rcx, [r8 + r8*4]
lea rdx, [rdi + rcx*8]
test rdx, rdx
je 0x140054671
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 0x140054692
lea rcx, [r8 + r8*4]
lea rdx, [rbx + rcx*8]
test rdx, rdx
je 0x1400546b5
sub r11d, dword [rdx + 0xc]
mov r9, rdi
mov r8d, dword [rdx + 0x14]
mov eax, r11d
add rax, r12
add r8, rax
jmp 0x1400546b8
mov rax, r8
jmp 0x14005479c
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