Function at 0x46eb94
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0xffffffffffffffff
push 0x4b3d50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x158
mov eax, dword [esp + 0x168]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, dword [esp + 0x17c]
mov edx, dword [esi + 0x228]
mov edi, dword [esi + 0x224]
lea ebx, [eax + ecx]
lea ebp, [esi + 0x21c]
mov dword [esp + 0x34], ebx
sub ebx, eax
mov eax, dword [ebp + 8]
sub edx, eax
cmp edx, ebx
jae 0x46ecb4
mov edx, dword [ebp + 4]
test edx, edx
je 0x46ebd6
mov ecx, eax
sub ecx, edx
cmp ebx, ecx
jb 0x46ebd8
mov ecx, ebx
test edx, edx
jne 0x46ebe0
xor eax, eax
jmp 0x46ebe2
sub eax, edx
add eax, ecx
test eax, eax
mov dword [esp + 0x18], eax
jge 0x46ebee
xor eax, eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 4]
add esp, 4
cmp eax, edi
mov dword [esp + 0x30], eax
je 0x46ec32
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call fcn.00469ac0
mov eax, dword [esp + 0x24]
add esp, 8
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
inc eax
cmp eax, edi
mov dword [esp + 0x30], eax
jne 0x46ec0a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x178]
push edx
push eax
push ecx
mov ecx, ebp
call fcn.00469a70
mov edx, dword [ebp + 8]
push eax
push edx
push edi
mov ecx, ebp
call fcn.00469a70
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
push eax
push ecx
mov ecx, ebp
call fcn.00469a60
mov eax, dword [ebp + 4]
push eax
call fcn.0043b3d0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
add edx, eax
mov eax, dword [ebp + 4]
add esp, 4
mov dword [ebp + 0xc], edx
test eax, eax
jne 0x46ec9c
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov ecx, eax
mov dword [ebp + 4], eax
add ecx, ebx
mov dword [ebp + 8], ecx
jmp 0x46ed3c
mov ecx, dword [ebp + 8]
sub ecx, eax
mov eax, dword [esp + 0x14]
add ecx, eax
mov dword [ebp + 4], eax
add ecx, ebx
mov dword [ebp + 8], ecx
jmp 0x46ed3c
mov ecx, eax
sub ecx, edi
cmp ecx, ebx
jae 0x46ecf8
lea edx, [ebx + edi]
mov ecx, ebp
push edx
push eax
push edi
call fcn.00469a70
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x34]
push eax
push ecx
mov ecx, dword [esp + 0x180]
sub eax, edi
add eax, ecx
mov ecx, ebp
push eax
call fcn.00469a70
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x178]
sub edx, edi
push edi
add edx, eax
push edx
push eax
jmp 0x46ed2c
test ebx, ebx
jbe 0x46ed3c
push eax
push eax
sub eax, ebx
mov ecx, ebp
push eax
call fcn.00469a70
mov ecx, dword [ebp + 8]
mov eax, ecx
sub eax, ebx
cmp edi, eax
je 0x46ed1e
mov dl, byte [eax - 1]
dec eax
dec ecx
cmp eax, edi
mov byte [ecx], dl
jne 0x46ed13
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x178]
push edi
push eax
push ecx
call fcn.00469aa0
mov eax, dword [ebp + 8]
add esp, 0xc
add eax, ebx
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x46ed47
xor eax, eax
jmp 0x46ed4c
mov eax, dword [ebp + 8]
sub eax, ecx
mov ecx, dword [esi + 0x220]
lea edi, [esi + 0x230]
push eax
push ecx
mov ecx, edi
call fcn.0048a0d0
test eax, eax
jne 0x46ee10
mov ecx, 0x40
lea edi, [esp + 0x68]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 4]
mov dword [esp + 0x18], 0x100
test ecx, ecx
mov eax, 0x32
je 0x46ed91
mov edx, dword [ebp + 8]
sub edx, ecx
cmp edx, eax
jae 0x46eda1
mov ecx, dword [ebp + 4]
test ecx, ecx
jne 0x46ed9c
xor eax, eax
jmp 0x46eda1
mov eax, dword [ebp + 8]
sub eax, ecx
lea ecx, [esp + 0x18]
lea edx, [esp + 0x68]
push ecx
push edx
push eax
mov eax, dword [esi + 0x220]
push eax
call fcn.0046ba10
mov eax, dword [ebp + 4]
mov ecx, dword [esi + 0xf0]
add esp, 0x10
test eax, eax
jne 0x46edcc
xor ebp, ebp
jmp 0x46edd1
mov ebp, dword [ebp + 8]
sub ebp, eax
lea edx, [esp + 0x68]
push edx
push ebp
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
mov ecx, dword [esi + 0xe0]
push eax
mov eax, dword [esi + 0xe4]
push eax
push str.Cid__u__IP__s__size__u__hex:_s
push str.HTTP_INVALID_HEADER
push ecx
push 0x4d8d38
call fcn.0045e650
add esp, 0x20
push 0
push 0x5015
jmp 0x46f547
mov ecx, edi
call fcn.0048a0c0
test eax, eax
je 0x46f555
mov ecx, esi
call fcn.00470e90
mov ecx, edi
call fcn.0048b830
mov dword [esi + 0x108], eax
mov ecx, edi
mov dword [esi + 0x10c], edx
call fcn.0048b8d0
cmp eax, 0xce
jne 0x46ee78
mov ecx, edi
call fcn.0048b800
test eax, eax
je 0x46ee78
mov ecx, edi
call fcn.0048b810
mov dword [esi + 0x110], eax
mov ecx, edi
mov dword [esi + 0x114], edx
call fcn.0048b820
mov dword [esi + 0x118], eax
mov dword [esi + 0x11c], edx
mov ecx, edi
call fcn.0048b8d0
mov ecx, edi
mov dword [esi + 0x140], eax
call fcn.0048b870
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 ecx, dword [edx]
push ecx
push 0
push eax
lea ecx, [esi + 0x74]
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 ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [esi + 0x198], eax
call ebx
mov dword [esi + 0x190], eax
mov edx, dword [esi + 0x15c]
lea eax, [esp + 0x58]
push edx
push eax
call fcn.004628c0
add esp, 8
mov eax, dword [eax + 4]
mov ebx, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
test eax, eax
mov dword [esp + 0x170], 0
mov dword [esp + 0x14], ebx
je 0x46eeeb
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x88]
test eax, eax
je 0x46eef7
mov ebx, eax
mov ecx, edi
call fcn.0048b830
push edx
push eax
mov ecx, edi
call fcn.0048b8d0
push eax
mov ecx, edi
call fcn.0048b8c0
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0xe4]
push eax
mov eax, dword [esi + 0xe0]
push ecx
push ebx
push edx
push eax
push str.__d._3d___s__s__Receive_Header_Completed____d_bytes___status_code:_d___Content_Length_:__I64d
push 0x4d8db8
call fcn.0045c790
add esp, 0x28
mov ebx, 1
lea ecx, [esp + 0x58]
mov dword [esp + 0x170], 0xffffffff
push ebx
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0xc8
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0xce
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x12d
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x12e
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x12f
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x130
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x133
je 0x46f108
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x197
jne 0x46f531
cmp dword [esi + 0xd8], ebx
jne 0x46f531
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x4c], cl
lea ecx, [esp + 0x4c]
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 [esi + 0x3e0]
mov dword [esp + 0x170], ebx
test eax, eax
jne 0x46f0df
mov eax, dword [esi + 0xdc]
cmp eax, 3
je 0x46f02a
cmp eax, 2
jne 0x46f0df
lea edx, [esp + 0x48]
mov ecx, edi
push edx
push str.Proxy_Authenticate
call fcn.0048b4e0
test eax, eax
je 0x46f0df
push str.Keep_Alive
push str.Proxy_Connection
mov ecx, edi
call fcn.0048b730
test eax, eax
je 0x46f060
mov dword [esi + 0x3e4], ebx
jmp 0x46f06a
mov dword [esi + 0x3e4], 0
mov eax, dword [esi + 0xdc]
cmp eax, 2
jne 0x46f09a
mov edx, dword [esp + 0x4c]
test edx, edx
jne 0x46f083
mov edx, 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 edi, str.NTLM
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.NTLM
jmp 0x46f0c2
cmp eax, 3
jne 0x46f0df
mov edx, dword [esp + 0x4c]
test edx, edx
jne 0x46f0ad
mov edx, 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 edi, str.Negotiate
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.Negotiate
push edx
call dword [sym.imp.MSVCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x46f0df
mov ecx, esi
mov dword [esi + 0x3e0], ebx
call fcn.0046f590
jmp 0x46f0ed
push 0
push 0x507b
mov ecx, esi
call fcn.0046cf30
push ebx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x174], 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 0x46f54e
push 6
mov ecx, esi
call fcn.0046ff20
mov ecx, edi
call fcn.0048b8d0
mov ecx, dword [esi + 0xe4]
mov edx, dword [esi + 0xe0]
push eax
push ecx
push 0x66
push edx
mov ecx, 0x4d8c88
call fcn.0045a810
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x12d
je 0x46f185
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x12e
je 0x46f185
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0x12f
je 0x46f185
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0xc8
je 0x46f179
mov ecx, edi
call fcn.0048b8d0
cmp eax, 0xce
jne 0x46f1d9
mov dword [esi + 0x174], 0
jmp 0x46f1d9
mov ebx, dword [esi + 0x174]
mov edx, dword [esi + 0x178]
inc ebx
inc edx
mov eax, ebx
mov dword [esi + 0x174], ebx
cmp eax, 5
mov dword [esi + 0x178], edx
jl 0x46f1b2
push 0
push 0x5017
jmp 0x46f547
mov ecx, edi
call fcn.0048b870
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x46f540
mov eax, dword [esi + 0x158]
test eax, eax
je 0x46f50f
mov ecx, esi
call fcn.0046f680
mov al, byte [esp + 0x13]
xor ebx, ebx
mov byte [esp + 0x38], al
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov cl, byte [esp + 0x13]
push ebx
mov byte [esp + 0x24], cl
lea ecx, [esp + 0x24]
mov dword [esp + 0x174], 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, edi
mov byte [esp + 0x170], 3
call fcn.0048b8a0
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 ecx, dword [edx]
push ecx
push ebx
push eax
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_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, edi
call fcn.0048b8b0
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 ecx, dword [edx]
push ecx
push ebx
push eax
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_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov ebx, dword [sym.imp.MSVCRT.dll__strnicmp]
je 0x46f27d
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jne 0x46f269
mov ecx, 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 str.chunked
push ecx
call ebx
add esp, 0xc
test eax, eax
je 0x46f2a6
mov eax, dword [esp + 0x40]
test eax, eax
je 0x46f315
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x46f292
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 + 0x28]
push edx
push str.gzip
push eax
call ebx
add esp, 0xc
test eax, eax
jne 0x46f315
xor edi, edi
mov ecx, esi
push edi
push 0x501a
call fcn.0046cf30
mov ecx, dword [esp + 0x24]
cmp ecx, edi
je 0x46f2d9
mov al, byte [ecx - 1]
test al, al
je 0x46f2cf
cmp al, 0xff
je 0x46f2cf
dec al
mov byte [ecx - 1], al
jmp 0x46f2d9
dec ecx
push ecx
call fcn.0043b3d0
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], edi
cmp ecx, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
je 0x46f54e
mov al, byte [ecx - 1]
test al, al
je 0x46f306
cmp al, 0xff
je 0x46f306
dec al
mov byte [ecx - 1], al
jmp 0x46f54e
dec ecx
push ecx
call fcn.0043b3d0
add esp, 4
jmp 0x46f54e
mov eax, dword [ebp + 4]
test eax, eax
jne 0x46f320
xor ebp, ebp
jmp 0x46f325
mov ebp, dword [ebp + 8]
sub ebp, eax
mov ecx, edi
call fcn.0048b8c0
mov ebx, dword [esp + 0x17c]
mov ecx, ebx
sub ecx, ebp
add eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x320]
test eax, eax
je 0x46f437
mov ecx, dword [esi + 0x140]
xor ebp, ebp
xor edi, edi
xor eax, eax
cmp ecx, 0xc8
jne 0x46f36d
mov edi, dword [esi + 0x108]
mov eax, dword [esi + 0x10c]
jmp 0x46f391
cmp ecx, 0xce
jne 0x46f391
mov edi, dword [esi + 0x118]
mov edx, dword [esi + 0x110]
mov eax, dword [esi + 0x11c]
mov ecx, dword [esi + 0x114]
sub edi, edx
sbb eax, ecx
cmp eax, dword [esi + 0x32c]
ja 0x46f45e
jb 0x46f3ab
cmp edi, dword [esi + 0x328]
jae 0x46f45e
mov ecx, dword [esi + 0x334]
cmp ecx, ebp
jne 0x46f3b9
xor eax, eax
jmp 0x46f3c1
mov eax, dword [esi + 0x33c]
sub eax, ecx
cmp eax, edi
jae 0x46f437
test edi, edi
mov eax, edi
jge 0x46f3cd
xor eax, eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov edx, dword [esi + 0x338]
mov ebp, eax
mov eax, dword [esi + 0x334]
add esp, 4
cmp eax, edx
mov ecx, ebp
je 0x46f3f8
test ecx, ecx
je 0x46f3f2
mov bl, byte [eax]
mov byte [ecx], bl
inc ecx
inc eax
cmp eax, edx
jne 0x46f3ea
mov eax, dword [esi + 0x334]
push eax
mov dword [esp + 0x18], eax
call fcn.0043b3d0
mov eax, dword [esi + 0x334]
add esp, 4
add edi, ebp
test eax, eax
mov dword [esi + 0x33c], edi
jne 0x46f421
xor ecx, ecx
jmp 0x46f429
mov ecx, dword [esi + 0x338]
sub ecx, eax
add ecx, ebp
mov dword [esi + 0x334], ebp
mov dword [esi + 0x338], ecx
mov ecx, esi
call fcn.0046f570
mov ecx, dword [esp + 0x24]
xor esi, esi
cmp ecx, esi
je 0x46f4d5
mov al, byte [ecx - 1]
test al, al
je 0x46f4cb
cmp al, 0xff
je 0x46f4cb
dec al
mov byte [ecx - 1], al
jmp 0x46f4d5
push ebp
push 0x501b
mov ecx, esi
call fcn.0046cf30
mov ecx, dword [esp + 0x24]
cmp ecx, ebp
je 0x46f48f
mov al, byte [ecx - 1]
test al, al
je 0x46f485
cmp al, 0xff
je 0x46f485
dec al
mov byte [ecx - 1], al
jmp 0x46f48f
dec ecx
push ecx
call fcn.0043b3d0
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], ebp
cmp ecx, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
je 0x46f4c4
mov al, byte [ecx - 1]
test al, al
je 0x46f4ba
cmp al, 0xff
je 0x46f4ba
dec al
mov byte [ecx - 1], al
mov eax, ebx
jmp 0x46f555
dec ecx
push ecx
call fcn.0043b3d0
add esp, 4
mov eax, ebx
jmp 0x46f555
dec ecx
push ecx
call fcn.0043b3d0
add esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
cmp ecx, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
je 0x46f509
mov al, byte [ecx - 1]
test al, al
je 0x46f4ff
cmp al, 0xff
je 0x46f4ff
dec al
mov byte [ecx - 1], al
mov eax, dword [esp + 0x18]
jmp 0x46f555
dec ecx
push ecx
call fcn.0043b3d0
add esp, 4
mov eax, dword [esp + 0x18]
jmp 0x46f555
mov ecx, edi
call fcn.0048b8d0
mov edx, dword [esi + 0xe4]
push eax
mov eax, dword [esi + 0xe0]
push edx
push 0x66
push eax
mov ecx, 0x4d8c88
call fcn.0045a810
mov ecx, edi
call fcn.0048b8d0
push eax
push 0x5016
jmp 0x46f547
push 0
push 0x5019
mov ecx, esi
call fcn.0046cf30
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x168]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x164
ret 8