Function at 0x1800016cc
Capabilities:
Enumerate pe sections

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov eax, dword [rcx + 0x10]
xor r14d, r14d
and dword [rsp + 0x30], r14d
mov rdi, rdx
test byte [rcx + 0xf8], 2
mov rbx, rcx
mov dword [rsp + 0x44], eax
je 0x180001723
cmp qword [rcx + 0x108], r14
je 0x180001723
mov r9d, r8d
lea edx, [r14 + 2]
lea r8, [0x180057aaa]
call fcn.180001000
mov r8d, dword [rsp + 0xb0]
test rdi, rdi
je 0x180001e63
cmp r8d, 0x18
jl 0x180001e63
mov ebp, 1
mov eax, dword [rbx]
mov ecx, 0x100
movzx r9d, byte [rdi + 7]
sub r8d, 0x18
movzx edx, byte [rdi + 0xb]
movzx esi, byte [rdi + 0xf]
movzx r13d, byte [rdi + 0x17]
mov r15b, byte [rdi + 4]
mov dword [rsp + 0x40], eax
mov al, byte [rdi + 5]
mov byte [rsp + 0xa0], al
movzx eax, byte [rdi + 6]
imul r9d, ecx
movzx ecx, byte [rdi + 0x13]
shl edx, 8
shl esi, 8
shl ecx, 8
add r9w, ax
shl r13d, 8
movzx eax, byte [rdi + 0xa]
add edx, eax
mov dword [rsp + 0x34], r9d
movzx eax, byte [rdi + 9]
shl edx, 8
add edx, eax
mov dword [rsp + 0xb0], r8d
movzx eax, byte [rdi + 8]
shl edx, 8
add edx, eax
movzx eax, byte [rdi + 0xe]
add esi, eax
mov dword [rsp + 0xb8], edx
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 ecx, eax
movzx eax, byte [rdi + 0x11]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdi + 0x10]
shl ecx, 8
add ecx, eax
movzx eax, byte [rdi + 0x16]
add r13d, eax
mov dword [rsp + 0x38], ecx
movzx eax, byte [rdi + 0x15]
shl r13d, 8
add r13d, eax
movzx eax, byte [rdi + 0x14]
shl r13d, 8
add r13d, eax
lea rax, [rdi + 0x18]
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0x3c], r13d
cmp r8d, r13d
jl 0x180001e5c
test r13d, r13d
js 0x180001e5c
lea eax, [r15 - 0x51]
cmp al, 3
ja 0x180001e55
lea rdi, [rbx + 0xa8]
movzx eax, r9w
mov rcx, qword [rdi]
mov dword [rbx + 0x40], eax
cmp rcx, rdi
je 0x1800018ab
mov ebp, dword [rsp + 0x38]
mov r13, qword [rcx]
mov eax, ebp
sub eax, dword [rcx + 0x24]
test eax, eax
jle 0x180001895
mov rax, qword [rcx + 8]
mov qword [r13 + 8], rax
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rdx], rax
and qword [rcx], 0
and qword [rcx + 8], 0
mov rax, qword [0x18005ff20]
test rax, rax
je 0x180001884
call rax
jmp 0x18000188a
call qword [sym.imp.msvcrt.dll_free]
dec dword [rbx + 0x60]
mov rcx, r13
cmp r13, rdi
jne 0x18000184d
mov r13d, dword [rsp + 0x3c]
mov ebp, 1
mov edx, dword [rsp + 0xb8]
mov r9d, dword [rsp + 0x34]
mov r8, qword [rdi]
lea r12, [rbx + 0x14]
cmp r8, rdi
je 0x1800018bd
mov r11d, dword [r8 + 0x24]
jmp 0x1800018c1
mov r11d, dword [r12]
mov dword [rbx + 0x10], r11d
cmp r15b, 0x52
jne 0x180001a35
mov r9d, dword [rbx + 0x4c]
sub r9d, edx
js 0x180001962
mov r10d, dword [rbx + 0x2c]
test r10d, r10d
jne 0x1800018f8
mov eax, r9d
mov dword [rbx + 0x2c], r9d
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rbx + 0x28], eax
jmp 0x18000193c
mov ecx, r9d
sub ecx, r10d
jns 0x180001906
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, ebp
jge 0x18000193c
mov dword [rbx + 0x2c], ebp
mov r9d, ebp
shl ecx, 2
mov r10d, 0xea60
cmp dword [rbx + 0x50], ecx
mov eax, r10d
cmovae ecx, dword [rbx + 0x50]
add ecx, r9d
cmp dword [rbx + 0x34], ecx
cmovae ecx, dword [rbx + 0x34]
cmp ecx, r10d
cmovbe eax, ecx
mov dword [rbx + 0x30], eax
cmp esi, r11d
js 0x1800019bb
cmp esi, dword [r12]
jns 0x1800019bb
jmp 0x18000197a
cmp esi, dword [r8 + 0x24]
je 0x180001981
js 0x1800019bb
mov r8, qword [r8]
cmp r8, rdi
jne 0x18000196f
jmp 0x1800019bb
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
and qword [r8], 0
and qword [r8 + 8], 0
mov rax, qword [0x18005ff20]
test rax, rax
je 0x1800019b2
call rax
jmp 0x1800019b8
call qword [sym.imp.msvcrt.dll_free]
dec dword [rbx + 0x60]
mov rax, qword [rdi]
cmp rax, rdi
je 0x1800019c7
lea r12, [rax + 0x24]
cmp dword [rsp + 0x30], 0
mov eax, dword [r12]
mov dword [rbx + 0x10], eax
jne 0x1800019de
mov dword [rsp + 0x30], ebp
mov r14d, esi
jmp 0x1800019e9
mov eax, esi
sub eax, r14d
test eax, eax
cmovg r14d, esi
test byte [rbx + 0xf8], 0x20
je 0x180001d4c
cmp qword [rbx + 0x108], 0
je 0x180001d4c
mov ecx, dword [rbx + 0x4c]
lea r8, [0x180057aaa]
sub ecx, dword [rsp + 0xb8]
mov r9d, esi
mov eax, dword [rbx + 0x30]
mov edx, 0x20
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.180001000
jmp 0x180001d4c
cmp r15b, 0x51
jne 0x180001ce4
test byte [rbx + 0xf8], 0x10
je 0x180001a6d
cmp qword [rbx + 0x108], 0
je 0x180001a6d
mov dword [rsp + 0x20], edx
lea r8, [0x180057aaa]
mov edx, reloc.WS2_32.dll_recv
mov r9d, esi
mov rcx, rbx
call fcn.180001000
mov eax, esi
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x180001d4c
lea r15, [rbx + 0xd0]
mov eax, dword [r15]
add eax, ebp
cmp eax, dword [rbx + 0xd4]
jbe 0x180001b39
mov edi, 8
cmp eax, edi
jbe 0x180001aa2
add edi, edi
cmp edi, eax
jb 0x180001a9c
mov rax, qword [0x18005ff28]
mov ecx, edi
shl rcx, 3
test rax, rax
je 0x180001ab8
call rax
jmp 0x180001abe
call qword [sym.imp.msvcrt.dll_malloc]
mov r12, rax
test rax, rax
je 0x180001dec
cmp qword [rbx + 0xc8], 0
je 0x180001b23
xor r8d, r8d
cmp dword [r15], r8d
jbe 0x180001b06
xor r9d, r9d
lea r10d, [r8 + r8]
mov rax, qword [rbx + 0xc8]
lea edx, [r9 + r10]
add r9d, ebp
mov ecx, dword [rax + rdx*4]
mov dword [r12 + rdx*4], ecx
cmp r9d, 2
jl 0x180001ae3
add r8d, ebp
cmp r8d, dword [r15]
jb 0x180001adc
mov rax, qword [0x18005ff20]
mov rcx, qword [rbx + 0xc8]
test rax, rax
je 0x180001b1d
call rax
jmp 0x180001b23
call qword [sym.imp.msvcrt.dll_free]
mov qword [rbx + 0xc8], r12
lea rdx, [rbx + 0xd0]
mov dword [rbx + 0xd4], edi
jmp 0x180001b3c
mov rdx, r15
mov eax, dword [r15]
mov r15d, dword [rsp + 0xb8]
lea ecx, [rax + rax]
mov rax, qword [rbx + 0xc8]
mov dword [rax + rcx*4], esi
mov dword [rax + rcx*4 + 4], r15d
add dword [rdx], ebp
cmp esi, dword [rbx + 0x18]
js 0x180001d4c
mov rax, qword [0x18005ff28]
movsxd rcx, r13d
add rcx, 0x48
test rax, rax
je 0x180001b7b
call rax
jmp 0x180001b81
call qword [sym.imp.msvcrt.dll_malloc]
mov rdi, rax
mov eax, dword [rsp + 0x40]
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 eax, dword [rsp + 0x38]
mov dword [rdi + 0x28], eax
mov dword [rdi + 0x14], 0x51
mov dword [rdi + 0x20], r15d
mov dword [rdi + 0x24], esi
mov dword [rdi + 0x2c], r13d
test r13d, r13d
je 0x180001bd1
mov rdx, qword [rsp + 0xa8]
lea rcx, [rdi + 0x40]
mov r8d, r13d
call qword [sym.imp.ntdll.dll_memcpy]
mov edx, dword [rdi + 0x24]
mov eax, edx
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x180001cc9
cmp edx, dword [rbx + 0x18]
js 0x180001cc9
mov rcx, qword [rbx + 0xc0]
lea r8, [rbx + 0xb8]
jmp 0x180001c0d
cmp dword [rcx + 0x24], edx
je 0x180001c38
mov eax, edx
sub eax, dword [rcx + 0x24]
test eax, eax
jg 0x180001c12
mov rcx, qword [rcx + 8]
cmp rcx, r8
jne 0x180001bfb
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
add dword [rbx + 0x5c], ebp
lea r8, [rbx + 0xb8]
jmp 0x180001cb8
mov rax, qword [0x18005ff20]
mov rcx, rdi
test rax, rax
je 0x180001c4b
call rax
jmp 0x180001c2c
call qword [sym.imp.msvcrt.dll_free]
jmp 0x180001c2c
mov eax, dword [rbx + 0x18]
cmp dword [rdx + 0x24], eax
jne 0x180001d4c
mov eax, dword [rbx + 0x3c]
cmp dword [rbx + 0x64], eax
jae 0x180001d4c
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
and qword [rdx], 0
and qword [rdx + 8], 0
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
add dword [rbx + 0x64], ebp
add dword [rbx + 0x18], ebp
mov qword [rbx + 0xa0], rdx
mov rdx, qword [rbx + 0xb8]
cmp r8, rdx
jne 0x180001c53
jmp 0x180001d4c
mov rax, qword [0x18005ff20]
mov rcx, rdi
test rax, rax
je 0x180001cdc
call rax
jmp 0x180001d4c
call qword [sym.imp.msvcrt.dll_free]
jmp 0x180001d4c
cmp r15b, 0x53
jne 0x180001d17
or dword [rbx + 0x48], 2
test byte [rbx + 0xf8], 0x40
je 0x180001d4c
cmp qword [rbx + 0x108], 0
je 0x180001d4c
lea r8, [0x180057aaa]
mov edx, 0x40
mov rcx, rbx
call fcn.180001000
jmp 0x180001d4c
cmp r15b, 0x54
jne 0x180001e55
test byte [rbx + 0xf8], 0x80
je 0x180001d4c
cmp qword [rbx + 0x108], 0
je 0x180001d4c
movzx r9d, r9w
lea r8, [0x180057aaa]
mov edx, 0x80
mov rcx, rbx
call fcn.180001000
mov rdi, qword [rsp + 0xa8]
mov r8d, dword [rsp + 0xb0]
mov eax, r13d
sub r8d, r13d
add rdi, rax
cmp r8d, 0x18
jge 0x18000173b
cmp dword [rsp + 0x30], 0
je 0x180001da7
cmp r14d, dword [rbx + 0x10]
js 0x180001da7
cmp r14d, dword [rbx + 0x14]
jns 0x180001da7
lea rdx, [rbx + 0xa8]
mov rcx, qword [rdx]
cmp rcx, rdx
je 0x180001da7
cmp r14d, dword [rcx + 0x24]
mov r8, qword [rcx]
js 0x180001da7
je 0x180001d9f
add dword [rcx + 0x38], ebp
mov rcx, r8
cmp r8, rdx
jne 0x180001d91
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x44]
test eax, eax
jle 0x180001e51
mov r10d, dword [rbx + 0x40]
lea r9, [rbx + 0x44]
mov r8d, dword [r9]
cmp r8d, r10d
jae 0x180001e51
mov ecx, dword [rbx + 8]
mov r11d, dword [rbx + 0x80]
cmp r8d, dword [rbx + 0x24]
jae 0x180001df3
inc r8d
lea eax, [r11 + rcx]
mov dword [r9], r8d
mov dword [rbx + 0x80], eax
jmp 0x180001e3e
call qword [sym.imp.msvcrt.dll_abort]
int3
mov rdi, r9
cmp r11d, ecx
jae 0x180001e02
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 0x180001e3e
lea eax, [rcx - 1]
add eax, edx
test ecx, ecx
cmovne ebp, ecx
xor edx, edx
div ebp
mov dword [r9], eax
mov r8d, eax
mov r9, rdi
cmp r8d, r10d
jbe 0x180001e51
mov dword [r9], r10d
imul r10d, ecx
mov dword [rbx + 0x80], r10d
xor eax, eax
jmp 0x180001e66
mov eax, 0xfffffffd
jmp 0x180001e66
mov eax, 0xfffffffe
jmp 0x180001e66
or eax, 0xffffffff
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret