Function at 0x18012bad0
Capabilities:
Enumerate pe sections

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
sub rsp, 0x70
mov eax, dword [rcx + 0x10]
xor ebp, ebp
test byte [rcx + 0xf8], 2
mov r9d, r8d
mov rsi, rdx
mov rbx, rcx
mov dword [rsp + 0x38], eax
mov dword [rsp + 0xa8], ebp
je 0x18012bb1e
cmp qword [rcx + 0x108], rbp
je 0x18012bb1e
lea r8, str._RI___d_bytes
lea edx, [rbp + 2]
call fcn.18012add0
mov r9d, dword [rsp + 0xa0]
test rsi, rsi
je 0x18012bf9b
cmp r9d, 0x18
jl 0x18012bf9b
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x48], r15
mov ecx, pe_nt_image_headers64
mov qword [rsp + 0x58], r13
nop
mov eax, dword [rbx]
movzx r8d, byte [rsi + 7]
movzx r12d, byte [rsi + 0xb]
imul r8w, cx
movzx edi, byte [rsi + 0xf]
movzx edx, byte [rsi + 0x13]
movzx r14d, byte [rsi + 0x17]
movzx r15d, byte [rsi + 4]
mov dword [rsp + 0x30], eax
movzx eax, byte [rsi + 5]
mov byte [rsp + 0x90], al
movzx eax, byte [rsi + 6]
shl r12d, 8
add r8w, ax
movzx eax, byte [rsi + 0xa]
shl edi, 8
add r12d, eax
movzx eax, byte [rsi + 9]
shl edx, 8
shl r14d, 8
shl r12d, 8
sub r9d, 0x18
add r12d, eax
movzx eax, byte [rsi + 8]
mov dword [rsp + 0xa0], r9d
shl r12d, 8
add r12d, eax
movzx eax, byte [rsi + 0xe]
add edi, eax
movzx eax, byte [rsi + 0xd]
shl edi, 8
add edi, eax
movzx eax, byte [rsi + 0xc]
shl edi, 8
add edi, eax
movzx eax, byte [rsi + 0x12]
add edx, eax
movzx eax, byte [rsi + 0x11]
shl edx, 8
add edx, eax
movzx eax, byte [rsi + 0x10]
shl edx, 8
add edx, eax
movzx eax, byte [rsi + 0x16]
add r14d, eax
movzx eax, byte [rsi + 0x15]
mov dword [rsp + 0x34], edx
shl r14d, 8
add r14d, eax
movzx eax, byte [rsi + 0x14]
shl r14d, 8
add r14d, eax
lea rax, [rsi + 0x18]
mov qword [rsp + 0x98], rax
cmp r9d, r14d
jl 0x18012bf94
test r14d, r14d
js 0x18012bf94
lea eax, [r15 - 0x51]
cmp al, 3
ja 0x18012bf8d
movzx r13d, r8w
mov rcx, rbx
mov dword [rbx + 0x40], r13d
call fcn.18012b7c0
lea rsi, [rbx + 0xa8]
mov rax, qword [rsi]
cmp rax, rsi
je 0x18012bc60
mov eax, dword [rax + 0x24]
jmp 0x18012bc63
mov eax, dword [rbx + 0x14]
mov dword [rbx + 0x10], eax
cmp r15b, 0x52
jne 0x18012bd52
mov edx, dword [rbx + 0x4c]
sub edx, r12d
js 0x18012bc80
mov rcx, rbx
call fcn.18012b730
cmp edi, dword [rbx + 0x10]
js 0x18012bcdb
cmp edi, dword [rbx + 0x14]
jns 0x18012bcdb
mov rcx, qword [rsi]
cmp rcx, rsi
je 0x18012bcdb
mov edx, dword [rcx + 0x24]
cmp edi, edx
je 0x18012bca5
js 0x18012bcdb
mov rcx, qword [rcx]
cmp rcx, rsi
jne 0x18012bc92
jmp 0x18012bcdb
mov rdx, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
mov rdx, qword [rcx + 8]
mov qword [rdx], rax
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov rax, qword [0x18026e2d8]
test rax, rax
je 0x18012bcd3
call rax
jmp 0x18012bcd8
call fcn.180179510
dec dword [rbx + 0x60]
mov rax, qword [rsi]
cmp rax, rsi
je 0x18012bce8
mov eax, dword [rax + 0x24]
jmp 0x18012bceb
mov eax, dword [rbx + 0x14]
cmp dword [rsp + 0xa8], 0
mov dword [rbx + 0x10], eax
jne 0x18012bd07
mov dword [rsp + 0xa8], 1
mov ebp, edi
jmp 0x18012bd10
mov eax, edi
sub eax, ebp
test eax, eax
cmovg ebp, edi
mov edx, 0x20
mov rcx, rbx
call fcn.18012ae50
test eax, eax
je 0x18012be6c
mov ecx, dword [rbx + 0x4c]
mov eax, dword [rbx + 0x30]
lea r8, str.input_ack:_sn_lu_rtt_ld_rto_ld
sub ecx, r12d
mov dword [rsp + 0x28], eax
mov r9d, edi
mov dword [rsp + 0x20], ecx
mov rcx, rbx
mov edx, reloc.WS2_32.dll_recv
call fcn.18012add0
jmp 0x18012be6c
cmp r15b, 0x51
jne 0x18012be19
mov edx, reloc.WS2_32.dll_recv
mov rcx, rbx
call fcn.18012ae50
test eax, eax
je 0x18012bd81
lea r8, str.input_psh:_sn_lu_ts_lu
mov r9d, edi
mov dword [rsp + 0x20], r12d
call fcn.18012add0
mov eax, edi
sub eax, dword [rbx + 0x3c]
cmp eax, dword [rbx + 0x18]
jns 0x18012be6c
mov r8d, r12d
mov edx, edi
mov rcx, rbx
call fcn.18012b860
cmp edi, dword [rbx + 0x18]
js 0x18012be6c
mov rax, qword [0x18026e2d0]
movsxd rcx, r14d
add rcx, 0x48
test rax, rax
je 0x18012bdbc
call rax
jmp 0x18012bdc1
call fcn.180179458
mov rsi, rax
mov eax, dword [rsp + 0x30]
mov dword [rsi + 0x10], eax
movzx eax, byte [rsp + 0x90]
mov dword [rsi + 0x14], 0x51
mov dword [rsi + 0x18], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + 0x1c], r13d
mov dword [rsi + 0x20], r12d
mov dword [rsi + 0x24], edi
mov dword [rsi + 0x2c], r14d
mov dword [rsi + 0x28], eax
test r14d, r14d
je 0x18012be0c
mov rdx, qword [rsp + 0x98]
lea rcx, [rsi + 0x40]
mov r8d, r14d
call fcn.18017dd20
mov rdx, rsi
mov rcx, rbx
call fcn.18012b990
jmp 0x18012be6c
cmp r15b, 0x53
jne 0x18012be42
or dword [rbx + 0x48], 2
mov edx, 0x40
mov rcx, rbx
call fcn.18012ae50
test eax, eax
je 0x18012be6c
lea r8, str.input_probe
call fcn.18012add0
jmp 0x18012be6c
cmp r15b, 0x54
jne 0x18012bf8d
mov edx, 0x80
mov rcx, rbx
call fcn.18012ae50
test eax, eax
je 0x18012be6c
lea r8, str.input_wins:__lu
mov r9d, r13d
call fcn.18012add0
mov r9d, dword [rsp + 0xa0]
mov rsi, qword [rsp + 0x98]
mov eax, r14d
sub r9d, r14d
add rsi, rax
mov ecx, pe_nt_image_headers64
cmp r9d, 0x18
jge 0x18012bb50
cmp dword [rsp + 0xa8], 0
je 0x18012bed9
cmp ebp, dword [rbx + 0x10]
js 0x18012bed9
cmp ebp, dword [rbx + 0x14]
jns 0x18012bed9
lea r9, [rbx + 0xa8]
mov rcx, qword [r9]
cmp rcx, r9
je 0x18012bed9
nop word [rax + rax]
mov r8d, dword [rcx + 0x24]
mov rdx, qword [rcx]
cmp ebp, r8d
js 0x18012bed9
je 0x18012bed1
inc dword [rcx + 0x38]
mov rcx, rdx
cmp rdx, r9
jne 0x18012bec0
mov eax, dword [rbx + 0x10]
sub eax, dword [rsp + 0x38]
test eax, eax
jle 0x18012bf6a
mov r11d, dword [rbx + 0x44]
mov r10d, dword [rbx + 0x40]
cmp r11d, r10d
jae 0x18012bf6a
mov r9d, dword [rbx + 8]
cmp r11d, dword [rbx + 0x24]
jae 0x18012bf0f
add dword [rbx + 0x80], r9d
lea eax, [r11 + 1]
mov dword [rbx + 0x44], eax
jmp 0x18012bf55
cmp dword [rbx + 0x80], r9d
jae 0x18012bf1f
mov dword [rbx + 0x80], r9d
mov r8d, dword [rbx + 0x80]
xor edx, edx
mov eax, r9d
imul eax, r9d
div r8d
mov edx, r9d
add eax, r8d
shr edx, 4
add edx, eax
inc r11d
mov eax, r11d
mov dword [rbx + 0x80], edx
imul eax, r9d
cmp eax, edx
ja 0x18012bf55
mov dword [rbx + 0x44], r11d
cmp dword [rbx + 0x44], r10d
jbe 0x18012bf6a
mov dword [rbx + 0x44], r10d
imul r10d, r9d
mov dword [rbx + 0x80], r10d
xor eax, eax
mov r13, qword [rsp + 0x58]
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov r15, qword [rsp + 0x48]
add rsp, 0x70
pop rsi
pop rbp
pop rbx
ret
mov eax, 0xfffffffd
jmp 0x18012bf6c
mov eax, 0xfffffffe
jmp 0x18012bf6c
or eax, 0xffffffff
add rsp, 0x70
pop rsi
pop rbp
pop rbx
ret