Function at 0x140054250
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 0x1400548aa
mov ecx, 0xffff
mov word [rsp + 0x1c8], cx
cmp rdx, rcx
jae 0x14005429d
mov word [rsp + 0x1c8], dx
jmp 0x1400542ca
cmp byte [rdx], 0x23
jne 0x1400542ca
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 0x1400542ca
movzx ecx, ax
mov word [rsp + 0x1c8], cx
mov qword [rsp + 0x1b8], rcx
test r12, r12
je 0x1400548aa
mov eax, 0x5a4d
cmp word [r12], ax
jne 0x1400548aa
movsxd rcx, dword [r12 + 0x3c]
cmp dword [r12 + rcx], 0x4550
lea r13, [r12 + rcx]
jne 0x1400548aa
xor r10d, r10d
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x40], r10d
test ecx, ecx
jle 0x14005431d
cmp ecx, 0x10000000
jae 0x14005431d
lea r8, [r13 + 4]
lea rcx, [r13 + 0x18]
jmp 0x140054325
lea rcx, [r12 + 0x14]
mov r8, r12
movzx edx, word [rcx]
sub edx, 0x107
je 0x1400548aa
sub edx, 4
je 0x140054351
cmp edx, 0x100
jne 0x1400548aa
cmp dword [rcx + 0x6c], r10d
jbe 0x140054399
lea rax, [rcx + 0x70]
jmp 0x14005435b
cmp dword [rcx + 0x5c], r10d
jbe 0x140054399
lea rax, [rcx + 0x60]
cmp dword [rax], r10d
je 0x140054399
cmp dword [rax + 4], r10d
je 0x140054399
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.1400548d0
mov r10d, dword [rsp + 0x40]
mov r14, rax
mov dword [rsp + 0x50], r10d
jmp 0x14005439c
xor r14d, r14d
test r14, r14
je 0x1400548aa
test r10d, r10d
je 0x1400548aa
mov ebp, dword [r14 + 0x14]
lea rax, [r14 + 0x14]
mov qword [rsp + 0x68], rax
test ebp, ebp
je 0x1400548aa
cmp r10d, 0x28
ja 0x1400543ea
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 0x14005441e
lea r8, [r12 + r9]
add r11, r12
mov qword [rsp + 0x40], r8
lea rdx, [r12 + rbx]
mov qword [rsp + 0x60], r11
jmp 0x1400545a1
movzx r10d, word [rsi]
lea rdi, [r13 + 0x14]
test r10d, r10d
je 0x140054464
movzx esi, word [rdi]
xor r8d, r8d
add rsi, 0x18
add rsi, r13
test r10d, r10d
je 0x140054460
lea rdx, [rsi + 0x10]
mov ecx, dword [rdx - 4]
cmp r9d, ecx
jb 0x140054454
add ecx, dword [rdx]
cmp r9d, ecx
jb 0x1400544e0
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x140054441
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 0x1400544b7
mov r15d, r8d
movzx r10d, word [rax]
xor r8d, r8d
add r10, 0x18
add r10, r13
test r9d, r9d
je 0x1400544b2
lea rdx, [r10 + 0x10]
mov ecx, dword [rdx - 4]
cmp r11d, ecx
jb 0x1400544a6
add ecx, dword [rdx]
cmp r11d, ecx
jb 0x140054517
inc r8d
add rdx, 0x28
cmp r8d, r9d
jb 0x140054497
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 0x140054553
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x60], r11
jmp 0x140054592
lea rcx, [r8 + r8*4]
lea rdx, [rsi + rcx*8]
lea rsi, [r13 + 6]
test rdx, rdx
je 0x140054464
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 0x140054480
lea rcx, [r8 + r8*4]
lea rdx, [r10 + rcx*8]
test rdx, rdx
je 0x1400544b2
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 0x140054566
movzx r10d, word [rdi]
xor r8d, r8d
add r10, 0x18
add r10, r13
test r9d, r9d
je 0x14005458d
lea rdx, [r10 + 0x10]
nop word [rax + rax]
mov ecx, dword [rdx - 4]
cmp ebx, ecx
jb 0x140054581
add ecx, dword [rdx]
cmp ebx, ecx
jb 0x14005464c
inc r8d
add rdx, 0x28
cmp r8d, r9d
jb 0x140054570
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 0x1400548aa
movzx ebp, word [rdx + r15*2]
mov r11d, dword [r11 + rbp*4]
test r11d, r11d
je 0x140054813
mov r9d, dword [r8 + r15*4]
test dil, dil
je 0x14005473f
lea rdi, [r12 + r11]
add r9, r12
mov r8, rdi
cmp rdi, r14
jbe 0x1400547c8
mov eax, dword [rsp + 0x50]
add rax, r14
cmp rdi, rax
jae 0x1400547c8
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rdi + rbx], 0
jne 0x140054600
inc ebx
cmp ebx, 0x100
jae 0x140054813
mov r8d, ebx
lea rcx, [rsp + 0x70]
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
xor eax, eax
test ebx, ebx
je 0x14005480e
lea rcx, [rsp + 0x70]
cmp byte [rcx], 0x2e
lea edx, [rax + 1]
je 0x140054675
inc rcx
mov eax, edx
cmp edx, ebx
jb 0x140054636
jmp 0x14005480e
lea rcx, [r8 + r8*4]
mov r8, qword [rsp + 0x40]
lea rdx, [r10 + rcx*8]
test rdx, rdx
je 0x140054592
sub ebx, dword [rdx + 0xc]
mov edx, dword [rdx + 0x14]
mov eax, ebx
add rax, r12
add rdx, rax
jmp 0x140054599
mov ebx, edx
mov byte [rsp + rax + 0x70], 0
add rbx, rdi
je 0x14005480e
cmp byte [rbx], 0x23
jne 0x1400546f0
lea rcx, [rbx + 1]
test rcx, rcx
je 0x14005480e
movzx edi, word [rsp + 0x1c8]
mov eax, 0xffff
cmp di, ax
jae 0x14005480e
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 0x14005480e
cmp ebx, edi
jne 0x14005480e
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, byte [rsp + 0x1c0]
mov rcx, rax
movzx edx, bx
call fcn.140054250
jmp 0x1400548ac
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 0x140054713
inc rax
test ecx, ecx
jne 0x140054700
test edx, edx
jne 0x14005480e
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
movzx r8d, byte [rsp + 0x1c0]
mov rdx, rbx
mov rcx, rax
call fcn.140054250
jmp 0x1400548ac
movzx r10d, word [rsi]
lea rbx, [r13 + 0x14]
test r10d, r10d
je 0x140054781
movzx edi, word [rbx]
xor r8d, r8d
add rdi, 0x18
add rdi, r13
test r10d, r10d
je 0x140054781
lea rdx, [rdi + 0x10]
mov ecx, dword [rdx - 4]
cmp r9d, ecx
jb 0x140054775
add ecx, dword [rdx]
cmp r9d, ecx
jb 0x140054840
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x140054762
movzx r10d, word [rsi]
xor r9d, r9d
mov edi, r9d
test r10d, r10d
je 0x1400547c5
movzx ebx, word [rbx]
xor r8d, r8d
add rbx, 0x18
add rbx, r13
test r10d, r10d
je 0x1400547c5
lea rdx, [rbx + 0x10]
mov ecx, dword [rdx - 4]
cmp r11d, ecx
jb 0x1400547b9
add ecx, dword [rdx]
cmp r11d, ecx
jb 0x14005487b
inc r8d
add rdx, 0x28
cmp r8d, r10d
jb 0x1400547a6
xor r8d, r8d
mov rax, qword [rsp + 0x1b8]
mov ecx, 0xffff
cmp rax, rcx
jbe 0x1400547fb
sub r9, rax
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r9]
sub edx, ecx
jne 0x1400547f3
inc rax
test ecx, ecx
jne 0x1400547e0
test edx, edx
je 0x1400548a5
movzx eax, word [rsp + 0x1c8]
lea ecx, [rbp + 1]
cmp ecx, eax
je 0x1400548a5
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x68]
inc r15d
cmp r15d, dword [rax]
jae 0x1400548aa
mov rsi, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
mov r8, qword [rsp + 0x40]
movzx edi, byte [rsp + 0x1c0]
jmp 0x1400545b1
lea rcx, [r8 + r8*4]
lea rdx, [rdi + rcx*8]
test rdx, rdx
je 0x140054781
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 0x1400547a2
lea rcx, [r8 + r8*4]
lea rdx, [rbx + rcx*8]
test rdx, rdx
je 0x1400547c5
sub r11d, dword [rdx + 0xc]
mov r9, rdi
mov r8d, dword [rdx + 0x14]
mov eax, r11d
add rax, r12
add r8, rax
jmp 0x1400547c8
mov rax, r8
jmp 0x1400548ac
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