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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b3074
push eax
mov dword fs:[0], esp
sub esp, 0x24
push ebx
push ebp
mov ebp, ecx
push esi
xor esi, esi
push edi
cmp dword [ebp + 0x5c], esi
jne 0x456ccf
mov eax, 1
jmp 0x4570f3
push 0x410
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], esi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x3c], esi
je 0x456cff
mov ecx, eax
call fcn.0046c440
mov edi, eax
jmp 0x456d01
xor edi, edi
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x50]
push edx
push eax
mov eax, dword [esp + 0x54]
mov edx, dword [ecx]
mov ecx, edi
push edx
push eax
mov dword [esp + 0x54], 0xffffffff
call fcn.0046d350
mov ecx, dword [ebp + 0x5c]
push ecx
mov ecx, edi
call fcn.0046d2e0
mov ebx, dword [esp + 0x5c]
mov dl, byte [esp + 0x48]
push ebx
mov byte [esp + 0x28], dl
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
call dword [sym.imp.MSVCRT.dll_wcslen]
mov esi, eax
add esp, 4
cmp esi, 0x7ffffffd
jbe 0x456d6d
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x456d97
mov cl, byte [eax - 1]
test cl, cl
je 0x456d97
cmp cl, 0xff
je 0x456d97
test esi, esi
jne 0x456dc2
dec cl
push esi
mov byte [eax - 1], cl
lea ecx, [esp + 0x28]
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_]
jmp 0x456df6
test esi, esi
jne 0x456da9
push 1
lea ecx, [esp + 0x28]
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_]
jmp 0x456df6
mov ecx, dword [esp + 0x30]
cmp ecx, 0x1f
ja 0x456db6
cmp ecx, esi
jae 0x456dd1
push 1
lea ecx, [esp + 0x28]
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_]
push esi
lea ecx, [esp + 0x28]
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__::_Copy_unsigned_int_]
mov eax, dword [esp + 0x28]
test esi, esi
mov ecx, ebx
jbe 0x456dec
mov edx, esi
mov bx, word [ecx]
add ecx, 2
mov word [eax], bx
add eax, 2
dec edx
jne 0x456dd9
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], esi
mov word [eax + esi*2], 0
push 0
push 0
push 0
lea eax, [esp + 0x30]
push 0
push eax
mov ecx, edi
mov dword [esp + 0x50], 1
call fcn.0046cc80
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], 0xffffffff
test eax, eax
sete bl
xor esi, esi
cmp ecx, esi
je 0x456e47
mov al, byte [ecx - 1]
test al, al
je 0x456e3b
cmp al, 0xff
je 0x456e3b
dec al
mov byte [ecx - 1], al
jmp 0x456e47
add ecx, 0xfffffffe
push ecx
call fcn.0043b3d0
add esp, 4
test bl, bl
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
je 0x456e6f
mov ecx, edi
call fcn.0046d880
mov ecx, edi
call fcn.0046d8a0
mov eax, 1
jmp 0x4570f3
push esi
mov ecx, edi
call fcn.0046d820
push esi
push esi
push esi
push esi
push esi
mov ecx, edi
call fcn.0046dd40
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x60]
mov edx, dword [ebp + 0x5c]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x60]
mov esi, dword [ecx]
mov ebp, dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
push esi
lea ecx, [esp + 0x20]
push 0
push ecx
push 2
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
call ebp
cmp eax, 0x102
je 0x456faa
test eax, eax
jne 0x456f8a
mov ecx, edi
call fcn.00470b20
mov ebx, eax
cmp ebx, 0x507b
je 0x456fb4
mov ecx, edi
call fcn.00470b30
cmp eax, 0x2746
je 0x45706e
mov ecx, edi
call fcn.00470b30
cmp eax, 0x2745
je 0x45706e
lea edx, [esp + 0x14]
mov ecx, edi
push edx
call fcn.0046e510
test eax, eax
je 0x456f4f
mov eax, dword [esp + 0x14]
cmp eax, 0x12d
je 0x456f21
cmp eax, 0x12e
jne 0x456f4f
push str._PROXY_RESULT__proxy_redirecting
push 0x4d8db8
call fcn.0045c790
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x58]
sub eax, esi
cmp eax, dword [ecx]
jae 0x45708f
mov esi, eax
jmp 0x456f93
lea edx, [esp + 0x14]
mov ecx, edi
push edx
call fcn.0046e510
test eax, eax
je 0x456f79
mov eax, dword [esp + 0x14]
cmp eax, 0xc8
je 0x457035
cmp eax, 0xce
je 0x457035
mov ecx, edi
call fcn.00470b20
test eax, eax
jne 0x457051
jmp 0x456f93
cmp eax, 1
je 0x457075
push esi
lea eax, [esp + 0x20]
push 0
push eax
push 2
call ebp
cmp eax, 0x102
jne 0x456ebe
push str._PROXY_RESULT__connect_proxy_timeout
jmp 0x45707a
push str._PROXY_RESULT__auth_failed
push 0x4d8db8
call fcn.0045c790
mov esi, dword [esp + 0x6c]
add esp, 8
mov ecx, edi
push esi
push str.Proxy_Authenticate
call fcn.0046fa40
cmp eax, 1
jne 0x45702b
mov ebp, dword [sym.imp.MSVCRT.dll__stricmp]
push str.NTLM
push esi
call ebp
add esp, 8
test eax, eax
jne 0x457008
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x10], 3
mov dword [ecx], 2
jmp 0x45708f
push str.Negotiate
push esi
call ebp
add esp, 8
test eax, eax
jne 0x45702b
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], 3
mov dword [edx], 3
jmp 0x45708f
mov dword [esp + 0x10], 2
jmp 0x45708f
push str._PROXY_RESULT__proxy_success
push 0x4d8db8
call fcn.0045c790
add esp, 8
mov dword [esp + 0x10], 0
jmp 0x45708f
push ebx
mov ecx, edi
call fcn.00470b20
push eax
push str._PROXY_RESULT__proxy_connect_fail__d___d
push 0x4d8db8
call fcn.0045c790
add esp, 0x10
jmp 0x457087
push str._PROXY_RESULT__proxy_timeouts_failed
jmp 0x45707a
push str._PROXY_RESULT__exit
push 0x4d8db8
call fcn.0045c790
add esp, 8
mov dword [esp + 0x10], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
sub eax, ebx
mov ecx, dword [edx]
cmp eax, ecx
jbe 0x4570ad
mov dword [edx], 0
jmp 0x4570b1
sub ecx, eax
mov dword [edx], ecx
mov ecx, edi
call fcn.0046d880
mov ecx, edi
call fcn.0046d8a0
test edi, edi
je 0x4570cb
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
push str._PROXY_RESULT_return
push 0x4d8db8
call fcn.0045c790
add esp, 8
push str.__________________________________________________
push 0x4d8db8
call fcn.0045c790
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x30
ret 0x24