Function at 0x4070b0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x41a0fc
push eax
mov eax, 0x1f54
mov dword fs:[0], esp
call fcn.00419af0
push ebx
push ebp
mov ebx, ecx
xor eax, eax
push esi
push edi
mov byte [esp + 0xf64], 0
mov ecx, 0xff
lea edi, [esp + 0xf65]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ebp, dword [esp + 0x1f8c]
xor eax, eax
mov byte [esp + 0x64], 0
mov ecx, 0xff
lea edi, [esp + 0x65]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x564], 0
xor eax, eax
mov ecx, 0x7f
lea edi, [esp + 0x565]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x4268b4
mov ecx, ebp
mov dword [esp + 0x20], ebx
xor esi, esi
stosb byte es:[edi], al
call fcn.00412340
push 1
push esi
push esi
push esi
push 1
mov edi, 2
push edi
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
jne 0x407180
push 0x4268a0
mov ecx, ebp
call fcn.00412340
push str._CreateSocketAndHandshake__create_TCP_socket_fail
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x10
or eax, 0xffffffff
jmp 0x408055
mov al, byte [ebx + 0x804]
test al, al
je 0x4071c7
push str._CreateSocketAndHandshake__use_http_proxy_server_to_connect_to_server
push 1
push 1
call fcn.004195d0
push eax
call fcn.00419410
xor eax, eax
mov ax, word [ebx + 0x80c]
add esp, 0x10
mov word [esp + 0x20], di
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebx + 0x808]
mov word [esp + 0x22], ax
mov dword [esp + 0x24], ecx
jmp 0x407201
push str._CreateSocketAndHandshake__direct_connect_to_server
push 1
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov edx, dword [esp + 0x1f88]
add esp, 0x10
push edx
mov word [esp + 0x24], di
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x22], ax
mov eax, dword [esp + 0x1f74]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x1f88]
test ebp, ebp
jne 0x407245
push str._CreateSocketAndHandshake__no_cancel_event__start_blocking_connect
push 1
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov edx, dword [esp + 0x40]
add esp, 0x10
push ebp
push ebp
push ebp
push ebp
push 0x10
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_WSAConnect]
mov esi, eax
neg esi
sbb esi, esi
inc esi
jmp 0x407313
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
push 0x10
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x34]
push eax
push ebp
mov dword [esp + 0x1c], eax
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
jne 0x407288
mov ecx, dword [esp + 0x1f8c]
push 0x426798
call fcn.00412340
mov edx, ebp
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
mov eax, dword [esp + 0x10]
push eax
push ebp
push str._CreateSocketAndHandshake__WSAEventSelect_socket__u__event_0x_p__FD_CONNECT__success__start_non_blocking_connect
push 1
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x18
push 0
push 0
push 0
push 0
push 0x10
lea ecx, [esp + 0x34]
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_WSAConnect]
test eax, eax
jne 0x4072c6
mov esi, 1
jmp 0x407308
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x407306
mov eax, dword [esp + 0x1f84]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
push edx
push 0
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
sub eax, 0
je 0x407407
dec eax
je 0x407306
sub eax, 0x101
xor esi, esi
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x407437
lea ecx, [esp + 0x10]
call dword [sym.imp.util.dll_public:_void___thiscall_WinsockLastError::constructor_void_]
mov al, byte [ebx + 0x804]
test al, al
mov dword [esp + 0x1f6c], esi
je 0x4073df
lea ecx, [esp + 0x10]
call dword [sym.imp.util.dll_public:_char____thiscall_WinsockLastError::operator_char__void_]
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.util.dll_public:_int___thiscall_LastError::operator_int_void_const]
mov ecx, dword [esp + 0x26]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push edx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push 0x4266ec
lea eax, [esp + 0x778]
push 0x800
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
mov al, byte [0x423760]
add esp, 0x1c
test al, al
je 0x4073c0
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x429ee8
call fcn.00405970
mov eax, dword [eax]
push 0x40010
push eax
lea edx, [esp + 0x76c]
push edx
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x764]
push eax
push str._CreateSocketAndHandshake___s
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x14
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 0xffffffff
call dword [sym.imp.util.dll_public:_void___thiscall_LastError::destructor_void_]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x38]
push ecx
push edx
push ebp
call dword [sym.imp.WS2_32.dll_WSAEnumNetworkEvents]
cmp eax, 0xffffffff
je 0x407308
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x407308
mov esi, 1
jmp 0x407308
mov ecx, dword [esp + 0x22]
mov ebp, dword [sym.imp.WS2_32.dll_ntohs]
push ecx
call ebp
mov edx, dword [esp + 0x24]
mov esi, dword [sym.imp.WS2_32.dll_inet_ntoa]
and eax, 0xffff
push eax
push edx
call esi
push eax
mov eax, dword [esp + 0x38]
push eax
push str._CreateSocketAndHandshake__WSWSAConnect_sock_d_addr_s_port_d__success
push 1
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [ebx + 0x804]
add esp, 0x1c
test al, al
je 0x407a0c
mov ecx, dword [esp + 0x1f74]
push ecx
call esi
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x810]
test cl, cl
je 0x40753f
mov dl, byte [eax + 0x811]
test dl, dl
lea ecx, [eax + 0x811]
je 0x40753f
mov dl, byte [eax + 0x891]
add eax, 0x891
test dl, dl
je 0x40753f
push eax
push ecx
push str._s:_s
lea edx, [esp + 0x470]
push pe_nt_image_headers32
push edx
call dword [sym.imp.MSVCRT.dll__snprintf]
lea eax, [esp + 0x578]
push eax
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x47c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x480]
push ecx
call dword [sym.imp.mcl.dll_mcl_Base64Encode]
add esp, 0x20
mov byte [esp + eax + 0x564], 0
mov eax, dword [esp + 0x1f78]
lea edx, [esp + 0x564]
push edx
push ebx
and eax, 0xffff
push eax
push ebx
lea eax, [esp + 0xf74]
push str.CONNECT__s:_d_HTTP_1.0_r_nUser_Agent:_Mozilla_4.0__compatible__MSIE_6.0__Windows_NT_5.1__SV1__r_nHost:__s_r_nContent_Length:_0_r_nProxy_Connection:_Keep_Alive_r_nPragma:_no_cache_r_nProxy_Authorization:_Basic__s_r_n_r_n
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x18
jmp 0x407564
mov eax, dword [esp + 0x1f78]
push ebx
and eax, 0xffff
push eax
push ebx
lea ecx, [esp + 0xf70]
push str.CONNECT__s:_d_HTTP_1.0_r_nUser_Agent:_Mozilla_4.0__compatible__MSIE_6.0__Windows_NT_5.1__SV1__r_nHost:__s_r_nContent_Length:_0_r_nProxy_Connection:_Keep_Alive_r_nPragma:_no_cache_r_n_r_n
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x14
mov ebx, dword [esp + 0x30]
push 0
mov edi, eax
push edi
lea edx, [esp + 0xf6c]
push edx
push ebx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, edi
je 0x40767e
lea ecx, [esp + 0x10]
call dword [sym.imp.util.dll_public:_void___thiscall_WinsockLastError::constructor_void_]
mov edi, dword [sym.imp.util.dll_public:_char____thiscall_WinsockLastError::operator_char__void_]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 1
call edi
mov ebx, dword [sym.imp.util.dll_public:_int___thiscall_LastError::operator_int_void_const]
push eax
lea ecx, [esp + 0x14]
call ebx
push eax
mov eax, dword [esp + 0x2a]
push eax
call ebp
mov ecx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push ecx
call esi
push eax
push 0x4264c8
lea edx, [esp + 0x778]
push 0x800
push edx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x1c
lea ecx, [esp + 0x10]
call edi
push eax
lea ecx, [esp + 0x14]
call ebx
push eax
mov eax, dword [esp + 0x2a]
push eax
call ebp
mov ecx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push ecx
call esi
push eax
push str._CreateSocketAndHandshake_
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x20
test al, al
je 0x407656
lea edx, [esp + 0x18]
push edx
mov ecx, 0x429ee8
call fcn.00405970
mov eax, dword [eax]
push 0x40010
push eax
lea eax, [esp + 0x76c]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 0xffffffff
call dword [sym.imp.util.dll_public:_void___thiscall_LastError::destructor_void_]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
mov ecx, dword [esp + 0x1f84]
push ecx
push ebx
call fcn.00406b30
add esp, 8
test eax, eax
jne 0x407736
mov edx, dword [esp + 0x22]
push edx
call ebp
and eax, 0xffff
push eax
mov eax, dword [esp + 0x28]
push eax
call esi
push eax
push 0x42644c
lea ecx, [esp + 0x770]
push 0x800
push ecx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x14
lea edx, [esp + 0x764]
push edx
push str._CreateSocketAndHandshake___s
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x14
test al, al
je 0x408020
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x429ee8
call fcn.00405970
mov ecx, dword [eax]
push 0x40010
push ecx
lea edx, [esp + 0x76c]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
push 0
push 0x400
lea eax, [esp + 0x6c]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40784e
lea ecx, [esp + 0x10]
call dword [sym.imp.util.dll_public:_void___thiscall_WinsockLastError::constructor_void_]
mov edi, dword [sym.imp.util.dll_public:_char____thiscall_WinsockLastError::operator_char__void_]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 2
call edi
mov ebx, dword [sym.imp.util.dll_public:_int___thiscall_LastError::operator_int_void_const]
push eax
lea ecx, [esp + 0x14]
call ebx
mov ecx, dword [esp + 0x26]
push eax
push ecx
call ebp
mov edx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push edx
call esi
push eax
push 0x426414
lea eax, [esp + 0x778]
push 0x800
push eax
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x1c
lea ecx, [esp + 0x10]
call edi
push eax
lea ecx, [esp + 0x14]
call ebx
mov ecx, dword [esp + 0x26]
push eax
push ecx
call ebp
mov edx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push edx
call esi
push eax
push 0x4263c0
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x20
test al, al
je 0x407826
lea eax, [esp + 0x18]
push eax
mov ecx, 0x429ee8
call fcn.00405970
mov eax, dword [eax]
push 0x40010
push eax
lea ecx, [esp + 0x76c]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 0xffffffff
call dword [sym.imp.util.dll_public:_void___thiscall_LastError::destructor_void_]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
mov ebx, dword [sym.imp.MSVCRT.dll__strnicmp]
push 0xc
lea edx, [esp + 0x68]
push str.HTTP_1.0_407
push edx
call ebx
add esp, 0xc
test eax, eax
je 0x407c9a
push 0xc
lea eax, [esp + 0x68]
push str.HTTP_1.0_401
push eax
call ebx
add esp, 0xc
test eax, eax
je 0x407c9a
push 0xc
lea ecx, [esp + 0x68]
push str.HTTP_1.1_407
push ecx
call ebx
add esp, 0xc
test eax, eax
je 0x407c9a
push 0xc
lea edx, [esp + 0x68]
push str.HTTP_1.1_401
push edx
call ebx
add esp, 0xc
test eax, eax
je 0x407c9a
push 0xc
lea eax, [esp + 0x68]
push str.HTTP_1.0_200
push eax
call ebx
add esp, 0xc
test eax, eax
je 0x4079a0
push 0xc
lea ecx, [esp + 0x68]
push str.HTTP_1.1_200
push ecx
call ebx
add esp, 0xc
test eax, eax
je 0x4079a0
mov eax, dword [esp + 0x22]
lea edx, [esp + 0x64]
push edx
push eax
call ebp
mov ecx, dword [esp + 0x28]
and eax, 0xffff
push eax
push ecx
call esi
push eax
push 0x42631c
lea edx, [esp + 0x774]
push 0x800
push edx
call dword [sym.imp.MSVCRT.dll__snprintf]
mov ecx, dword [esp + 0x3a]
add esp, 0x18
lea eax, [esp + 0x64]
push eax
push ecx
call ebp
mov edx, dword [esp + 0x28]
and eax, 0xffff
push eax
push edx
call esi
push eax
push 0x4262d4
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x1c
test al, al
je 0x408020
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x429ee8
call fcn.00405970
mov ecx, dword [eax]
push 0x40010
push ecx
lea edx, [esp + 0x76c]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
lea eax, [esp + 0x64]
push str._r_n_r_n
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x407a0c
mov ecx, dword [esp + 0x1f84]
mov ebx, dword [esp + 0x30]
push ecx
push ebx
call fcn.00406b30
add esp, 8
test eax, eax
je 0x407aa6
push 0
mov edx, 0x400
sub edx, edi
push edx
lea eax, [esp + edi + 0x6c]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x407ba0
lea ecx, [esp + 0x64]
push str._r_n_r_n
push ecx
add edi, eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x4079b7
mov ecx, dword [esp + 0x1f8c]
push 0x4262b8
call fcn.00412340
push str._CreateSocketAndHandshake__send_hello
push 1
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov esi, dword [esp + 0x1f8c]
mov ebx, dword [esp + 0x40]
add esp, 0x10
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
push 0
not ecx
dec ecx
push ecx
push esi
push ebx
call dword [sym.imp.WS2_32.dll_send]
or ecx, 0xffffffff
mov edx, eax
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
je 0x407d50
push esi
push str._CreateSocketAndHandshake__send_hello__s_to_server_fail
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov ecx, dword [esp + 0x1fa0]
add esp, 0x14
push 0x426240
call fcn.00412340
mov edx, ebx
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
lea ecx, [esp + 0x10]
call dword [sym.imp.util.dll_public:_void___thiscall_WinsockLastError::constructor_void_]
mov edi, dword [sym.imp.util.dll_public:_char____thiscall_WinsockLastError::operator_char__void_]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 3
call edi
mov ebx, dword [sym.imp.util.dll_public:_int___thiscall_LastError::operator_int_void_const]
push eax
lea ecx, [esp + 0x14]
call ebx
mov edx, dword [esp + 0x26]
push eax
push edx
call ebp
and eax, 0xffff
push eax
mov eax, dword [esp + 0x30]
push eax
call esi
push eax
push 0x426414
lea ecx, [esp + 0x778]
push 0x800
push ecx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x1c
lea ecx, [esp + 0x10]
call edi
push eax
lea ecx, [esp + 0x14]
call ebx
mov edx, dword [esp + 0x26]
push eax
push edx
call ebp
and eax, 0xffff
push eax
mov eax, dword [esp + 0x30]
push eax
call esi
push eax
push 0x4263c0
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x20
test al, al
je 0x407b78
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x429ee8
call fcn.00405970
mov eax, dword [eax]
push 0x40010
push eax
lea edx, [esp + 0x76c]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 0xffffffff
call dword [sym.imp.util.dll_public:_void___thiscall_LastError::destructor_void_]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
lea ecx, [esp + 0x10]
call dword [sym.imp.util.dll_public:_void___thiscall_WinsockLastError::constructor_void_]
mov edi, dword [sym.imp.util.dll_public:_char____thiscall_WinsockLastError::operator_char__void_]
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 4
call edi
mov ebx, dword [sym.imp.util.dll_public:_int___thiscall_LastError::operator_int_void_const]
push eax
lea ecx, [esp + 0x14]
call ebx
push eax
mov eax, dword [esp + 0x2a]
push eax
call ebp
mov ecx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push ecx
call esi
push eax
push 0x426414
lea edx, [esp + 0x778]
push 0x800
push edx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x1c
lea ecx, [esp + 0x10]
call edi
push eax
lea ecx, [esp + 0x14]
call ebx
push eax
mov eax, dword [esp + 0x2a]
push eax
call ebp
mov ecx, dword [esp + 0x2c]
and eax, 0xffff
push eax
push ecx
call esi
push eax
push 0x4263c0
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x20
test al, al
je 0x407c72
lea edx, [esp + 0x18]
push edx
mov ecx, 0x429ee8
call fcn.00405970
mov eax, dword [eax]
push 0x40010
push eax
lea eax, [esp + 0x76c]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1f6c], 0xffffffff
call dword [sym.imp.util.dll_public:_void___thiscall_LastError::destructor_void_]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
mov edx, dword [esp + 0x22]
lea ecx, [esp + 0x64]
push ecx
push edx
call ebp
and eax, 0xffff
push eax
mov eax, dword [esp + 0x2c]
push eax
call esi
push eax
push 0x42631c
lea ecx, [esp + 0x774]
push 0x800
push ecx
call dword [sym.imp.MSVCRT.dll__snprintf]
mov eax, dword [esp + 0x3a]
add esp, 0x18
lea edx, [esp + 0x64]
push edx
push eax
call ebp
mov ecx, dword [esp + 0x28]
and eax, 0xffff
push eax
push ecx
call esi
push eax
push 0x4262d4
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov al, byte [0x423760]
add esp, 0x1c
test al, al
je 0x408020
lea edx, [esp + 0x1c]
push edx
mov ecx, 0x429ee8
call fcn.00405970
mov eax, dword [eax]
push 0x40010
push eax
lea ecx, [esp + 0x76c]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
xor esi, esi
mov ebp, dword [esp + 0x1f8c]
push 0x426230
mov ecx, ebp
call fcn.00412340
mov edi, dword [esp + 0x1f84]
push edi
push ebx
call fcn.00406b30
add esp, 8
test eax, eax
je 0x407dff
push 0x426220
mov ecx, ebp
call fcn.00412340
push 0
mov edx, 0x800
sub edx, esi
push edx
lea eax, [esp + esi + 0x136c]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x407e36
add esi, eax
cmp esi, 4
mov byte [esp + esi + 0x1364], 0
jl 0x407d52
push 4
lea ecx, [esp + 0x1368]
push 0x426218
push ecx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x407e6c
mov edi, dword [sym.imp.MSVCRT.dll_strstr]
lea edx, [esp + 0x1364]
push str._r_n_r_n
push edx
call edi
add esp, 8
test eax, eax
jne 0x407e99
jmp 0x407d52
push edi
push str._CreateSocketAndHandshake__server_has_no_response_in__d_seconds
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x14
push 0x4261c4
mov ecx, ebp
call fcn.00412340
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
push str._CreateSocketAndHandshake__receive_response_from_server_fail
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x10
push 0x426170
mov ecx, ebp
call fcn.00412340
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
push 0x426160
mov ecx, ebp
call fcn.00412340
push str._CreateSocketAndHandshake___Invalid_gateway_protocol:_not_HTTP_protocol.
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x10
push 0x4260f8
jmp 0x408015
lea esi, [eax + 4]
lea eax, [esp + 0x1364]
push 0x20
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x407f95
lea ecx, [esp + 0x18]
push ecx
inc eax
push 0x4260f4
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
test eax, eax
je 0x407f95
lea edx, [esp + 0x1364]
push 0x4260e0
push edx
call edi
add esp, 8
test eax, eax
jne 0x407f50
mov dword [esp + 0x34], eax
cmp dword [esp + 0x18], 0xc8
je 0x407fbf
push 0x426160
mov ecx, ebp
call fcn.00412340
lea edx, [esp + 0x1364]
push edx
push str._CreateSocketAndHandshake___Gateway_protocol_error:__s.
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
mov eax, dword [esp + 0x2c]
add esp, 0x14
push esi
push eax
lea ecx, [esp + 0x1b6c]
push 0x42608c
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea edx, [esp + 0x1b64]
push edx
jmp 0x408015
lea ecx, [esp + 0x34]
push ecx
push str.Content_Length:__d
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
add esp, 0xc
test eax, eax
jne 0x407eee
push 0x426160
mov ecx, ebp
call fcn.00412340
push str._CreateSocketAndHandshake___Invalid_gateway_protocol:_read_Content_Length_fail.
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x10
push 0x426000
jmp 0x408015
push 0x426160
mov ecx, ebp
call fcn.00412340
push str._CreateSocketAndHandshake___Invalid_gateway_protocol:_not_HTTP__no_response_code.
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x10
push 0x425f90
jmp 0x408015
mov esi, dword [esp + 0x1f80]
or ecx, 0xffffffff
xor eax, eax
mov edi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea eax, [esp + 0x1368]
push esi
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x408030
lea ecx, [esp + 0x1364]
push ecx
push str._CreateSocketAndHandshake___server_send_nagative_response:__s.
push 5
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x14
push 0x425f40
mov ecx, ebp
call fcn.00412340
push esi
mov ecx, dword [esp + 0x20]
push 0x25
call fcn.00402ef0
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
jmp 0x408055
push str._CreateSocketAndHandshake__receive_server_welcome.
push 2
push 1
call fcn.004195d0
push eax
call fcn.00419410
add esp, 0x10
push 0x425efc
mov ecx, ebp
call fcn.00412340
mov eax, ebx
mov ecx, dword [esp + 0x1f64]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1f60
ret 0x1c