Function at 0x140001760
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 0x1400017b9
cmp qword [rcx + 0x108], r10
je 0x1400017b9
lea r8, [0x14033c2e8]
mov edx, 2
call fcn.140001010
mov r9d, dword [rsp + 0xb0]
xor r10d, r10d
test rdi, rdi
je 0x140001fa7
cmp r9d, 0x18
jl 0x140001fa7
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 0x140001fa0
test r8d, r8d
js 0x140001fa0
lea eax, [rbp - 0x51]
cmp al, 3
ja 0x140001f99
lea r14, [rbx + 0xa8]
movzx eax, dx
mov rcx, qword [r14]
mov dword [rbx + 0x40], eax
cmp rcx, r14
je 0x140001959
nop word [rax + rax]
mov rdi, qword [rcx]
mov eax, r12d
sub eax, dword [rcx + 0x24]
test eax, eax
jle 0x14000194d
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 [0x14037c700]
mov qword [rcx], r10
mov qword [rcx + 8], r10
test rax, rax
je 0x140001936
call rax
jmp 0x14000193c
call qword [sym.imp.msvcrt.dll_free]
dec dword [rbx + 0x60]
mov rcx, rdi
mov r10d, 0
cmp rdi, r14
jne 0x140001900
mov edx, dword [rsp + 0x34]
mov r9d, dword [rsp + 0xb0]
mov r8, qword [r14]
lea rdi, [rbx + 0x14]
cmp r8, r14
je 0x14000196b
mov r11d, dword [r8 + 0x24]
jmp 0x14000196e
mov r11d, dword [rdi]
mov dword [rbx + 0x10], r11d
cmp bpl, 0x52
jne 0x140001b12
mov r9d, dword [rbx + 0x4c]
sub r9d, r15d
js 0x140001a14
mov r10d, dword [rbx + 0x2c]
test r10d, r10d
jne 0x1400019a5
mov eax, r9d
mov dword [rbx + 0x2c], r9d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rbx + 0x28], eax
jmp 0x1400019ef
mov ecx, r9d
sub ecx, r10d
jns 0x1400019b3
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 0x1400019ef
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 0x140001a74
cmp esi, dword [rdi]
jns 0x140001a74
cmp r8, r14
je 0x140001a74
cmp esi, dword [r8 + 0x24]
je 0x140001a34
js 0x140001a74
mov r8, qword [r8]
cmp r8, r14
jne 0x140001a22
jmp 0x140001a74
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 [0x14037c700]
mov qword [r8], 0
mov qword [r8 + 8], 0
test rax, rax
je 0x140001a6b
call rax
jmp 0x140001a71
call qword [sym.imp.msvcrt.dll_free]
dec dword [rbx + 0x60]
mov rax, qword [r14]
cmp rax, r14
je 0x140001a80
lea rdi, [rax + 0x24]
cmp dword [rsp + 0x30], 0
mov eax, dword [rdi]
mov dword [rbx + 0x10], eax
jne 0x140001a99
mov dword [rsp + 0x30], 1
mov r13d, esi
jmp 0x140001aa4
mov eax, esi
sub eax, r13d
test eax, eax
cmovg r13d, esi
test byte [rbx + 0xf8], 0x20
je 0x140001adf
cmp qword [rbx + 0x108], 0
je 0x140001adf
mov ecx, dword [rbx + 0x4c]
lea r8, [0x14033c2e8]
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.140001010
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 0x140001e8c
xor r10d, r10d
jmp 0x1400017e5
cmp bpl, 0x51
jne 0x140001e08
test byte [rbx + 0xf8], 0x10
je 0x140001b4b
cmp qword [rbx + 0x108], 0
je 0x140001b4b
mov r9d, esi
mov dword [rsp + 0x20], r15d
lea r8, [0x14033c2e8]
mov edx, reloc.WS2_32.dll_recv
mov rcx, rbx
call fcn.140001010
mov eax, esi
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x140001adf
mov eax, dword [rbx + 0xd0]
inc eax
cmp eax, dword [rbx + 0xd4]
jbe 0x140001c2a
mov edi, 8
cmp eax, edi
jbe 0x140001b78
add edi, edi
cmp edi, eax
jb 0x140001b72
mov rax, qword [0x14037c6f8]
mov ecx, edi
shl rcx, 3
test rax, rax
je 0x140001b8e
call rax
jmp 0x140001b94
call qword [sym.imp.msvcrt.dll_malloc]
mov r14, rax
test rax, rax
je 0x140001e85
cmp qword [rbx + 0xc8], 0
je 0x140001c1d
xor r9d, r9d
cmp dword [rbx + 0xd0], r9d
jbe 0x140001c00
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 0x140001bc0
mov rax, qword [0x14037c700]
mov rcx, qword [rbx + 0xc8]
test rax, rax
je 0x140001c17
call rax
jmp 0x140001c1d
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 0x140001adf
mov r14d, dword [rsp + 0xb8]
mov rax, qword [0x14037c6f8]
movsxd rcx, r14d
add rcx, 0x48
test rax, rax
je 0x140001c73
call rax
jmp 0x140001c79
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 0x140001cc5
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 0x140001de7
cmp r8d, ecx
js 0x140001de7
mov rcx, qword [rbx + 0xc0]
lea r9, [rbx + 0xb8]
cmp rcx, r9
je 0x140001d1e
nop word [rax + rax]
mov edx, dword [rcx + 0x24]
cmp edx, r8d
je 0x140001dc6
mov eax, r8d
sub eax, edx
test eax, eax
jg 0x140001d1e
mov rcx, qword [rcx + 8]
cmp rcx, r9
jne 0x140001d00
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 0x140001ae7
nop
mov eax, dword [rbx + 0x18]
cmp dword [rdx + 0x24], eax
jne 0x140001ae7
mov eax, dword [rbx + 0x3c]
cmp dword [rbx + 0x64], eax
jae 0x140001ae7
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 0x140001d50
jmp 0x140001ae7
mov rax, qword [0x14037c700]
mov rcx, rdi
test rax, rax
je 0x140001ddc
call rax
jmp 0x140001d38
call qword [sym.imp.msvcrt.dll_free]
jmp 0x140001d38
mov rax, qword [0x14037c700]
mov rcx, rdi
test rax, rax
je 0x140001dfd
call rax
jmp 0x140001ae7
call qword [sym.imp.msvcrt.dll_free]
jmp 0x140001ae7
cmp bpl, 0x53
jne 0x140001e3e
or dword [rbx + 0x48], 2
test byte [rbx + 0xf8], 0x40
je 0x140001e78
cmp qword [rbx + 0x108], 0
je 0x140001e78
lea r8, [0x14033c2e8]
mov edx, 0x40
mov rcx, rbx
call fcn.140001010
jmp 0x140001adf
cmp bpl, 0x54
jne 0x140001f99
test byte [rbx + 0xf8], 0x80
je 0x140001e78
cmp qword [rbx + 0x108], 0
je 0x140001e78
movzx r9d, dx
lea r8, [0x14033c2e8]
mov edx, 0x80
mov rcx, rbx
call fcn.140001010
jmp 0x140001adf
mov r14d, dword [rsp + 0xb8]
jmp 0x140001aef
call qword [sym.imp.msvcrt.dll_abort]
int3
cmp dword [rsp + 0x30], 0
je 0x140001ec6
cmp r13d, dword [rbx + 0x10]
js 0x140001ec6
cmp r13d, dword [rbx + 0x14]
jns 0x140001ec6
lea r9, [rbx + 0xa8]
mov rcx, qword [r9]
cmp rcx, r9
je 0x140001ec6
nop
cmp r13d, dword [rcx + 0x24]
mov r8, qword [rcx]
js 0x140001ec6
je 0x140001ebe
inc dword [rcx + 0x38]
mov rcx, r8
cmp r8, r9
jne 0x140001eb0
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x40]
test eax, eax
jle 0x140001f72
mov r8d, dword [rbx + 0x44]
lea r9, [rbx + 0x44]
mov r10d, dword [rbx + 0x40]
cmp r8d, r10d
jae 0x140001f72
mov ecx, dword [rbx + 8]
mov r11d, dword [rbx + 0x80]
cmp r8d, dword [rbx + 0x24]
jae 0x140001f0c
inc r8d
lea eax, [r11 + rcx]
mov dword [r9], r8d
mov dword [rbx + 0x80], eax
jmp 0x140001f5f
mov rdi, r9
cmp r11d, ecx
jae 0x140001f1b
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 0x140001f5f
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 0x140001f72
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 0x140001f74
mov eax, 0xfffffffe
jmp 0x140001f74
mov eax, 0xffffffff
add rsp, 0x80
pop r13
pop rdi
pop rbx
ret