Function at 0x1400bb470
Capabilities:
Get common file path
Read .ini file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x5208]
mov eax, 0x5308
call fcn.1401e33b0
sub rsp, rax
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x51f0], rax
mov qword [rbp - 0x80], r9
mov qword [rbp - 0x78], r8
mov rbx, rdx
mov qword [rsp + 0x68], rcx
xor edi, edi
mov dword [rsp + 0x30], edi
lea rdx, str.TcpmonIniInfo::GetTcpipPortInfoFromSysDesc
lea rcx, [rbp - 0x60]
call fcn.14001abe0
nop
lea rsi, [0x1402a8360]
lea r13, [0x1402bbdb0]
mov rcx, qword [0x1402a8360]
cmp rcx, rsi
je 0x1400bb54f
test byte [rcx + 0x1c], 1
je 0x1400bb517
mov r9, r13
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
lea edx, [rdi + 0xe]
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001ad0
mov rcx, qword [0x1402a8360]
cmp rcx, rsi
je 0x1400bb54f
test byte [rcx + 0x1c], 1
je 0x1400bb54f
mov r9, r13
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, send
mov qword [rsp + 0x20], rbx
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x1400bbd9a
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x40], rax
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x1400bbda5
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x38], rax
xor edx, edx
mov r8d, 0x5000
lea rcx, [rbp + 0x1f0]
call fcn.1401e7e40
mov edx, 0x2800
lea rcx, [rbp + 0x1f0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rcx, [rbp + 0x1f0]
mov r14, 0xffffffffffffffff
mov rax, r14
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bb5d4
mov r8d, eax
lea rdx, [rbp + 0x1f0]
lea rcx, [rsp + 0x40]
call fcn.140004e60
lea rdx, str._tcpmon.ini
mov rax, r14
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400bb600
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.140007390
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x1400bbdb0
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x48], rax
test rbx, rbx
je 0x1400bb66c
cmp rbx, 0x10000
jae 0x1400bb65b
movzx edx, bx
lea rcx, [rsp + 0x48]
call fcn.1400041d0
jmp 0x1400bb67f
mov rax, r14
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400bb660
jmp 0x1400bb66e
mov eax, edi
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.140004e60
nop
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x1400bb6a2
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
jne 0x1400bb6c6
call fcn.1401bb0c4
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
je 0x1400bbdbb
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x50], rdi
mov dword [rsp + 0x30], 1
movsxd r12, dword [rbx - 0x10]
lea rdx, [0x1402559d8]
mov rsi, r14
inc rsi
cmp word [rdx + rsi*2], 0
jne 0x1400bb6f2
lea r15d, [rsi + r12]
test r15d, r15d
js 0x1400bbd8f
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, r15d
or eax, ecx
jge 0x1400bb73c
lfence
mov edx, r15d
lea rcx, [rsp + 0x50]
call fcn.140004e00
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
lea rdx, [0x1402559d8]
movsxd rax, esi
lea rsi, [rax + rax]
test rsi, rsi
je 0x1400bb76a
test rdi, rdi
jne 0x1400bb75f
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x1400bb76a
mov r8, rsi
mov rcx, rdi
call fcn.1401e7770
mov r8, r12
add r8, r8
lea rcx, [rsi + rdi]
je 0x1400bb795
test rcx, rcx
jne 0x1400bb78d
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x1400bb795
mov rdx, rbx
call fcn.1401e7770
cmp r15d, dword [rdi - 0xc]
jg 0x1400bbd8f
mov dword [rdi - 0x10], r15d
movsxd rax, r15d
xor ecx, ecx
mov word [rdi + rax*2], cx
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x1400bb7ca
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
jne 0x1400bb7ee
call fcn.1401bb0c4
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
je 0x1400bbdc6
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
mov dword [rsp + 0x30], 3
mov rsi, r14
lea rax, [0x1402559d8]
inc rsi
cmp word [rax + rsi*2], 0
jne 0x1400bb816
movsxd r12, dword [rdi - 0x10]
lea r15d, [r12 + rsi]
test r15d, r15d
js 0x1400bbd84
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r15d
or eax, ecx
jge 0x1400bb85d
lfence
mov edx, r15d
lea rcx, [rsp + 0x58]
call fcn.140004e00
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
add r12, r12
je 0x1400bb887
test rbx, rbx
jne 0x1400bb879
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x1400bb887
mov r8, r12
mov rdx, rdi
mov rcx, rbx
call fcn.1401e7770
movsxd r8, esi
add r8, r8
lea rcx, [r12 + rbx]
je 0x1400bb8b6
test rcx, rcx
jne 0x1400bb8aa
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x1400bb8b6
lea rdx, [0x1402559d8]
call fcn.1401e7770
cmp r15d, dword [rbx - 0xc]
jg 0x1400bbd84
mov dword [rbx - 0x10], r15d
movsxd rax, r15d
xor r15d, r15d
mov word [rbx + rax*2], r15w
lea rcx, [rbx - 0x18]
mov rdi, qword [rsp + 0x38]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400bb93b
cmp dword [rdi + 0x10], r15d
jl 0x1400bb92a
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400bb92a
call fcn.140004d00
mov rbx, rax
mov ecx, r14d
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
jg 0x1400bb91a
lfence
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
mov rax, qword [r8 + 8]
call qword [case.0x1400136d6.0]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x38], rax
mov rbx, qword [rsp + 0x58]
jmp 0x1400bb93b
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140004e60
mov dword [rsp + 0x30], 1
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400bb968
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400bb991
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [0x1402a8360]
lea rsi, [0x1402a8360]
cmp rcx, rsi
je 0x1400bba24
test byte [rcx + 0x1c], 4
je 0x1400bb9e7
mov r9, r13
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.WSOCK32.dll_recv
mov qword [rsp + 0x20], rbx
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
mov rcx, qword [0x1402a8360]
cmp rcx, rsi
je 0x1400bba24
test byte [rcx + 0x1c], 4
je 0x1400bba24
mov r9, r13
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.COMCTL32.dll_InitCommonControls
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0x2800
lea r9, [rbp + 0x1f0]
lea r8, [0x140251dfc]
xor edx, edx
lea rcx, str.Ports
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x1400bbc2d
lea rdi, [rbp + 0x1f0]
cmp word [rbp + 0x1f0], 0
je 0x1400bbc2d
xor r12b, r12b
nop
test r12b, r12b
jne 0x1400bbc2d
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x38]
mov rdx, rdi
mov rax, qword [rax + 0x10]
call qword [case.0x1400136d6.0]
test eax, eax
je 0x1400bbc0c
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0xff
lea r9, [rbp - 0x10]
lea r8, [0x140251dfc]
mov rdx, rdi
lea rcx, str.Ports
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rcx, qword [0x1402a8360]
cmp rcx, rsi
je 0x1400bbb06
test byte [rcx + 0x1c], 4
je 0x1400bbb06
mov r9, r13
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, send
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
call fcn.1401bb0c4
mov rdx, rax
test rax, rax
je 0x1400bbdd1
mov rcx, qword [rax]
mov rax, qword [rcx + 0x18]
mov rcx, rdx
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rax, [rbp - 0x10]
cmp rax, 0x10000
jae 0x1400bbb4f
lea rax, [rbp - 0x10]
movzx edx, ax
lea rcx, [rsp + 0x60]
call fcn.1400041d0
jmp 0x1400bbb72
lea rcx, [rbp - 0x10]
mov rax, r14
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400bbb56
mov r8d, eax
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140004e60
nop
lea rax, [rsp + 0x70]
mov qword [rbp - 0x70], rax
mov rsi, qword [rsp + 0x60]
lea rcx, [rsi - 0x18]
call fcn.140004d00
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rcx, [rbx - 0x18]
call fcn.140004d00
add rax, 0x18
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
mov rdx, qword [rbp - 0x80]
mov qword [rsp + 0x20], rdx
mov r9, qword [rbp - 0x78]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x78]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
test eax, eax
je 0x1400bbbdb
mov r15d, 1
movzx r12d, r15b
mov eax, r14d
lock xadd dword [rsi - 8], eax
sub eax, 1
jg 0x1400bbc00
lfence
mov rcx, qword [rsi - 0x18]
mov rax, qword [rcx]
lea rdx, [rsi - 0x18]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
lea rsi, [0x1402a8360]
mov rbx, qword [rsp + 0x40]
mov rax, r14
nop
lea rax, [rax + 1]
cmp word [rdi + rax*2], 0
jne 0x1400bbc10
lea rdi, [rdi + rax*2]
add rdi, 2
cmp word [rdi], 0
jne 0x1400bba70
mov byte [rbp - 0x58], 1
mov rcx, qword [0x1402a8360]
cmp rcx, rsi
je 0x1400bbc71
test byte [rcx + 0x1c], 1
je 0x1400bbc71
mov r9, r13
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.WSOCK32.dll_send
mov dword [rsp + 0x20], r15d
lea r8, [0x14025b318]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400bbc9b
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400bbcc5
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x1400bbcee
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
lea rax, vtable.WppTrace.0
mov qword [rbp - 0x60], rax
cmp byte [rbp - 0x58], 0
jne 0x1400bbd4c
mov rcx, qword [0x1402a8360]
cmp rcx, rsi
je 0x1400bbd4c
test byte [rcx + 0x1c], 1
je 0x1400bbd4c
lea r8, [rbp - 0x50]
cmp qword [rbp - 0x38], 8
cmovae r8, qword [rbp - 0x50]
cmp qword [0x1402bbdc8], 8
cmovae r13, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], r8
mov r9, r13
lea r8, [0x140252818]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
lea rcx, [rbp - 0x30]
call fcn.1400048a0
lea rcx, [rbp - 0x50]
call fcn.1400048a0
mov eax, r15d
mov rcx, qword [rbp + 0x51f0]
xor rcx, rsp
call fcn.1401e2900
add rsp, 0x5308
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80070057
call fcn.140001470
nop
mov ecx, 0x80070057
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
int3