Function at 0x1400bbde0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3b0]
sub rsp, 0x4b0
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x3a0], rax
mov r15, r9
mov r12, r8
mov r13, rdx
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], r8
mov rsi, qword [rbp + 0x410]
lea rdx, str.TcpmonIniInfo::ReadPortInfoFromSection
lea rcx, [rsp + 0x40]
call fcn.14001abe0
lea rbx, [0x1402a8360]
lea r14, [0x1402bbdb0]
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x1400bbecf
test byte [rcx + 0x1c], 1
je 0x1400bbe8a
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, socket
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001ad0
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x1400bbecf
test byte [rcx + 0x1c], 1
je 0x1400bbecf
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, socket
mov rax, qword [r12]
mov qword [rsp + 0x28], rax
mov rax, qword [r13]
mov qword [rsp + 0x20], rax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.14002fbe0
xor edx, edx
mov r8d, 0x410
lea rcx, [rbp - 0x70]
call fcn.1401e7e40
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.NAME
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x1400bbf4c
test byte [rcx + 0x1c], 4
je 0x1400bbf4c
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, socket
mov qword [rsp + 0x20], r15
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.PORTS
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp - 0x70]
call fcn.1401f2dc0
mov dword [r15 + 0x410], eax
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x1400bbfc7
test byte [rcx + 0x1c], 4
je 0x1400bbfc7
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.WSOCK32.dll_socket
mov dword [rsp + 0x20], eax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.PROTOCOL1
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdi, [r15 + 0x414]
lea rcx, [rbp - 0x70]
mov rbx, 0xffffffffffffffff
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bc010
test rax, rax
je 0x1400bc033
lea r8, [rbp - 0x70]
mov edx, 0x104
mov rcx, rdi
call fcn.1401ebfa8
or dword [rsi], 1
mov rcx, qword [0x1402a8360]
lea rax, [0x1402a8360]
cmp rcx, rax
je 0x1400bc079
test byte [rcx + 0x1c], 4
je 0x1400bc079
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x18
mov qword [rsp + 0x20], rdi
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.PORTNUMBER1
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp - 0x70]
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bc0b0
test rax, rax
je 0x1400bc0d2
lea rcx, [rbp - 0x70]
call fcn.1401f2dc0
mov dword [r15 + 0x824], eax
or dword [rsi], 8
mov rcx, qword [0x1402a8360]
lea rdi, [0x1402a8360]
cmp rcx, rdi
je 0x1400bc11e
test byte [rcx + 0x1c], 4
je 0x1400bc11e
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x19
mov eax, dword [r15 + 0x824]
mov dword [rsp + 0x20], eax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.SNMP1
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp - 0x70]
mov rax, rbx
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bc152
xor ecx, ecx
test rax, rax
je 0x1400bc198
mov eax, ecx
lea rdx, [rbp - 0x70]
lea r8, [0x1402533f8]
movzx ecx, word [rdx + rax*2]
inc rax
cmp cx, word [r8 + rax*2 - 2]
jne 0x1400bc18b
cmp rax, 4
jne 0x1400bc170
cmp cx, word [r8 + rax*2 - 2]
sete al
mov byte [r15 + 0x828], al
or dword [rsi], 0x20
mov rcx, qword [0x1402a8360]
cmp rcx, rdi
je 0x1400bc1de
test byte [rcx + 0x1c], 4
je 0x1400bc1de
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
movzx eax, byte [r15 + 0x828]
mov edx, 0x1a
mov dword [rsp + 0x20], eax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.QUEUE1
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdi, [r15 + 0x61c]
lea rcx, [rbp - 0x70]
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bc220
test rax, rax
je 0x1400bc243
lea r8, [rbp - 0x70]
mov edx, 0x104
mov rcx, rdi
call fcn.1401ebfa8
or dword [rsi], 4
mov rcx, qword [0x1402a8360]
lea rax, [0x1402a8360]
cmp rcx, rax
je 0x1400bc289
test byte [rcx + 0x1c], 4
je 0x1400bc289
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x1b
mov qword [rsp + 0x20], rdi
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
mov rax, qword [r13]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x208
lea r9, [rbp - 0x70]
lea r8, [0x140251dfc]
lea rdx, str.LPRDspool1
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rbp - 0x70]
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bc2c0
test rax, rax
je 0x1400bc2f2
movzx ecx, word [rbp - 0x70]
sub ecx, 0x31
jne 0x1400bc2e3
movzx ecx, word [rbp - 0x6e]
xor eax, eax
movzx eax, ax
sub ecx, eax
test ecx, ecx
sete al
mov byte [r15 + 0x829], al
or dword [rsi], 2
mov rcx, qword [0x1402a8360]
lea rdi, [0x1402a8360]
cmp rcx, rdi
je 0x1400bc346
test byte [rcx + 0x1c], 4
je 0x1400bc346
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
movzx eax, byte [r15 + 0x829]
mov edx, 0x1c
mov dword [rsp + 0x20], eax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
mov rcx, qword [0x1402a8360]
mov al, 1
mov byte [rsp + 0x48], al
cmp rcx, rdi
je 0x1400bc392
test byte [rcx + 0x1c], al
je 0x1400bc392
mov r9, r14
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x1d
mov dword [rsp + 0x20], 1
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
movzx eax, byte [rsp + 0x48]
mov rcx, qword [0x1402a8360]
lea rdx, vtable.WppTrace.0
mov qword [rsp + 0x40], rdx
test al, al
jne 0x1400bc3eb
cmp rcx, rdi
je 0x1400bc3eb
test byte [rcx + 0x1c], 1
je 0x1400bc3eb
lea rax, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rax, qword [rsp + 0x50]
cmp qword [0x1402bbdc8], 8
cmovae r14, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], rax
mov r9, r14
lea r8, [0x140252818]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
lea rcx, [rsp + 0x70]
call fcn.1400048a0
lea rcx, [rsp + 0x50]
call fcn.1400048a0
nop
mov rdx, qword [r13]
sub rdx, 0x18
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400bc428
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [r12]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x1400bc44d
lfence
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x1400136d6.0]
mov eax, 1
mov rcx, qword [rbp + 0x3a0]
xor rcx, rsp
call fcn.1401e2900
mov rbx, qword [rsp + 0x4f0]
add rsp, 0x4b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret