Function at 0x420a94
Capabilities:
Connect socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
mov eax, 0x432437
call sub.MSVCRT.dll__EH_prolog
sub esp, 0x7e0
push ebx
push ebp
push esi
push edi
mov edi, str.SOFTWAREArray_NetworksArray_SSL_VPN
push 1
mov esi, reloc.WS2_32.dll_bind
xor ebp, ebp
push edi
push esi
lea ecx, [esp + 0x48]
mov dword [esp + 0x20], ebp
call fcn.0041d2d7
cmp dword [esp + 0x3c], ebp
mov dword [esp + 0x7f8], ebp
jne 0x420b8c
push 0xf003f
push edi
push esi
call fcn.0041d345
mov esi, eax
add esp, 0xc
cmp esi, ebp
je 0x420af8
mov eax, dword [esi]
cmp eax, ebp
je 0x420af8
push eax
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
cmp dword [0x441ff4], ebp
je 0x420b7a
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x420b1b
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x420b7a
cmp eax, 3
jle 0x420b7a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov ebx, eax
jge 0x420b3d
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x420b6c
push 3
push dword [0x43d8ac]
push 0x35
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push str.SharedMem:_attempting_to_create_Product_reg_key._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp esi, ebp
je 0x420b8c
mov ecx, esi
call fcn.0041d3c3
push esi
call sub.MFC42.DLL_operatordelete
pop ecx
lea eax, [esp + 0x20]
lea ecx, [esp + 0x3c]
push eax
push str.UtilSocketPort
call fcn.0041d717
cmp dword [esp + 0x20], ebp
jne 0x420c32
cmp dword [0x441ff4], ebp
je 0x420c2b
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x420bcc
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x420c2b
cmp eax, 1
jle 0x420c2b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x420bee
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x420c1d
push 1
push dword [0x43d8ac]
push 0x3c
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push str.service_not_ready_yet_n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
jmp 0x421233
push str.127.0.0.1
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esp + 0x28], eax
push 0x10
lea eax, [esp + 0x30]
push ebp
push eax
call sub.MSVCRT.dll_memset
push 2
lea eax, [esp + 0x38]
pop ebx
push 4
push eax
lea eax, [esp + 0x44]
mov word [esp + 0x40], bx
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0x18
push dword [esp + 0x20]
call dword [sym.imp.WS2_32.dll_htons]
mov esi, dword [sym.imp.WS2_32.dll_socket]
push ebp
push 1
mov word [esp + 0x36], ax
xor edi, edi
push ebx
call esi
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x420d51
cmp edi, 1
jge 0x420c2b
lea eax, [esp + 0x660]
inc edi
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x420cb7
push ebp
push 1
push ebx
jmp 0x420c85
cmp dword [0x441ff4], ebp
je 0x420d39
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x420cda
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x420d39
cmp eax, 1
jle 0x420d39
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x420cfc
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x420d2b
push 1
push dword [0x43d8ac]
push 0x55
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push str.in_SendTCPToUtility_try_to_initialize_socket_fail._n
call fcn.0041c506
add esp, 0x14
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
or dword [esp + 0x7f8], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.0041d3c3
xor eax, eax
jmp 0x421246
lea eax, [esp + 0x2c]
push 0x10
push eax
push dword [esp + 0x20]
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x421018
mov eax, dword [esp + 0x804]
cmp eax, ebx
jne 0x420d82
mov dword [esp + 0x14], 1
jmp 0x4210b1
mov ecx, dword [esp + 0x80c]
mov edx, dword [esp + 0x808]
mov dword [esp + 0x260], eax
xor ebx, ebx
lea eax, [ecx + 8]
lea esi, [esp + 0x268]
cmp edx, ebp
mov dword [esp + 0x10], 8
mov dword [esp + 0x1c], 0x3f8
mov dword [esp + 0x14], edx
mov dword [esp + 0x264], eax
mov dword [esp + 0x24], esi
je 0x420ddf
cmp ecx, ebp
jle 0x420ddf
cmp eax, ebp
mov dword [esp + 0x10], eax
jle 0x421006
jmp 0x420ddf
mov ecx, dword [esp + 0x80c]
cmp ebx, 0xffffffff
je 0x421006
cmp dword [esp + 0x808], ebp
je 0x420e0c
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jge 0x420dfb
mov eax, ecx
push eax
push dword [esp + 0x18]
push dword [esp + 0x2c]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
cmp dword [0x441ff4], ebp
je 0x420ea4
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x420e33
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x420ea4
cmp eax, 3
jle 0x420ea4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x420e55
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x420e96
push 3
push dword [0x43d8ac]
push 0x78
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
mov eax, 0x400
add esp, 0x10
cmp dword [esp + 0x10], eax
jae 0x420e84
mov eax, dword [esp + 0x10]
push eax
push str._attempting_to_send__d_bytes._n
call fcn.0041c506
pop ecx
pop ecx
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 0x10]
mov ecx, 0x400
cmp eax, ecx
jb 0x420eb3
mov eax, ecx
push ebp
push eax
lea eax, [esp + 0x268]
push eax
push dword [esp + 0x24]
call dword [sym.imp.WS2_32.dll_send]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x420f75
cmp dword [0x441ff4], ebp
je 0x420f55
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x420ef5
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x420f55
cmp eax, 3
jle 0x420f55
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x420f17
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x420f47
push 3
push dword [0x43d8ac]
push 0x7c
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push ebx
push str._sent__d_bytes._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
add dword [esp + 0x14], ebx
sub dword [esp + 0x10], ebx
lea eax, [esp + 0x260]
mov dword [esp + 0x1c], 0x400
mov dword [esp + 0x24], eax
jmp 0x420ffc
cmp dword [0x441ff4], ebp
je 0x420ffc
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x420f98
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x420ffc
cmp eax, 1
jle 0x420ffc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x420fba
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x420fee
push 1
push dword [0x43d8ac]
push 0x84
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push 0xffffffffffffffff
push str._failed_to_send_data:_error_0x_x._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esp + 0x10], ebp
jg 0x420dd8
xor eax, eax
cmp dword [esp + 0x10], ebp
sete al
mov dword [esp + 0x14], eax
jmp 0x4210b1
cmp dword [0x441ff4], ebp
je 0x4210b1
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x42103f
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x4210b1
cmp eax, 1
jle 0x4210b1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x421061
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x4210a3
push 1
push dword [0x43d8ac]
push 0x8c
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push 0x400
push 0x442004
call fcn.0041dbd3
push eax
push str.failed_to_connect_to_TCP_socket:__s._n
call fcn.0041c506
add esp, 0x20
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esp + 0x814], ebp
je 0x421175
mov esi, dword [esp + 0x818]
cmp esi, ebp
je 0x421175
push ebp
push dword [esi]
push dword [esp + 0x81c]
push dword [esp + 0x24]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [esi], eax
cmp dword [0x441ff4], ebp
je 0x421225
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 3
je 0x421112
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x421225
cmp eax, 3
jle 0x421225
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov ebx, eax
jge 0x421134
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x421168
push 3
push dword [0x43d8ac]
push 0x91
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
push dword [esi]
push str.in_SendTCPToUtility_wait_for_the_result_len:0X_X._n
call fcn.0041c506
add esp, 0x18
call fcn.0041c4cc
push edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
jmp 0x42121f
mov eax, dword [esp + 0x810]
push ebp
push 4
push eax
push dword [esp + 0x24]
mov dword [eax], ebp
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 4
je 0x421225
cmp dword [0x441ff4], ebp
je 0x421225
mov eax, dword [0x441fd4]
mov eax, dword [eax]
cmp eax, 1
je 0x4211bc
mov ecx, dword [0x441fdc]
cmp dword [ecx], ebp
jne 0x421225
cmp eax, 1
jle 0x421225
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [0x43d8ac], ebp
mov edi, eax
jge 0x4211e0
mov eax, dword [0x441fa0]
mov dword [0x43d8ac], eax
call fcn.0041c4b1
test eax, eax
je 0x421217
push 1
push dword [0x43d8ac]
push 0x98
push str.C:_build_rel_sp_8_4_6_2_srcwindowsSHAREDutility_apiext.cpp
call fcn.0041c4e1
add esp, 0x10
call ebx
push eax
push str.in_SendTCPToUtility_wait_for_result_fail.0X_X._n
call fcn.0041c506
pop ecx
pop ecx
call fcn.0041c4cc
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [esp + 0x18]
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, dword [esp + 0x14]
or dword [esp + 0x7f8], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.0041d3c3
mov eax, esi
mov ecx, dword [esp + 0x7f0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret