Function at 0x4033e0
Capabilities:
Send data
Send data on socket

Disassembly:
push 0xffffffffffffffff
push 0x40601b
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x40a018]
xor eax, esp
mov dword [esp + 0x64], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x40a018]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x20], ecx
xor ebx, ebx
lea ecx, [esp + 0x24]
mov esi, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x84], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
push esi
lea ecx, [esp + 0x28]
mov byte [esp + 0x88], 2
call dword [sym.imp.MSVCP80.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__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov ecx, edi
lea ebx, [esp + 0x24]
call fcn.00401b30
mov esi, eax
test esi, esi
jne 0x403670
jmp 0x403496
mov edi, dword [esp + 0x14]
push edi
lea ecx, [esp + 0x60]
call dword [sym.imp.MSVCP80.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__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov eax, dword [ebp + 0x18]
sub eax, 1
je 0x4034c6
sub eax, 1
je 0x4034bc
sub eax, 1
jne 0x4034d8
push edi
push ebp
call fcn.00402cf0
jmp 0x4034ce
push edi
mov esi, ebp
call fcn.00403010
jmp 0x4034ce
push edi
mov ecx, ebp
call fcn.00402960
mov esi, eax
test esi, esi
jne 0x403670
cmp dword [ebp + 0x18], 0
jne 0x403543
cmp dword [edi + 0x18], 0x10
jb 0x4034e9
mov ebx, dword [edi + 4]
jmp 0x4034ec
lea ebx, [edi + 4]
mov eax, dword [ebp + 4]
cmp eax, 0xffffffff
movzx esi, word [edi + 0x70]
je 0x403506
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp + 4], 0xffffffff
mov ecx, esi
mov edx, ebx
mov edi, ebp
call fcn.004021f0
test eax, eax
jne 0x403535
mov eax, dword [ebp + 4]
cmp eax, 0xffffffff
je 0x40352b
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp + 4], 0xffffffff
lea eax, [ebp + 8]
mov esi, ebp
call fcn.00402350
mov esi, eax
test esi, esi
jne 0x403670
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x40]
push edx
lea edx, [ebp + 0x90]
mov ecx, edi
call fcn.004018b0
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x48]
add esp, 4
cmp dword [esp + 0x58], 0x10
jae 0x40356b
lea ebx, [esp + 0x44]
xor esi, esi
test edi, edi
jbe 0x403594
mov edx, dword [ebp + 4]
push 0
mov eax, edi
sub eax, esi
push eax
lea ecx, [ebx + esi]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x4036b0
add esi, eax
cmp esi, edi
jb 0x403571
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
push eax
push ebp
mov ecx, edi
call fcn.004025b0
mov esi, eax
test esi, esi
jne 0x403670
mov eax, dword [edi]
cmp eax, 0xc8
je 0x403776
jb 0x4036f3
cmp eax, 0x12c
jbe 0x403736
cmp eax, 0x190
jae 0x403736
mov eax, dword [esp + 0x18]
add eax, 1
cmp eax, 0xa
mov dword [esp + 0x18], eax
jg 0x403736
lea ecx, [esp + 0x24]
push ecx
push str.Location
push edi
call fcn.004043e0
test eax, eax
je 0x403736
mov ebx, dword [esp + 0x1c]
mov edi, str.keep_alive
mov ecx, str.Connection
call fcn.00404490
test eax, eax
je 0x403643
lea ecx, [esp + 0x24]
lea esi, [esp + 0x5c]
call fcn.00401e20
test al, al
je 0x403643
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
add ecx, 0x1c
call dword [sym.imp.MSVCP80.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__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
jmp 0x40353f
mov eax, dword [ebp + 4]
cmp eax, 0xffffffff
je 0x403659
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp + 4], 0xffffffff
mov ecx, dword [esp + 0x14]
lea ebx, [esp + 0x24]
call fcn.00401b30
mov esi, eax
test esi, esi
je 0x403492
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x84], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, esi
jmp 0x4037b1
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x84], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, 0xfffffc1e
jmp 0x4037b1
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x84], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, 0xfffffc19
jmp 0x4037b1
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x84], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, 0xfffffc1c
jmp 0x4037b1
lea ecx, [esp + 0x40]
mov byte [esp + 0x84], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x84], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x24]
mov dword [esp + 0x84], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor eax, eax
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.00404f8a
add esp, 0x74
ret 0xc