Function at 0x140024390
Capabilities:
Enumerate pe sections

Disassembly:
push rbx
push rsi
push r14
sub rsp, 0x40
mov dword [rsp + 0x70], 0x21585055
mov r14d, r8d
mov rbx, rcx
test rdx, rdx
je 0x1400243d5
test r8d, r8d
jle 0x1400243d5
lea r9d, [r8 - 4]
xor esi, esi
mov rcx, rdx
test r9d, r9d
js 0x1400243d5
mov eax, dword [rsp + 0x70]
cmp byte [rcx], al
jne 0x1400243cb
cmp dword [rcx], eax
je 0x1400243e0
inc esi
inc rcx
cmp esi, r9d
jle 0x1400243c3
xor al, al
add rsp, 0x40
pop r14
pop rsi
pop rbx
ret
test esi, esi
js 0x1400243d5
lea eax, [rsi + 8]
test eax, eax
jle 0x14002471f
cmp eax, r14d
jg 0x14002471f
mov rax, qword [0x140209d58]
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x38], r13
movsxd rdi, esi
add rdi, rdx
mov qword [rsp + 0x30], r15
movzx ebp, byte [rdi + 4]
mov dword [rbx], ebp
movzx r15d, byte [rdi + 5]
mov dword [rbx + 4], r15d
movzx r12d, byte [rdi + 6]
mov dword [rbx + 8], r12d
movzx r13d, byte [rdi + 7]
mov dword [rbx + 0xc], r13d
mov dword [rbx + 0x28], 0
cmp dword [rax + 0x50], 0
je 0x140024475
mov ecx, 2
call fcn.14009d80c
mov rcx, rax
mov dword [rsp + 0x28], r13d
mov r9d, r15d
mov dword [rsp + 0x20], r12d
mov r8d, ebp
lea rdx, str.__fillPackHeader__version_d__format_d__method_d__level_d_n
call fcn.140014990
mov ecx, dword [rbx + 4]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x78]
test ecx, ecx
js 0x140024760
mov eax, dword [rbx]
test eax, eax
js 0x140024760
mov edx, 0x1c
cmp eax, 3
jg 0x1400244a8
lea ebp, [rdx - 4]
jmp 0x1400244ef
cmp eax, 9
lea eax, [rcx - 1]
jg 0x1400244ce
cmp eax, 1
jbe 0x1400244c7
lea eax, [rcx - 3]
mov ebp, 0x19
test eax, 0xfffffffb
cmovne ebp, edx
jmp 0x1400244ef
mov ebp, 0x14
jmp 0x1400244ef
cmp eax, 1
jbe 0x1400244ea
lea eax, [rcx - 3]
mov ebp, 0x1b
test eax, 0xfffffffb
mov eax, 0x20
cmovne ebp, eax
jmp 0x1400244ef
mov ebp, 0x16
lea eax, [rsi + rbp]
test eax, eax
jle 0x140024753
cmp eax, r14d
jg 0x140024753
cmp ecx, 0x80
jge 0x1400245ba
mov eax, dword [rdi + 8]
mov dword [rbx + 0x18], eax
mov eax, dword [rdi + 0xc]
mov ecx, dword [rbx + 4]
mov dword [rbx + 0x1c], eax
lea eax, [rcx - 1]
cmp eax, 1
jbe 0x14002459c
lea eax, [rcx - 3]
test eax, 0xfffffffb
je 0x140024547
mov eax, dword [rdi + 0x10]
mov dword [rbx + 0x10], eax
mov eax, dword [rdi + 0x14]
mov dword [rbx + 0x14], eax
mov eax, dword [rdi + 0x18]
mov dword [rbx + 0x20], eax
jmp 0x140024664
movzx eax, byte [rdi + 0x11]
mov edx, 0x19
movzx ecx, byte [rdi + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x10]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x10], ecx
movzx eax, byte [rdi + 0x14]
movzx ecx, byte [rdi + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x14], ecx
movzx eax, byte [rdi + 0x17]
movzx ecx, byte [rdi + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x16]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x20], ecx
jmp 0x14002467c
movzx eax, word [rdi + 0x10]
mov edx, 0x14
mov dword [rbx + 0x10], eax
movzx eax, word [rdi + 0x12]
mov dword [rbx + 0x14], eax
mov eax, dword [rbx + 0x10]
mov dword [rbx + 0x20], eax
jmp 0x14002467c
movzx eax, byte [rdi + 9]
movzx ecx, byte [rdi + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0xb]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x10], ecx
movzx eax, byte [rdi + 0xd]
movzx ecx, byte [rdi + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0xf]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x14], ecx
movzx eax, byte [rdi + 0x11]
movzx ecx, byte [rdi + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x13]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x18], ecx
movzx eax, byte [rdi + 0x15]
movzx ecx, byte [rdi + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x17]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x1c], ecx
movzx eax, byte [rdi + 0x18]
movzx ecx, byte [rdi + 0x19]
shl eax, 8
or ecx, eax
movzx eax, byte [rdi + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 0x1b]
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x20], ecx
movzx eax, byte [rdi + 0x1d]
mov dword [rbx + 0x28], eax
movzx eax, byte [rdi + 0x1e]
test al, al
je 0x140024677
inc eax
jmp 0x140024679
xor eax, eax
mov dword [rbx + 0x2c], eax
mov ecx, dword [rbx]
cmp ecx, 0xa
jl 0x14002469c
movzx eax, byte [rdx + rdi]
mov dword [rbx + 0x24], eax
and dword [rbx + 0xc], 0xf
cmp ecx, 0xff
je 0x14002472c
jmp 0x1400246d5
mov eax, dword [rbx + 0xc]
test al, al
js 0x1400246ac
mov dword [rbx + 0x24], 0
jmp 0x1400246cc
and eax, 0x7f
mov dword [rbx + 0xc], eax
mov eax, dword [rbx + 4]
dec eax
cmp eax, 1
jbe 0x1400246c5
mov dword [rbx + 0x24], 0x26
jmp 0x1400246cc
mov dword [rbx + 0x24], 6
and dword [rbx + 0xc], 0xf
cmp ecx, 9
jle 0x1400246e8
lea edx, [rbp - 1]
mov rcx, rdi
call fcn.140023f90
mov ecx, ebp
cmp byte [rcx + rdi - 1], al
jne 0x140024739
mov eax, dword [rbx + 0x14]
cmp eax, 2
jb 0x140024746
mov ecx, dword [rbx + 0x10]
cmp ecx, 2
jb 0x140024746
cmp eax, 0x30000000
ja 0x140024746
cmp ecx, 0x30000000
ja 0x140024746
mov rbp, qword [rsp + 0x60]
mov al, 1
mov rdi, qword [rsp + 0x68]
mov dword [rbx + 0x3c], esi
add rsp, 0x40
pop r14
pop rsi
pop rbx
ret
lea rcx, str.header_corrupted_1
call fcn.14000d660
int3
lea rcx, str.cannot_unpack_UPX____
call fcn.14000d660
int3
lea rcx, str.header_corrupted_3
call fcn.14000d660
int3
lea rcx, str.header_corrupted_4
call fcn.14000d660
int3
lea rcx, str.header_corrupted_2
call fcn.14000d660
int3
lea rcx, str.getPackHeaderSize
call fcn.14000d730
int3