Function at 0x4031b0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Delete file
Get socket status
Receive data
Receive data on socket
Reference http user-agent string
Resolve dns
Resolve function by parsing pe exports
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x45d1e0
push eax
mov eax, 0xae00
mov dword fs:[0], esp
call fcn.0043fdd0
push ebx
mov ebx, dword [esp + 0xae18]
push ebp
xor ebp, ebp
push esi
cmp ebx, ebp
push edi
je 0x4031e7
push ebx
call dword [sym.imp.imagehlp.dll_MakeSureDirectoryPathExists]
mov eax, dword [esp + 0xae2c]
push 6
push 1
push 2
mov dword [eax], ebp
mov byte [esp + 0x1e], 0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x8c], ebp
call dword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
mov dword [esp + 0xb4], eax
jne 0x403222
or eax, eax
jmp 0x40588d
mov cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x90], cl
lea ecx, [esp + 0x90]
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 dl, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x18]
mov dword [esp + 0xae1c], ebp
mov byte [esp + 0x18], 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 esi, dword [esp + 0xae28]
cmp ebx, ebp
mov byte [esp + 0xae18], 1
je 0x40329e
cmp esi, ebp
je 0x40329e
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
lea ecx, [esp + 0x1c]
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, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x1c]
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_]
jmp 0x4032e7
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x11c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x11c]
push eax
push 0x46f380
call fcn.00406040
lea edi, [esp + 0x124]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x120]
push ecx
lea ecx, [esp + 0x1c]
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 esi, dword [esp + 0xae34]
mov edi, dword [esp + 0xae38]
cmp esi, ebp
je 0x403355
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp edi, ebp
je 0x40330e
cmp byte [edi], 0
je 0x40330e
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
je 0x403355
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0xae1c], 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_]
mov dword [esp + 0xae18], 0xffffffff
push 1
lea ecx, [esp + 0x90]
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, 0xfffffffe
jmp 0x40588d
mov dl, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x28]
mov byte [esp + 0x28], 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 edx, dword [esp + 0xae20]
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 + 0x2c]
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 al, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x48]
mov byte [esp + 0xae1c], 2
mov byte [esp + 0x48], 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 cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x58], cl
lea ecx, [esp + 0x58]
mov byte [esp + 0xae1c], 3
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 7
lea edx, [esp + 0x6c]
push ebp
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0xae24], 4
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__::substr_unsigned_int__unsigned_int_]
mov eax, dword [eax + 4]
cmp eax, ebp
jne 0x4033e3
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 esi, str.http:__
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403410
test cl, cl
je 0x40340c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403410
add eax, 2
add esi, 2
test cl, cl
jne 0x4033e8
xor eax, eax
jmp 0x403415
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
push 1
lea ecx, [esp + 0x6c]
sete bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
test bl, bl
je 0x403474
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea edx, [esp + 0x68]
mov ecx, dword [eax]
push ecx
push 7
push edx
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__::substr_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 byte [esp + 0xae18], 5
mov edx, dword [ecx]
lea ecx, [esp + 0x24]
push edx
push ebp
push 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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], 4
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 eax, [esp + 0x17]
push ebp
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x1f], 0x2f
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
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 esi, eax
cmp esi, dword [ecx]
jne 0x40350b
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, 0xfffffffd
jmp 0x40588d
push esi
lea edx, [esp + 0x6c]
push ebp
push edx
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__::substr_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 byte [esp + 0xae18], 6
mov edx, dword [ecx]
lea ecx, [esp + 0x44]
push edx
push ebp
push 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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], 4
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]
lea edx, [esp + 0x68]
mov ecx, dword [eax]
push ecx
push esi
push edx
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__::substr_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 byte [esp + 0xae18], 7
mov edx, dword [ecx]
lea ecx, [esp + 0x54]
push edx
push ebp
push 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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
xor eax, eax
mov dword [esp + 0xf4], eax
mov word [esp + 0xf4], 2
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x48]
cmp eax, ebp
jne 0x4035cb
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]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
cmp eax, ebp
jne 0x40371d
or ebx, 0xffffffff
mov edi, 0x46f374
mov ecx, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
push 0x46f374
lea ecx, [esp + 0x50]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
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 esi, eax
cmp esi, dword [ecx]
je 0x4036ad
push esi
lea edx, [esp + 0xe0]
push ebp
push edx
lea ecx, [esp + 0x50]
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__::substr_unsigned_int__unsigned_int_]
mov eax, dword [esp + 0xe0]
mov byte [esp + 0xae18], 8
cmp eax, ebp
jne 0x403638
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]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [esp + 0xf8], eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
inc esi
lea edx, [esp + 0x68]
mov ecx, dword [eax]
push ecx
push esi
push edx
lea ecx, [esp + 0x50]
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__::substr_unsigned_int__unsigned_int_]
mov eax, dword [esp + 0x6c]
cmp eax, ebp
jne 0x40366c
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]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
push eax
call dword [sym.imp.WS2_32.dll_htons]
push 1
lea ecx, [esp + 0x6c]
mov word [esp + 0xfa], ax
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 + 0xe0]
mov byte [esp + 0xae1c], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x40374e
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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 eax, 0xfffffffc
jmp 0x40588d
movsx ecx, word [eax + 0xa]
mov eax, dword [eax + 0xc]
mov edx, ecx
lea edi, [esp + 0xf8]
push 0x50
mov esi, dword [eax]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0xf6], ax
or ebx, 0xffffffff
mov esi, dword [esp + 0xae34]
cmp esi, ebp
je 0x4037f8
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [esp + 0xae38]
cmp edi, ebp
je 0x403779
cmp byte [edi], 0
je 0x403779
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
je 0x4037ff
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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 eax, 0xfffffffe
jmp 0x40588d
mov edi, dword [esp + 0xae38]
mov ecx, dword [esp + 0xb4]
lea eax, [esp + 0xf4]
push 0x10
push eax
push ecx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, ebx
jne 0x40388b
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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 eax, 0xfffffffb
jmp 0x40588d
cmp esi, ebp
je 0x4038b7
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp edi, ebp
je 0x4038a4
cmp byte [edi], 0
je 0x4038a4
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
jne 0x403788
mov dl, byte [esp + 0x13]
push ebp
lea ecx, [esp + 0x38]
mov byte [esp + 0x38], 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_]
lea eax, [esp + 0x54]
lea ecx, [esp + 0x104]
push eax
push str.GET
push ecx
mov byte [esp + 0xae24], 9
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
push str._HTTP_1.1
lea edx, [esp + 0xec]
push eax
push edx
mov byte [esp + 0xae30], 0xa
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
push 0x46f35c
push eax
lea eax, [esp + 0x88]
mov bl, 0xb
push eax
mov byte [esp + 0xae3c], bl
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0x24
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 byte [esp + 0xae18], 0xc
mov edx, dword [ecx]
lea ecx, [esp + 0x34]
push edx
push ebp
push 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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], bl
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 + 0xe0]
mov byte [esp + 0xae1c], 0xa
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 + 0x108]
mov byte [esp + 0xae1c], 9
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [esp + 0x44]
lea ecx, [esp + 0xdc]
push eax
push str.Host:
push ecx
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
push 0x46f35c
lea edx, [esp + 0x78]
push eax
push edx
mov byte [esp + 0xae30], 0xd
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0x18
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 byte [esp + 0xae18], 0xe
mov edx, dword [ecx]
lea ecx, [esp + 0x34]
push edx
push ebp
push 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_]
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], 0xd
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 + 0xe0]
mov byte [esp + 0xae1c], 9
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.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 + 0x3c]
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 eax, dword [esp + 0x18]
mov dword [esp + 0x104], ebp
cmp eax, ebp
mov dword [esp + 0x108], ebp
jne 0x403a35
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]
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__access]
add esp, 8
cmp eax, 0xffffffff
je 0x403bf3
mov al, byte [esp + 0xae48]
test al, al
jne 0x403bdf
cmp dword [esp + 0xae3c], 1
jne 0x403a7c
mov al, byte [esp + 0xae44]
test al, al
je 0x403a7c
mov eax, dword [esp + 0xae40]
test eax, eax
jne 0x403bdf
lea ecx, [esp + 0x14]
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
sub esp, 0x10
mov ebp, eax
mov al, byte [esp + 0x23]
mov esi, esp
mov dword [esp + 0xfc], esp
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, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebp
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_]
call fcn.004058b0
mov cl, byte [esp + 0x23]
add esp, 0x10
mov esi, eax
mov edi, edx
mov byte [esp + 0x68], cl
push 0
lea ecx, [esp + 0x6c]
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], 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_]
lea edx, [esp + 0x68]
lea eax, [esp + 0xdc]
push edx
push edi
push esi
push eax
mov byte [esp + 0xae28], 0xf
call fcn.004059c0
add esp, 0x10
lea ecx, [esp + 0xdc]
push 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_]
lea ecx, [esp + 0x68]
lea edx, [esp + 0xc0]
push ecx
push str.Range:_bytes
push edx
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
push 0x46f324
push eax
lea eax, [esp + 0xb4]
mov byte [esp + 0xae2c], 0x10
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
push 0x46f35c
lea ecx, [esp + 0xf8]
mov bl, 0x11
push eax
push ecx
mov byte [esp + 0xae3c], bl
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0x24
mov edx, 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 + 0xae18], 0x12
mov ecx, dword [edx]
push ecx
push 0
push eax
lea ecx, [esp + 0x40]
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_]
push 1
lea ecx, [esp + 0xe0]
mov byte [esp + 0xae1c], bl
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 byte [esp + 0xae18], 0x10
push 1
lea ecx, [esp + 0xa4]
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 + 0xc4]
mov byte [esp + 0xae1c], 0xf
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 + 0x6c]
mov byte [esp + 0xae1c], 9
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x403bf3
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x403bec
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]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [esp + 0xae34]
xor ebx, ebx
cmp esi, ebx
je 0x403c85
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebp, dword [esp + 0xae38]
cmp ebp, ebx
je 0x403c21
cmp byte [ebp], 0
je 0x403c21
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
je 0x403c8c
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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_]
jmp 0x40331d
mov ebp, dword [esp + 0xae38]
mov edi, str.Accept:_text_html_application_xhtmlxml_application_xml_q0.9___q0.8__r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Accept:_text_html_application_xhtmlxml_application_xml_q0.9___q0.8__r_n
lea ecx, [esp + 0x3c]
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_5.0__Windows_NT_5.1__AppleWebKit_537.17__KHTML__like_Gecko__Chrome_24.0.1312.57_Safari_537.17_SE_2.X_MetaSr_1.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_5.0__Windows_NT_5.1__AppleWebKit_537.17__KHTML__like_Gecko__Chrome_24.0.1312.57_Safari_537.17_SE_2.X_MetaSr_1.0_r_n
lea ecx, [esp + 0x3c]
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_Encoding:_deflate_sdch_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Accept_Encoding:_deflate_sdch_r_n
lea ecx, [esp + 0x3c]
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_Language:_zh_CN_zh_q0.8_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Accept_Language:_zh_CN_zh_q0.8_r_n
lea ecx, [esp + 0x3c]
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_Charset:_GBK_utf_8_q0.7__q0.3_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Accept_Charset:_GBK_utf_8_q0.7__q0.3_r_n
lea ecx, [esp + 0x3c]
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, 0x46f35c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x46f35c
lea ecx, [esp + 0x3c]
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 eax, dword [esp + 0x38]
cmp eax, ebx
jne 0x403d53
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 + 0x3c]
push ebx
push edx
push eax
mov eax, dword [esp + 0xc0]
push eax
call dword [sym.imp.WS2_32.dll_send]
or edi, 0xffffffff
cmp eax, edi
jne 0x403dfd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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 eax, 0xfffffffa
jmp 0x40588d
cmp esi, ebx
je 0x403e9a
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp ebp, ebx
je 0x403e1b
cmp byte [ebp], 0
je 0x403e1b
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
je 0x403e9a
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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_]
mov dword [esp + 0xae18], edi
jmp 0x40333c
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x78], 0xa000
mov dword [esp + 0xf0], 1
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x114], 2
mov dword [esp + 0x118], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd8], ebx
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x2800
xor eax, eax
lea edi, [esp + 0xe10]
rep stosd dword es:[edi], eax
cmp dword [esp + 0x78], ebx
je 0x404b31
mov edi, dword [esp + 0xb4]
cmp esi, ebx
mov dword [esp + 0x224], edi
mov dword [esp + 0x220], 1
je 0x403f61
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp ebp, ebx
je 0x403f5a
cmp byte [ebp], 0
je 0x403f5a
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
jne 0x403c30
lea ecx, [esp + 0x114]
lea edx, [esp + 0x220]
push ecx
push ebx
push ebx
push edx
push ebx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x405703
cmp eax, ebx
je 0x404afd
lea eax, [esp + 0x220]
push eax
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x404add
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0xb4]
xor esi, esi
lea edx, [esp + 0xe10]
push esi
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x404b5c
mov edi, dword [esp + 0xae34]
cmp edi, esi
je 0x404010
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0xae38]
cmp eax, esi
je 0x403ffd
cmp byte [eax], 0
je 0x403ffd
mov byte [esp + 0x12], 1
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
jne 0x403c30
cmp ebx, esi
jne 0x40401b
mov dword [esp + 0xf0], esi
cmp dword [esp + 0xbc], esi
jne 0x404559
mov cl, byte [esp + 0x13]
push esi
mov byte [esp + 0x6c], cl
lea ecx, [esp + 0x6c]
lea edi, [esp + 0xe14]
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 byte [esp + 0xae18], 0x13
mov ebp, 1
mov dl, byte [edi]
inc edi
cmp dl, 0xd
je 0x40407f
mov al, byte [edi]
mov byte [esp + 0xec], al
mov ecx, dword [esp + 0xec]
push ecx
push 1
lea ecx, [esp + 0x70]
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_unsigned_int__char_]
mov edx, ebp
inc ebp
cmp edx, 0x200
jl 0x40404f
mov edi, 0x46f1dc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x46f1dc
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
jne 0x404128
mov edi, 0x46f1d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x46f1d8
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
jne 0x404128
mov edi, 0x46f1d4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x46f1d4
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
je 0x404d25
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea edx, [esp + 0xe10]
push str.Location:
push edx
call esi
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x404bea
jmp 0x40451d
mov edi, 0x46f1d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x46f1d8
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
je 0x4042ad
lea edx, [esp + 0xe10]
push str.Content_Range
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
cmp eax, esi
je 0x4042ad
lea ecx, [esp + 0xd8]
lea edx, [esp + 0xd0]
push ecx
lea ecx, [esp + 0xd8]
push edx
push ecx
push str.Content_Range:_bytes__ld__ld__ld
push eax
call dword [sym.imp.MSVCRT.dll_sscanf]
mov al, byte [esp + 0xae44]
add esp, 0x14
cmp al, 1
jne 0x4042ad
lea ecx, [esp + 0x14]
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
mov dl, byte [esp + 0x13]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0xd0], esp
push 0
mov ecx, ebp
mov esi, eax
mov byte [ebp], 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, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xd4], ecx
push ecx
mov ecx, 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 0x404218
mov eax, dword [esp + 0xd0]
mov edi, dword [ebp + 4]
mov ecx, eax
push eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
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__::_Eos_unsigned_int_]
call fcn.004058b0
mov edi, dword [esp + 0xae3c]
mov esi, eax
add esp, 0x10
mov dword [esp + 0xe0], edx
mov eax, dword [edi]
test eax, eax
je 0x404245
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [edi], 0
lea ebp, [esi + 1]
push ebp
call sub.MFC42.DLL_operatornew
mov edi, eax
mov eax, dword [esp + 0xae30]
mov ecx, ebp
add esp, 4
mov edx, ecx
mov dword [eax], edi
xor eax, eax
mov dword [esp + 0x7c], esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40428d
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 + 0xae2c]
mov ecx, dword [esp + 0xe0]
push 0
push eax
mov eax, dword [edx]
push ecx
push esi
push eax
call fcn.00405b80
add esp, 0x14
xor esi, esi
mov edi, dword [sym.imp.MSVCRT.dll_strstr]
lea ecx, [esp + 0xe10]
push str.Content_Encoding:_gzip
push ecx
call edi
lea edx, [esp + 0xe18]
push str.Content_Length:
push edx
call edi
mov edx, eax
add esp, 0x10
cmp edx, esi
je 0x4043fd
mov edi, str.Content_Length:
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, edx
push ecx
call dword [sym.imp.MSVCRT.dll_atol]
cdq
mov dword [esp + 0x88], eax
lea eax, [esp + 0xe14]
push str._r_n_r_n
push eax
mov dword [esp + 0x94], edx
call dword [sym.imp.MSVCRT.dll_strstr]
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x40451d
mov edi, str._r_n_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0xe10]
add ebp, ecx
or ecx, 0xffffffff
mov byte [ebp - 1], al
mov edx, dword [esp + 0x88]
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x84]
not ecx
dec ecx
sub ebx, ecx
xor ecx, ecx
dec ebx
mov dword [esp + 0xa4], ecx
sub eax, ebx
mov dword [esp + 0xa0], ebx
sbb edx, ecx
mov dword [esp + 0xc4], edx
js 0x404389
jg 0x40437f
cmp eax, 0xa000
jbe 0x404389
mov dword [esp + 0x78], 0xa000
jmp 0x40438d
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xbc], 1
test eax, eax
je 0x40451d
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x40451d
mov ecx, dword [esp + 0xd8]
test ecx, ecx
je 0x40451d
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
add esi, eax
mov eax, 0
adc edx, eax
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], edx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], eax
jmp 0x40451d
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea eax, [esp + 0xe10]
push str._r_n_r_n
push eax
call esi
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x40451d
mov edi, str._r_n_r_n
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ebp, ecx
lea ecx, [esp + 0x84]
push ecx
push 0x46f160
push ebp
call dword [sym.imp.MSVCRT.dll_sscanf]
push 0x46f35c
push ebp
call esi
mov ebp, eax
add esp, 0x14
test ebp, ebp
je 0x4050fe
add ebp, 2
lea edi, [esp + 0xe10]
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp - 1], 0
mov esi, dword [esp + 0x84]
repne scasb al, byte es:[edi]
not ecx
mov edx, dword [esp + 0x88]
dec ecx
mov eax, ebx
xor edi, edi
sub eax, ecx
mov ecx, esi
dec eax
mov dword [esp + 0xa4], edi
sub ecx, eax
mov dword [esp + 0xa0], eax
sbb edx, edi
mov ebx, eax
js 0x4044b2
jg 0x4044a8
cmp ecx, 0xa000
jbe 0x4044b2
mov dword [esp + 0x78], 0xa000
jmp 0x4044b6
mov dword [esp + 0x78], ecx
test edx, edx
jg 0x4044cc
jl 0x4044c0
test ecx, ecx
jae 0x4044cc
mov dword [esp + 0x78], 0
mov byte [esi + ebp], 0
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xbc], 1
test ecx, ecx
je 0x40451d
mov edx, dword [esp + 0xd0]
test edx, edx
je 0x40451d
mov edx, dword [esp + 0xd8]
test edx, edx
je 0x40451d
add eax, ecx
mov dword [esp + 0x84], edx
adc edi, 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edi
mov dword [esp + 0x88], 0
mov ecx, dword [esp + 0x6c]
xor esi, esi
cmp ecx, esi
mov byte [esp + 0xae18], 9
je 0x40454b
mov al, byte [ecx - 1]
test al, al
je 0x404541
cmp al, 0xff
je 0x404541
dec al
mov byte [ecx - 1], al
jmp 0x40454b
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
jmp 0x4045b5
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov eax, ebx
lea ebp, [esp + 0xe10]
cdq
add ecx, eax
mov eax, dword [esp + 0x84]
adc esi, edx
mov edx, dword [esp + 0x88]
sub eax, ecx
mov dword [esp + 0xa0], ecx
sbb edx, esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xc4], edx
js 0x4045b1
jg 0x4045a7
cmp eax, 0xa000
jbe 0x4045b1
mov dword [esp + 0x78], 0xa000
jmp 0x4045b5
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xbc]
xor edi, edi
cmp eax, edi
je 0x404add
cmp dword [esp + 0xae3c], 1
jne 0x40497a
cmp dword [esp + 0xae40], edi
je 0x40497a
mov esi, dword [esp + 0xae34]
cmp esi, edi
je 0x40461b
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0xae38]
cmp eax, edi
je 0x404608
cmp byte [eax], 0
je 0x404608
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
jne 0x40519a
lea ecx, [esp + 0x724]
call fcn.00407c80
lea esi, [ebx + 2]
mov dword [esp + 0x64], 0
push esi
call sub.MFC42.DLL_operatornew
mov edx, eax
mov ecx, esi
xor eax, eax
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, ebp
and ecx, 3
add esp, 4
rep stosb byte es:[edi], al
mov ecx, ebx
mov edi, edx
mov eax, ecx
mov dword [esp + 0xc0], edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x9c]
and ecx, 3
mov dword [esp + 0xb8], edx
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x404717
mov esi, dword [esp + 0xb0]
lea edi, [ebx + esi + 2]
push edi
call sub.MFC42.DLL_operatornew
mov ecx, edi
mov ebp, eax
mov edx, ecx
xor eax, eax
mov edi, ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, esi
mov esi, dword [esp + 0xa0]
mov eax, ecx
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0xc4]
mov ecx, ebx
mov edx, ecx
lea edi, [eax + ebp]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
add ebx, eax
mov eax, dword [esp + 0xa0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
push eax
mov dword [esp + 0xb8], esi
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0xc8]
add esp, 8
cmp eax, esi
mov dword [esp + 0x9c], esi
je 0x404710
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0xb8], ebp
mov ecx, ebx
xor edi, edi
and ecx, 0x80000007
jns 0x404728
dec ecx
or ecx, 0xfffffff8
inc ecx
je 0x404783
mov eax, ebx
push 8
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
call sub.MFC42.DLL_operatornew
mov ecx, eax
xor edx, edx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0xa0], eax
mov dword [ecx], edx
mov edi, eax
add esp, 4
mov dword [ecx + 4], edx
lea edx, [esi*8]
sub ebx, edx
mov ecx, ebx
lea esi, [edx + ebp]
mov eax, ecx
mov dword [esp + 0xb0], ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov ebx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor edi, edi
jmp 0x40478a
mov ebp, dword [esp + 0xb8]
mov edx, dword [esp + 0xae40]
lea ecx, [esp + 0x64]
push ecx
push ebx
push edx
push ebp
lea ecx, [esp + 0x734]
call fcn.00407c90
mov esi, eax
mov al, byte [esp + 0xae44]
test al, al
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc0], esi
je 0x4047df
cmp eax, edi
jne 0x4047c6
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]
push eax
mov eax, dword [esp + 0x68]
push eax
push esi
call fcn.00405be0
add esp, 0xc
test al, al
je 0x4052c8
jmp 0x4047fb
cmp eax, edi
jne 0x4047e8
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]
push eax
push ebx
push ebp
call fcn.00405be0
add esp, 0xc
test al, al
je 0x405403
mov al, byte [esp + 0xae30]
test al, al
je 0x404919
mov ebx, dword [esp + 0xae2c]
cmp dword [ebx], edi
je 0x4048b9
mov ecx, dword [esp + 0x64]
mov ebp, dword [esp + 0x7c]
lea edx, [ecx + ebp + 2]
push edx
call sub.MFC42.DLL_operatornew
mov ebx, eax
mov eax, dword [esp + 0x68]
mov edi, ebx
lea ecx, [eax + ebp + 2]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0xae30]
mov ecx, ebp
mov edx, ecx
mov edi, ebx
mov esi, dword [eax]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xc4]
mov eax, ecx
lea edi, [ebx + ebp]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x84]
add ebp, edi
adc esi, 0
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xae30]
mov ecx, dword [esi]
push ecx
call sub.MFC42.DLL_operatordelete
mov ebp, dword [esp + 0xc0]
add esp, 8
mov dword [esi], ebx
jmp 0x404910
mov edx, dword [esp + 0x64]
inc edx
push edx
call sub.MFC42.DLL_operatornew
mov edi, eax
mov eax, dword [esp + 0x68]
mov dword [ebx], edi
mov esi, dword [esp + 0xc4]
lea ecx, [eax + 1]
xor eax, eax
mov edx, ecx
add esp, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov dword [esp + 0x80], 0
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x64]
mov edi, dword [ebx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x7c], ecx
mov esi, dword [esp + 0xc0]
xor edi, edi
cmp ebp, edi
je 0x404926
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp esi, edi
je 0x404933
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0xae34]
cmp eax, edi
je 0x404add
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0xae38]
xor edi, edi
cmp eax, edi
je 0x404962
cmp byte [eax], 0
je 0x404962
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
jne 0x40553e
jmp 0x404add
mov esi, dword [esp + 0xae34]
cmp esi, edi
je 0x4049b4
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0xae38]
cmp eax, edi
je 0x4049a1
cmp byte [eax], 0
je 0x4049a1
mov byte [esp + 0x12], 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, byte [esp + 0x12]
test al, al
jne 0x40553e
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x4049c1
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]
push eax
push ebx
push ebp
call fcn.00405be0
add esp, 0xc
test al, al
je 0x40541d
mov al, byte [esp + 0xae30]
test al, al
je 0x404add
mov edx, dword [esp + 0xae2c]
cmp dword [edx], edi
je 0x404a8b
mov eax, dword [esp + 0x7c]
lea esi, [eax + ebx + 2]
push esi
call sub.MFC42.DLL_operatornew
mov edx, eax
mov ecx, esi
xor eax, eax
mov edi, edx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov dword [esp + 0xc4], edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0xae30]
mov ecx, dword [esp + 0x80]
mov edi, edx
mov esi, dword [eax]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebp
mov ebp, eax
mov ecx, ebx
mov eax, ebx
lea edi, [edx + ebp]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cdq
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x84]
add ebp, eax
adc esi, edx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xae30]
mov eax, dword [esi]
push eax
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0xc8]
add esp, 8
mov dword [esi], ecx
jmp 0x404add
lea esi, [ebx + 1]
push esi
call sub.MFC42.DLL_operatornew
mov edx, dword [esp + 0xae30]
mov edi, eax
mov ecx, esi
xor eax, eax
mov dword [edx], edi
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov esi, ebp
and ecx, 3
add esp, 4
rep stosb byte es:[edi], al
mov eax, dword [esp + 0xae2c]
mov ecx, ebx
mov edx, ecx
mov edi, dword [eax]
mov eax, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
cdq
and ecx, 3
mov dword [esp + 0x7c], eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0xf0]
test eax, eax
je 0x404b31
mov esi, dword [esp + 0xae34]
mov ebp, dword [esp + 0xae38]
xor ebx, ebx
jmp 0x403f05
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x84]
cmp eax, ecx
jne 0x40567b
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x88]
cmp ecx, edx
jne 0x40567b
or eax, ecx
je 0x40567b
mov ecx, dword [esp + 0x38]
xor esi, esi
cmp ecx, esi
je 0x405795
mov al, byte [ecx - 1]
test al, al
je 0x40578b
cmp al, 0xff
je 0x40578b
dec al
mov byte [ecx - 1], al
jmp 0x405795
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, 0xfffffff7
jmp 0x40588d
lea eax, [esp + 0xe10]
push str.Location:
push eax
call esi
mov edx, eax
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x32d]
mov byte [esp + 0x32c], 0
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x32c]
stosw word es:[edi], ax
push ecx
push str.Location:__s_r_n
push edx
stosb byte es:[edi], al
call dword [sym.imp.MSVCRT.dll_sscanf]
mov edx, dword [esp + 0xae5c]
mov eax, dword [esp + 0xae58]
mov ecx, dword [esp + 0xae54]
push edx
mov edx, dword [esp + 0xae54]
push eax
mov eax, dword [esp + 0xae54]
push ecx
mov ecx, dword [esp + 0xae54]
push edx
mov edx, dword [esp + 0xae54]
push eax
mov eax, dword [esp + 0xae54]
push ecx
mov ecx, dword [esp + 0xae54]
push edx
mov edx, dword [esp + 0xae54]
push eax
push ecx
lea eax, [esp + 0x35c]
push edx
push eax
call fcn.004031b0
add esp, 0x40
lea ecx, [esp + 0x68]
mov esi, eax
mov byte [esp + 0xae18], 9
push 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 + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, esi
jmp 0x40588d
mov edi, 0x46f14c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x46f14c
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
je 0x404e8e
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x108]
or eax, ecx
mov byte [esp + 0xae18], 9
push 1
lea ecx, [esp + 0x6c]
jne 0x404e05
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 + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, 0xfffffff5
jmp 0x40588d
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 + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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_]
jmp 0x405888
mov edi, 0x46f148
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
push 0x46f148
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
je 0x404fa5
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], 9
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 + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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_]
mov ecx, dword [esp + 0x28]
cmp ecx, esi
je 0x404f30
mov al, byte [ecx - 1]
test al, al
je 0x404f26
cmp al, 0xff
je 0x404f26
dec al
mov byte [ecx - 1], al
jmp 0x404f30
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
cmp ecx, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
je 0x404f60
mov al, byte [ecx - 1]
test al, al
je 0x404f56
cmp al, 0xff
je 0x404f56
dec al
mov byte [ecx - 1], al
jmp 0x404f60
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x404f9b
mov al, byte [ecx - 1]
test al, al
je 0x404f91
cmp al, 0xff
je 0x404f91
dec al
mov byte [ecx - 1], al
mov eax, 0xfffffff4
jmp 0x40588d
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 0xfffffff4
jmp 0x40588d
mov ecx, dword [esp + 0x6c]
cmp ecx, esi
je 0x404fc9
mov al, byte [ecx - 1]
test al, al
je 0x404fbf
cmp al, 0xff
je 0x404fbf
dec al
mov byte [ecx - 1], al
jmp 0x404fc9
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x6c], esi
cmp ecx, esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
je 0x404ff9
mov al, byte [ecx - 1]
test al, al
je 0x404fef
cmp al, 0xff
je 0x404fef
dec al
mov byte [ecx - 1], al
jmp 0x404ff9
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], esi
cmp ecx, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
je 0x405029
mov al, byte [ecx - 1]
test al, al
je 0x40501f
cmp al, 0xff
je 0x40501f
dec al
mov byte [ecx - 1], al
jmp 0x405029
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], esi
cmp ecx, esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
je 0x405059
mov al, byte [ecx - 1]
test al, al
je 0x40504f
cmp al, 0xff
je 0x40504f
dec al
mov byte [ecx - 1], al
jmp 0x405059
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], esi
cmp ecx, esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
je 0x405089
mov al, byte [ecx - 1]
test al, al
je 0x40507f
cmp al, 0xff
je 0x40507f
dec al
mov byte [ecx - 1], al
jmp 0x405089
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
cmp ecx, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
je 0x4050b9
mov al, byte [ecx - 1]
test al, al
je 0x4050af
cmp al, 0xff
je 0x4050af
dec al
mov byte [ecx - 1], al
jmp 0x4050b9
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x4050f4
mov al, byte [ecx - 1]
test al, al
je 0x4050ea
cmp al, 0xff
je 0x4050ea
dec al
mov byte [ecx - 1], al
mov eax, 0xfffffff2
jmp 0x40588d
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 0xfffffff2
jmp 0x40588d
push 1
lea ecx, [esp + 0x6c]
mov byte [esp + 0xae1c], 9
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 + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, 0xfffffff6
jmp 0x40588d
cmp ebp, edi
je 0x4051a7
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x4051cb
mov al, byte [ecx - 1]
test al, al
je 0x4051c1
cmp al, 0xff
je 0x4051c1
dec al
mov byte [ecx - 1], al
jmp 0x4051cb
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], edi
cmp ecx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
je 0x4051fb
mov al, byte [ecx - 1]
test al, al
je 0x4051f1
cmp al, 0xff
je 0x4051f1
dec al
mov byte [ecx - 1], al
jmp 0x4051fb
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edi
cmp ecx, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
je 0x40522b
mov al, byte [ecx - 1]
test al, al
je 0x405221
cmp al, 0xff
je 0x405221
dec al
mov byte [ecx - 1], al
jmp 0x40522b
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
cmp ecx, edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
je 0x40525b
mov al, byte [ecx - 1]
test al, al
je 0x405251
cmp al, 0xff
je 0x405251
dec al
mov byte [ecx - 1], al
jmp 0x40525b
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
cmp ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
je 0x40528b
mov al, byte [ecx - 1]
test al, al
je 0x405281
cmp al, 0xff
je 0x405281
dec al
mov byte [ecx - 1], al
jmp 0x40528b
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], edi
cmp ecx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
je 0x40565d
mov al, byte [ecx - 1]
test al, al
je 0x405653
cmp al, 0xff
je 0x405653
dec al
mov byte [ecx - 1], al
mov eax, 0xfffffffe
jmp 0x40588d
cmp ebp, edi
je 0x4052d5
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp esi, edi
je 0x4052e2
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x405306
mov al, byte [ecx - 1]
test al, al
je 0x4052fc
cmp al, 0xff
je 0x4052fc
dec al
mov byte [ecx - 1], al
jmp 0x405306
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], edi
cmp ecx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
je 0x405336
mov al, byte [ecx - 1]
test al, al
je 0x40532c
cmp al, 0xff
je 0x40532c
dec al
mov byte [ecx - 1], al
jmp 0x405336
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edi
cmp ecx, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
je 0x405366
mov al, byte [ecx - 1]
test al, al
je 0x40535c
cmp al, 0xff
je 0x40535c
dec al
mov byte [ecx - 1], al
jmp 0x405366
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
cmp ecx, edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
je 0x405396
mov al, byte [ecx - 1]
test al, al
je 0x40538c
cmp al, 0xff
je 0x40538c
dec al
mov byte [ecx - 1], al
jmp 0x405396
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
cmp ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
je 0x4053c6
mov al, byte [ecx - 1]
test al, al
je 0x4053bc
cmp al, 0xff
je 0x4053bc
dec al
mov byte [ecx - 1], al
jmp 0x4053c6
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], edi
cmp ecx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
je 0x405671
mov al, byte [ecx - 1]
test al, al
je 0x405667
cmp al, 0xff
je 0x405667
dec al
mov byte [ecx - 1], al
mov eax, 0xfffffff3
jmp 0x40588d
cmp ebp, edi
je 0x405410
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp esi, edi
je 0x40541d
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x405441
mov al, byte [ecx - 1]
test al, al
je 0x405437
cmp al, 0xff
je 0x405437
dec al
mov byte [ecx - 1], al
jmp 0x405441
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], edi
cmp ecx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
je 0x405471
mov al, byte [ecx - 1]
test al, al
je 0x405467
cmp al, 0xff
je 0x405467
dec al
mov byte [ecx - 1], al
jmp 0x405471
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edi
cmp ecx, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
je 0x4054a1
mov al, byte [ecx - 1]
test al, al
je 0x405497
cmp al, 0xff
je 0x405497
dec al
mov byte [ecx - 1], al
jmp 0x4054a1
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
cmp ecx, edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
je 0x4054d1
mov al, byte [ecx - 1]
test al, al
je 0x4054c7
cmp al, 0xff
je 0x4054c7
dec al
mov byte [ecx - 1], al
jmp 0x4054d1
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
cmp ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
je 0x405501
mov al, byte [ecx - 1]
test al, al
je 0x4054f7
cmp al, 0xff
je 0x4054f7
dec al
mov byte [ecx - 1], al
jmp 0x405501
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], edi
cmp ecx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
je 0x405671
mov al, byte [ecx - 1]
test al, al
je 0x405667
cmp al, 0xff
je 0x405667
dec al
mov byte [ecx - 1], al
mov eax, 0xfffffff3
jmp 0x40588d
mov ecx, dword [esp + 0x38]
cmp ecx, edi
je 0x405562
mov al, byte [ecx - 1]
test al, al
je 0x405558
cmp al, 0xff
je 0x405558
dec al
mov byte [ecx - 1], al
jmp 0x405562
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], edi
cmp ecx, edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
je 0x405592
mov al, byte [ecx - 1]
test al, al
je 0x405588
cmp al, 0xff
je 0x405588
dec al
mov byte [ecx - 1], al
jmp 0x405592
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edi
cmp ecx, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
je 0x4055c2
mov al, byte [ecx - 1]
test al, al
je 0x4055b8
cmp al, 0xff
je 0x4055b8
dec al
mov byte [ecx - 1], al
jmp 0x4055c2
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edi
cmp ecx, edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
je 0x4055f2
mov al, byte [ecx - 1]
test al, al
je 0x4055e8
cmp al, 0xff
je 0x4055e8
dec al
mov byte [ecx - 1], al
jmp 0x4055f2
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
cmp ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
je 0x405622
mov al, byte [ecx - 1]
test al, al
je 0x405618
cmp al, 0xff
je 0x405618
dec al
mov byte [ecx - 1], al
jmp 0x405622
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], edi
cmp ecx, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
je 0x40565d
mov al, byte [ecx - 1]
test al, al
je 0x405653
cmp al, 0xff
je 0x405653
dec al
mov byte [ecx - 1], al
mov eax, 0xfffffffe
jmp 0x40588d
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 0xfffffffe
jmp 0x40588d
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 0xfffffff3
jmp 0x40588d
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, 0xfffffff8
jmp 0x40588d
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0xae1c], 4
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 + 0x58]
mov byte [esp + 0xae1c], 3
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 + 0x48]
mov byte [esp + 0xae1c], 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 + 0x28]
mov byte [esp + 0xae1c], 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 + 0x18]
mov byte [esp + 0xae1c], 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 + 0x90]
mov dword [esp + 0xae1c], 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, 0xfffffff9
jmp 0x40588d
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x38], esi
cmp ecx, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
je 0x4057c5
mov al, byte [ecx - 1]
test al, al
je 0x4057bb
cmp al, 0xff
je 0x4057bb
dec al
mov byte [ecx - 1], al
jmp 0x4057c5
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], esi
cmp ecx, esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
je 0x4057f5
mov al, byte [ecx - 1]
test al, al
je 0x4057eb
cmp al, 0xff
je 0x4057eb
dec al
mov byte [ecx - 1], al
jmp 0x4057f5
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], esi
cmp ecx, esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
je 0x405825
mov al, byte [ecx - 1]
test al, al
je 0x40581b
cmp al, 0xff
je 0x40581b
dec al
mov byte [ecx - 1], al
jmp 0x405825
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], esi
cmp ecx, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
je 0x405855
mov al, byte [ecx - 1]
test al, al
je 0x40584b
cmp al, 0xff
je 0x40584b
dec al
mov byte [ecx - 1], al
jmp 0x405855
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x18], esi
cmp ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x405888
mov al, byte [ecx - 1]
test al, al
je 0x40587e
cmp al, 0xff
je 0x40587e
dec al
mov byte [ecx - 1], al
jmp 0x405888
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0xae10]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xae0c
ret