Function at 0x140a50e90
Capabilities:
Enumerate pe sections

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rdi
push r13
sub rsp, 0x80
mov eax, dword [rcx + 0x10]
xor r10d, r10d
test byte [rcx + 0xf8], 2
mov r9d, r8d
mov rdi, rdx
mov dword [rsp + 0x40], eax
mov rbx, rcx
mov dword [rsp + 0x30], r10d
mov r13d, r10d
je 0x140a50ee9
cmp qword [rcx + 0x108], r10
je 0x140a50ee9
lea r8, [0x140a8c91a]
mov edx, 2
call fcn.140a50740
mov r9d, dword [rsp + 0xb0]
xor r10d, r10d
test rdi, rdi
je 0x140a516d7
cmp r9d, 0x18
jl 0x140a516d7
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r15
mov eax, dword [rbx]
mov ecx, 0x100
movzx edx, byte [rdi + 7]
sub r9d, 0x18
movzx r15d, byte [rdi + 0xb]
movzx esi, byte [rdi + 0xf]
movzx r12d, byte [rdi + 0x13]
movzx r8d, byte [rdi + 0x17]
movzx ebp, byte [rdi + 4]
mov dword [rsp + 0x3c], eax
movzx eax, byte [rdi + 5]
mov byte [rsp + 0xa0], al
movzx eax, byte [rdi + 6]
shl r15d, 8
shl esi, 8
shl r12d, 8
shl r8d, 8
movzx ecx, cx
imul edx, ecx
mov dword [rsp + 0xb0], r9d
add dx, ax
movzx eax, byte [rdi + 0xa]
add r15d, eax
mov dword [rsp + 0x34], edx
movzx eax, byte [rdi + 9]
shl r15d, 8
add r15d, eax
movzx eax, byte [rdi + 8]
shl r15d, 8
add r15d, eax
movzx eax, byte [rdi + 0xe]
add esi, eax
movzx eax, byte [rdi + 0xd]
shl esi, 8
add esi, eax
movzx eax, byte [rdi + 0xc]
shl esi, 8
add esi, eax
movzx eax, byte [rdi + 0x12]
add r12d, eax
movzx eax, byte [rdi + 0x11]
shl r12d, 8
add r12d, eax
movzx eax, byte [rdi + 0x10]
shl r12d, 8
add r12d, eax
movzx eax, byte [rdi + 0x16]
add r8d, eax
movzx eax, byte [rdi + 0x15]
shl r8d, 8
add r8d, eax
movzx eax, byte [rdi + 0x14]
shl r8d, 8
add r8d, eax
lea rax, [rdi + 0x18]
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xb8], r8d
cmp r9d, r8d
jl 0x140a516d0
test r8d, r8d
js 0x140a516d0
lea eax, [rbp - 0x51]
cmp al, 3
ja 0x140a516c9
lea r14, [rbx + 0xa8]
movzx eax, dx
mov rcx, qword [r14]
mov dword [rbx + 0x40], eax
cmp rcx, r14
je 0x140a51089
nop word [rax + rax]
mov rdi, qword [rcx]
mov eax, r12d
sub eax, dword [rcx + 0x24]
test eax, eax
jle 0x140a5107d
mov rax, qword [rcx + 8]
mov qword [rdi + 8], rax
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rdx], rax
mov rax, qword [0x1415fc0e8]
mov qword [rcx], r10
mov qword [rcx + 8], r10
test rax, rax
je 0x140a51066
call rax
jmp 0x140a5106c
call qword [sym.imp.msvcrt.dll_free]
dec dword [rbx + 0x60]
mov rcx, rdi
mov r10d, 0
cmp rdi, r14
jne 0x140a51030
mov edx, dword [rsp + 0x34]
mov r9d, dword [rsp + 0xb0]
mov r8, qword [r14]
lea rdi, [rbx + 0x14]
cmp r8, r14
je 0x140a5109b
mov r11d, dword [r8 + 0x24]
jmp 0x140a5109e
mov r11d, dword [rdi]
mov dword [rbx + 0x10], r11d
cmp bpl, 0x52
jne 0x140a51242
mov r9d, dword [rbx + 0x4c]
sub r9d, r15d
js 0x140a51144
mov r10d, dword [rbx + 0x2c]
test r10d, r10d
jne 0x140a510d5
mov eax, r9d
mov dword [rbx + 0x2c], r9d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rbx + 0x28], eax
jmp 0x140a5111f
mov ecx, r9d
sub ecx, r10d
jns 0x140a510e3
mov ecx, r10d
sub ecx, r9d
mov eax, dword [rbx + 0x28]
lea ecx, [rcx + rax*2]
add eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, eax
mov dword [rbx + 0x28], eax
imul eax, r10d, 7
add eax, r9d
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [rbx + 0x2c], eax
mov r9d, eax
cmp eax, 1
jge 0x140a5111f
mov eax, 1
mov dword [rbx + 0x2c], eax
mov r9d, eax
lea ecx, [rcx*4]
mov eax, 0xea60
cmp dword [rbx + 0x50], ecx
cmovae ecx, dword [rbx + 0x50]
add ecx, r9d
cmp dword [rbx + 0x34], ecx
cmovae ecx, dword [rbx + 0x34]
cmp ecx, eax
cmovbe eax, ecx
mov dword [rbx + 0x30], eax
cmp esi, r11d
js 0x140a511a4
cmp esi, dword [rdi]
jns 0x140a511a4
cmp r8, r14
je 0x140a511a4
cmp esi, dword [r8 + 0x24]
je 0x140a51164
js 0x140a511a4
mov r8, qword [r8]
cmp r8, r14
jne 0x140a51152
jmp 0x140a511a4
mov rdx, qword [r8]
mov rcx, r8
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [rdx], rax
mov rax, qword [0x1415fc0e8]
mov qword [r8], 0
mov qword [r8 + 8], 0
test rax, rax
je 0x140a5119b
call rax
jmp 0x140a511a1
call qword [sym.imp.msvcrt.dll_free]
dec dword [rbx + 0x60]
mov rax, qword [r14]
cmp rax, r14
je 0x140a511b0
lea rdi, [rax + 0x24]
cmp dword [rsp + 0x30], 0
mov eax, dword [rdi]
mov dword [rbx + 0x10], eax
jne 0x140a511c9
mov dword [rsp + 0x30], 1
mov r13d, esi
jmp 0x140a511d4
mov eax, esi
sub eax, r13d
test eax, eax
cmovg r13d, esi
test byte [rbx + 0xf8], 0x20
je 0x140a5120f
cmp qword [rbx + 0x108], 0
je 0x140a5120f
mov ecx, dword [rbx + 0x4c]
lea r8, [0x140a8c91a]
mov eax, dword [rbx + 0x30]
sub ecx, r15d
mov dword [rsp + 0x28], eax
mov r9d, esi
mov dword [rsp + 0x20], ecx
mov edx, 0x20
mov rcx, rbx
call fcn.140a50740
mov r14d, dword [rsp + 0xb8]
mov r9d, dword [rsp + 0xb0]
mov rdi, qword [rsp + 0xa8]
sub r9d, r14d
mov eax, r14d
add rdi, rax
cmp r9d, 0x18
jl 0x140a515bc
xor r10d, r10d
jmp 0x140a50f15
cmp bpl, 0x51
jne 0x140a51538
test byte [rbx + 0xf8], 0x10
je 0x140a5127b
cmp qword [rbx + 0x108], 0
je 0x140a5127b
mov r9d, esi
mov dword [rsp + 0x20], r15d
lea r8, [0x140a8c91a]
mov edx, reloc.WS2_32.dll_recv
mov rcx, rbx
call fcn.140a50740
mov eax, esi
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x140a5120f
mov eax, dword [rbx + 0xd0]
inc eax
cmp eax, dword [rbx + 0xd4]
jbe 0x140a5135a
mov edi, 8
cmp eax, edi
jbe 0x140a512a8
add edi, edi
cmp edi, eax
jb 0x140a512a2
mov rax, qword [0x1415fc0e0]
mov ecx, edi
shl rcx, 3
test rax, rax
je 0x140a512be
call rax
jmp 0x140a512c4
call qword [sym.imp.msvcrt.dll_malloc]
mov r14, rax
test rax, rax
je 0x140a515b5
cmp qword [rbx + 0xc8], 0
je 0x140a5134d
xor r9d, r9d
cmp dword [rbx + 0xd0], r9d
jbe 0x140a51330
nop word [rax + rax]
mov rax, qword [rbx + 0xc8]
lea r8d, [r9 + r9]
lea rdx, [r8*4]
inc r9d
mov ecx, dword [rdx + rax]
lea eax, [r8 + 1]
mov dword [r14 + rdx], ecx
lea rdx, [rax*4]
mov rax, qword [rbx + 0xc8]
mov ecx, dword [rdx + rax]
mov dword [r14 + rdx], ecx
cmp r9d, dword [rbx + 0xd0]
jb 0x140a512f0
mov rax, qword [0x1415fc0e8]
mov rcx, qword [rbx + 0xc8]
test rax, rax
je 0x140a51347
call rax
jmp 0x140a5134d
call qword [sym.imp.msvcrt.dll_free]
mov qword [rbx + 0xc8], r14
mov dword [rbx + 0xd4], edi
mov eax, dword [rbx + 0xd0]
lea rdx, [rbx + 0xd0]
lea ecx, [rax + rax]
mov rax, qword [rbx + 0xc8]
mov dword [rax + rcx*4], esi
mov dword [rax + rcx*4 + 4], r15d
inc dword [rdx]
cmp esi, dword [rbx + 0x18]
js 0x140a5120f
mov r14d, dword [rsp + 0xb8]
mov rax, qword [0x1415fc0e0]
movsxd rcx, r14d
add rcx, 0x48
test rax, rax
je 0x140a513a3
call rax
jmp 0x140a513a9
call qword [sym.imp.msvcrt.dll_malloc]
mov rdi, rax
mov eax, dword [rsp + 0x3c]
mov dword [rdi + 0x10], eax
movzx eax, byte [rsp + 0xa0]
mov dword [rdi + 0x18], eax
movzx eax, word [rsp + 0x34]
mov dword [rdi + 0x1c], eax
mov dword [rdi + 0x14], 0x51
mov dword [rdi + 0x20], r15d
mov dword [rdi + 0x24], esi
mov dword [rdi + 0x28], r12d
mov dword [rdi + 0x2c], r14d
test r14d, r14d
je 0x140a513f5
mov rdx, qword [rsp + 0xa8]
lea rcx, [rdi + 0x40]
mov r8, r14
call sub.msvcrt.dll_memcpy
mov r8d, dword [rdi + 0x24]
mov eax, r8d
sub eax, dword [rbx + 0x3c]
mov ecx, dword [rbx + 0x18]
cmp eax, ecx
jns 0x140a51517
cmp r8d, ecx
js 0x140a51517
mov rcx, qword [rbx + 0xc0]
lea r9, [rbx + 0xb8]
cmp rcx, r9
je 0x140a5144e
nop word [rax + rax]
mov edx, dword [rcx + 0x24]
cmp edx, r8d
je 0x140a514f6
mov eax, r8d
sub eax, edx
test eax, eax
jg 0x140a5144e
mov rcx, qword [rcx + 8]
cmp rcx, r9
jne 0x140a51430
mov qword [rdi], rdi
mov qword [rdi + 8], rcx
mov rax, qword [rcx]
mov qword [rdi], rax
mov rax, qword [rcx]
mov qword [rax + 8], rdi
mov qword [rcx], rdi
inc dword [rbx + 0x5c]
mov rdx, qword [rbx + 0xb8]
lea r8, [rbx + 0xb8]
cmp r8, rdx
je 0x140a51217
nop
mov eax, dword [rbx + 0x18]
cmp dword [rdx + 0x24], eax
jne 0x140a51217
mov eax, dword [rbx + 0x3c]
cmp dword [rbx + 0x64], eax
jae 0x140a51217
mov rcx, qword [rdx]
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rax, qword [rdx]
mov rcx, qword [rdx + 8]
mov qword [rcx], rax
xor eax, eax
mov qword [rdx], rax
mov qword [rdx + 8], rax
mov rax, qword [rbx + 0xa0]
dec dword [rbx + 0x5c]
mov qword [rdx + 8], rax
lea rax, [rbx + 0x98]
mov qword [rdx], rax
mov rax, qword [rbx + 0xa0]
mov qword [rax], rdx
inc dword [rbx + 0x64]
inc dword [rbx + 0x18]
mov qword [rbx + 0xa0], rdx
mov rdx, qword [rbx + 0xb8]
cmp r8, rdx
jne 0x140a51480
jmp 0x140a51217
mov rax, qword [0x1415fc0e8]
mov rcx, rdi
test rax, rax
je 0x140a5150c
call rax
jmp 0x140a51468
call qword [sym.imp.msvcrt.dll_free]
jmp 0x140a51468
mov rax, qword [0x1415fc0e8]
mov rcx, rdi
test rax, rax
je 0x140a5152d
call rax
jmp 0x140a51217
call qword [sym.imp.msvcrt.dll_free]
jmp 0x140a51217
cmp bpl, 0x53
jne 0x140a5156e
or dword [rbx + 0x48], 2
test byte [rbx + 0xf8], 0x40
je 0x140a515a8
cmp qword [rbx + 0x108], 0
je 0x140a515a8
lea r8, [0x140a8c91a]
mov edx, 0x40
mov rcx, rbx
call fcn.140a50740
jmp 0x140a5120f
cmp bpl, 0x54
jne 0x140a516c9
test byte [rbx + 0xf8], 0x80
je 0x140a515a8
cmp qword [rbx + 0x108], 0
je 0x140a515a8
movzx r9d, dx
lea r8, [0x140a8c91a]
mov edx, 0x80
mov rcx, rbx
call fcn.140a50740
jmp 0x140a5120f
mov r14d, dword [rsp + 0xb8]
jmp 0x140a5121f
call qword [sym.imp.msvcrt.dll_abort]
int3
cmp dword [rsp + 0x30], 0
je 0x140a515f6
cmp r13d, dword [rbx + 0x10]
js 0x140a515f6
cmp r13d, dword [rbx + 0x14]
jns 0x140a515f6
lea r9, [rbx + 0xa8]
mov rcx, qword [r9]
cmp rcx, r9
je 0x140a515f6
nop
cmp r13d, dword [rcx + 0x24]
mov r8, qword [rcx]
js 0x140a515f6
je 0x140a515ee
inc dword [rcx + 0x38]
mov rcx, r8
cmp r8, r9
jne 0x140a515e0
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x40]
test eax, eax
jle 0x140a516a2
mov r8d, dword [rbx + 0x44]
lea r9, [rbx + 0x44]
mov r10d, dword [rbx + 0x40]
cmp r8d, r10d
jae 0x140a516a2
mov ecx, dword [rbx + 8]
mov r11d, dword [rbx + 0x80]
cmp r8d, dword [rbx + 0x24]
jae 0x140a5163c
inc r8d
lea eax, [r11 + rcx]
mov dword [r9], r8d
mov dword [rbx + 0x80], eax
jmp 0x140a5168f
mov rdi, r9
cmp r11d, ecx
jae 0x140a5164b
mov r11d, ecx
lea rdi, [rbx + 0x44]
xor edx, edx
mov eax, ecx
imul eax, ecx
div r11d
mov edx, ecx
add eax, r11d
shr edx, 4
add edx, eax
lea eax, [r8 + 1]
imul eax, ecx
mov dword [rbx + 0x80], edx
cmp eax, edx
ja 0x140a5168f
lea eax, [rcx - 1]
mov r8d, 1
add eax, edx
test ecx, ecx
cmovne r8d, ecx
xor edx, edx
div r8d
mov dword [r9], eax
mov r8d, eax
mov r9, rdi
cmp r8d, r10d
jbe 0x140a516a2
mov dword [r9], r10d
imul r10d, ecx
mov dword [rbx + 0x80], r10d
xor eax, eax
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov r15, qword [rsp + 0x58]
add rsp, 0x80
pop r13
pop rdi
pop rbx
ret
mov eax, 0xfffffffd
jmp 0x140a516a4
mov eax, 0xfffffffe
jmp 0x140a516a4
mov eax, 0xffffffff
add rsp, 0x80
pop r13
pop rdi
pop rbx
ret