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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x1008216c
push eax
mov eax, 0x14ac
mov dword fs:[0], esp
call fcn.1002c9f0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0xbd]
mov byte [esp + 0xbc], 0
xor esi, esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x14d8]
lea ecx, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], esi
mov ecx, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x1c], esi
call fcn.10004cb0
test al, al
jne 0x10004dd5
mov ebx, dword [esp + 0x14cc]
mov dl, byte [esp + 0x13]
mov byte [ebx], dl
jmp 0x10004df5
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x10004e22
mov ebx, dword [esp + 0x14cc]
mov al, byte [esp + 0x13]
mov byte [ebx], al
push esi
mov ecx, ebx
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x10099524
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10099524
mov ecx, ebx
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, ebx
jmp 0x100055dc
push 0x50
mov word [esp + 0x70], 2
call dword [sym.imp.WS2_32.dll_htons]
mov esi, dword [esp + 0x14d0]
mov word [esp + 0x6e], ax
push esi
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x10004e82
mov esi, dword [esp + 0x14cc]
mov cl, byte [esp + 0x13]
push eax
mov byte [esi], cl
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, str.host_addr__NULL
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.host_addr__NULL
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, esi
jmp 0x100055dc
mov edx, dword [eax + 0xc]
push 0x10
mov eax, dword [edx]
lea edx, [esp + 0x70]
push edx
push ebx
mov ecx, dword [eax]
mov dword [esp + 0x7c], ecx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x10004ee2
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, dword [esp + 0x14cc]
mov al, byte [esp + 0x13]
push 0
mov ecx, esi
mov byte [esi], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x10099524
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10099524
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, esi
jmp 0x100055dc
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x1c], cl
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x1009fd90
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x1009fd90
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14c8], 0
mov byte [esp + 0x2c], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x1009fd90
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x1009fd90
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov edi, str.POST
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x14c4], 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.POST
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edx, dword [esp + 0x14d4]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str._HTTP_1.1_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str._HTTP_1.1_r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Host:
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Host:
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, 0x10099a94
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10099a94
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.User_Agent:_Mozilla_4.0_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.User_Agent:_Mozilla_4.0_r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Connection:_Keep_Alive_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Connection:_Keep_Alive_r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Accept:___r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Accept:___r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Pragma:_no_cache_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Pragma:_no_cache_r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Connection:_Keep_Alive_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Connection:_Keep_Alive_r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Content_Type:_multipart_form_data__boundary____________________________64b23e4066ed_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Content_Type:_multipart_form_data__boundary____________________________64b23e4066ed_r_n
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.______________________________64b23e4066ed_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.______________________________64b23e4066ed_r_n
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Content_Disposition:_form_data__name_avatar_file___filename_C:1.jpg__r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Content_Disposition:_form_data__name_avatar_file___filename_C:1.jpg__r_n
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov edi, str.Content_Type:image_pjpeg_r_n_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Content_Type:image_pjpeg_r_n_r_n
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x40]
mov byte [esp + 0x40], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, str._r_n______________________________64b23e4066ed_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str._r_n______________________________64b23e4066ed_r_n
lea ecx, [esp + 0x44]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov edx, dword [esp + 0x44]
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x7d]
mov byte [esp + 0x7c], 0
mov byte [esp + 0x14c4], 2
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x30]
stosw word es:[edi], ax
add edx, ecx
mov ecx, dword [ebp + 0x20]
add edx, ecx
stosb byte es:[edi], al
push edx
lea eax, [esp + 0x80]
push str.Content_Length:__d_r_n_r_n
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x88]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x60]
mov byte [esp + 0x60], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [esp + 0x14c4], 3
lea edx, [esp + 0x18]
mov ecx, dword [eax]
push ecx
push 0
push edx
lea ecx, [esp + 0x68]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edx, dword [ecx]
lea ecx, [esp + 0x28]
push edx
push 0
push ecx
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x10005219
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edx, dword [esp + 0x64]
push 0
push edx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
mov eax, dword [esp + 0x38]
xor esi, esi
xor ebp, ebp
mov eax, dword [eax + 0x20]
cmp eax, esi
jle 0x10005295
lea ecx, [ebp + 0x1001]
cmp ecx, eax
jle 0x10005245
sub eax, ebp
jmp 0x1000524a
mov eax, 0x1000
mov edx, dword [esp + 0x14]
mov ecx, eax
lea edi, [esp + 0x4bc]
push 0
lea esi, [edx + ebp]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
lea eax, [esp + 0x4c4]
and ecx, 3
push eax
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.WS2_32.dll_send]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x38]
add ebp, 0x1000
mov eax, dword [ecx + 0x20]
cmp ebp, eax
jl 0x10005237
xor esi, esi
mov eax, dword [esp + 0x40]
cmp eax, esi
jne 0x100052a2
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edx, dword [esp + 0x44]
push esi
push edx
push eax
push ebx
call dword [sym.imp.WS2_32.dll_send]
push esi
lea eax, [esp + 0xc0]
push 0x400
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, esi
je 0x100053cc
cmp eax, 0x2746
je 0x100053cc
cmp eax, 0xffffffff
push ebx
jne 0x10005484
call dword [sym.imp.WS2_32.dll_closesocket]
mov ebp, dword [esp + 0x14cc]
mov cl, byte [esp + 0x13]
push esi
mov byte [ebp], cl
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x10099524
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, ebp
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x10005344
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x10099524
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add eax, ebx
xor esi, esi
mov byte [eax], 0
push 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x14c8], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c8], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, dword [esp + 0x2c]
cmp ecx, esi
je 0x10005390
mov al, byte [ecx - 1]
test al, al
je 0x10005386
cmp al, 0xff
je 0x10005386
dec al
mov byte [ecx - 1], al
jmp 0x10005390
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], esi
cmp ecx, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x100053c5
mov al, byte [ecx - 1]
test al, al
je 0x100053bb
cmp al, 0xff
je 0x100053bb
dec al
mov byte [ecx - 1], al
mov eax, ebp
jmp 0x100055dc
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, ebp
jmp 0x100055dc
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov ebx, dword [esp + 0x14cc]
mov al, byte [esp + 0x13]
push esi
mov ecx, ebx
mov byte [ebx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x10099524
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
mov ecx, ebx
push ebp
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x1000542a
mov edi, dword [ebx + 4]
mov ecx, ebp
mov edx, ecx
mov esi, 0x10099524
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x14c8], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c8], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x2c]
mov byte [esp + 0x14c8], 0
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14c8], 0xffffffff
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, ebx
jmp 0x100055dc
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [esp + 0x14]
push eax
call sub.MFC42.DLL_operatordelete
mov cl, byte [esp + 0x17]
add esp, 4
mov byte [esp + 0x4c], cl
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x4c]
lea eax, [esp + 0xbc]
push edx
push eax
mov byte [esp + 0x14cc], 4
call fcn.10003a60
mov edi, dword [esp + 0x14cc]
mov cl, byte [esp + 0x4c]
push esi
mov byte [edi], cl
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x4c]
mov eax, dword [edx]
push eax
push esi
push ecx
mov ecx, edi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, dword [esp + 0x50]
cmp ecx, esi
je 0x1000551a
mov al, byte [ecx - 1]
test al, al
je 0x10005510
cmp al, 0xff
je 0x10005510
dec al
mov byte [ecx - 1], al
jmp 0x1000551a
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x50], esi
cmp ecx, esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
je 0x1000554a
mov al, byte [ecx - 1]
test al, al
je 0x10005540
cmp al, 0xff
je 0x10005540
dec al
mov byte [ecx - 1], al
jmp 0x1000554a
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x60], esi
cmp ecx, esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
je 0x1000557a
mov al, byte [ecx - 1]
test al, al
je 0x10005570
cmp al, 0xff
je 0x10005570
dec al
mov byte [ecx - 1], al
jmp 0x1000557a
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x40], esi
cmp ecx, esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x100055aa
mov al, byte [ecx - 1]
test al, al
je 0x100055a0
cmp al, 0xff
je 0x100055a0
dec al
mov byte [ecx - 1], al
jmp 0x100055aa
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], esi
cmp ecx, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
je 0x100055da
mov al, byte [ecx - 1]
test al, al
je 0x100055d0
cmp al, 0xff
je 0x100055d0
dec al
mov byte [ecx - 1], al
jmp 0x100055da
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x14bc]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14b8
ret 0x10