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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x3c], edx
lea eax, [edx + 0x66]
mov dword [ebp - 0x34], edi
lea ecx, [edx + 0x16e]
mov dword [ebp - 0x4c], 0
xor bl, bl
mov dword [ebp - 0xc], 0
cmp dword [edi + ecx*4], 2
lea eax, [edi + eax*4]
mov esi, dword [edi]
lea ecx, [edi + ecx*4]
mov dword [ebp - 0x38], eax
xorps xmm0, xmm0
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
movlpd qword [ebp - 0x48], xmm0
mov byte [ebp - 1], bl
mov byte [ebp - 2], bl
mov dword [ebp - 0x10], ecx
je 0x4bcaa9
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov byte [edi + 0x2a6], bl
mov dword [ebp - 0x2c], eax
cmp dword [ecx], 0
jne 0x4bc1c0
push dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
push ebx
push str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
push esi
call fcn.004aee40
push dword [esi + 0x120]
call fcn.006d6340
add esp, 0x14
mov dword [esi + 0x120], 0
push 0xc
push 1
call fcn.006d7a40
add esp, 8
mov dword [ebp - 8], eax
test eax, eax
je 0x4bc96e
push dword [ebp + 0xc]
push ebx
push str._s:_hu
call fcn.004ba780
add esp, 0xc
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4bc966
push 1
push eax
mov edx, 0x796208
mov ecx, edi
call fcn.004b62f0
push dword [ebp - 0x30]
mov ebx, eax
call fcn.006d6340
add esp, 0xc
test ebx, ebx
jne 0x4bc199
cmp dword [edi + 0xf0], 1
mov ecx, 0x7942c8
mov eax, 0x7942a4
mov dword [ebp - 0x24], ebx
cmovne eax, ecx
mov dword [ebp - 0x28], 0x78c138
mov cl, byte [edi + 0x296]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
cmp eax, dword [edi + 0xa0]
je 0x4bc043
push 0x3a
push eax
call fcn.006d2640
add esp, 8
test eax, eax
setne cl
push dword [ebp + 0xc]
test cl, cl
mov edx, 0x78c138
mov eax, 0x793bd0
cmove eax, edx
push eax
push dword [ebp + 8]
mov eax, 0x793bd4
cmove eax, edx
push eax
push str._s_s_s:_hu
call fcn.004ba780
add esp, 0x14
mov dword [ebp - 0x30], eax
test eax, eax
je 0x4bc966
mov edx, str.Host:
mov ecx, edi
call fcn.004b56a0
test eax, eax
jne 0x4bc0a7
push dword [ebp - 0x30]
push str.Host:__s_r_n
call fcn.004ba780
mov ebx, eax
add esp, 8
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x4bc95b
mov edx, str.Proxy_Connection:
mov ecx, edi
call fcn.004b56a0
test eax, eax
mov ecx, str.Proxy_Connection:_Keep_Alive_r_n
mov eax, 0x78c138
mov edx, str.User_Agent:
cmovne ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, edi
call fcn.004b56a0
test eax, eax
jne 0x4bc0e6
cmp dword [esi + 0x430], eax
je 0x4bc0e6
mov eax, dword [edi + 0x2e0]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x1c]
mov eax, dword [edi + 0x2dc]
mov edx, 0x78c138
push dword [ebp - 0x28]
test eax, eax
mov ecx, edx
cmovne ecx, eax
mov eax, edx
push ecx
test ebx, ebx
cmovne eax, ebx
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x30]
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
push dword [ebp - 8]
call fcn.004b6d10
mov ebx, eax
add esp, 0x20
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4bc12f
push eax
call fcn.006d6340
add esp, 4
push dword [ebp - 0x30]
call fcn.006d6340
add esp, 4
test ebx, ebx
jne 0x4bc183
push dword [ebp - 8]
mov dl, 1
mov ecx, edi
call fcn.004b7310
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4bc183
push 0x793b64
push dword [ebp - 8]
call fcn.004b6d10
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x4bc183
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 8]
mov edx, edi
push eax
lea eax, [esi + 0x4940]
push eax
call fcn.004b6a40
add esp, 0xc
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x4bc1a6
push str.Failed_sending_CONNECT_to_proxy
push esi
call fcn.004aef10
add esp, 8
jmp 0x4bc1a6
mov edi, dword [ebp - 8]
push dword [edi]
call fcn.006d6340
add esp, 4
push edi
call fcn.006d6340
add esp, 4
test ebx, ebx
jne 0x4bc97a
mov eax, dword [ebp - 0x10]
mov dword [eax], 1
mov ecx, dword [esi + 0x1e8]
xor eax, eax
mov edx, dword [esi + 0x1ec]
test ecx, ecx
mov dword [ebp - 0x1c], 0x493e0
setg al
mov dword [ebp - 0x18], 0
test edx, edx
jle 0x4bc1e8
or eax, 2
sub eax, 1
je 0x4bc200
sub eax, 1
je 0x4bc412
sub eax, 1
jne 0x4bc209
cmp ecx, edx
cmovge ecx, edx
mov eax, ecx
cdq
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
push 0
mov ebx, edx
shr ebx, 6
imul eax, ebx, 0x3e8
push 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
sub eax, dword [esi + 0x5a4]
cdq
push edx
push eax
call fcn.00702460
sub ebx, dword [esi + 0x5a0]
mov ecx, eax
imul eax, ebx, 0x3e8
mov edi, edx
cdq
mov ebx, eax
neg ebx
adc edx, 0
neg edx
sub ebx, ecx
sbb edx, edi
add ebx, dword [ebp - 0x1c]
mov eax, ebx
adc edx, dword [ebp - 0x18]
or eax, edx
je 0x4bcabe
test edx, edx
jl 0x4bcabe
jg 0x4bc280
test ebx, ebx
je 0x4bcabe
mov edi, dword [ebp - 0x34]
mov ecx, edi
mov edx, dword [ebp - 0x3c]
call fcn.004b10d0
test al, al
je 0x4bcaa9
mov ebx, dword [edi + 0x5c8]
xor eax, eax
mov ecx, 1
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x4bc46c
mov ecx, edi
call fcn.004b48d0
test eax, eax
jne 0x4bcab2
mov eax, dword [edi + 0x5c8]
add eax, 0x4000
cmp ebx, eax
jae 0x4bc983
mov ecx, dword [esi + 0x1e8]
xor eax, eax
mov edx, dword [esi + 0x1ec]
test ecx, ecx
mov dword [ebp - 0x24], 0x493e0
setg al
mov dword [ebp - 0x28], 0
test edx, edx
jle 0x4bc307
or eax, 2
sub eax, 1
je 0x4bc31f
sub eax, 1
je 0x4bc419
sub eax, 1
jne 0x4bc328
cmp ecx, edx
cmovge ecx, edx
mov eax, ecx
cdq
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
push 0
mov ebx, edx
shr ebx, 6
imul eax, ebx, 0x3e8
push 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
sub eax, dword [esi + 0x5a4]
cdq
push edx
push eax
call fcn.00702460
sub ebx, dword [esi + 0x5a0]
mov ecx, eax
imul eax, ebx, 0x3e8
mov edi, edx
cdq
mov ebx, eax
neg ebx
adc edx, 0
neg edx
sub ebx, ecx
sbb edx, edi
add ebx, dword [ebp - 0x24]
mov eax, ebx
mov dword [ebp - 0x24], ebx
adc edx, dword [ebp - 0x28]
or eax, edx
mov dword [ebp - 0x28], edx
je 0x4bc8ea
test edx, edx
jl 0x4bc8ea
jg 0x4bc3a5
test ebx, ebx
je 0x4bc8ea
mov ebx, dword [ebp - 0x14]
lea eax, [ebp - 0x44]
mov edi, dword [ebp - 0x34]
mov ecx, edi
mov edx, dword [ebp - 0x40]
push eax
push 1
push ebx
call fcn.004af7d0
add esp, 0xc
cmp eax, 0x51
jne 0x4bc420
mov eax, dword [ebp - 0x28]
test eax, eax
jg 0x4bc3d8
mov ecx, dword [ebp - 0x24]
jl 0x4bc3df
cmp ecx, 0x3e8
jb 0x4bc3df
mov ecx, 0x3e8
xor eax, eax
push eax
push ecx
mov ecx, dword [ebp - 0x40]
or edx, 0xffffffff
push 0xffffffffffffffff
call fcn.004b1160
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4bc7ae
push str.Proxy_CONNECT_aborted_due_to_select_poll_error
mov ebx, 1
push esi
mov dword [ebp - 0xc], ebx
call fcn.004aef10
add esp, 8
jmp 0x4bc46f
mov eax, edx
jmp 0x4bc202
mov eax, edx
jmp 0x4bc321
test eax, eax
jne 0x4bc46c
cmp dword [ebp - 0x44], eax
jle 0x4bc8a3
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 8]
cmp ecx, 1
jbe 0x4bc4fd
mov edx, dword [ebp - 0x2c]
mov ebx, dword [edi + 0x5c8]
mov dword [ebp - 0x1c], eax
mov eax, edx
or eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], ebx
je 0x4bc4bb
add edx, 0xffffffff
mov dword [ebp - 0x2c], edx
adc dword [ebp - 0x20], 0xffffffff
js 0x4bc46c
jg 0x4bc2b5
test edx, edx
jne 0x4bc2b5
mov ebx, dword [ebp - 0xc]
mov ecx, edi
call fcn.004b48d0
test eax, eax
jne 0x4bcab2
test ebx, ebx
jne 0x4bcacc
cmp dword [esi + 0x492c], 0xc8
je 0x4bc908
mov ecx, edi
call fcn.004b5ad0
test eax, eax
jne 0x4bcaab
cmp byte [edi + 0x28d], al
je 0x4bc908
mov bl, 1
mov byte [ebp - 1], bl
jmp 0x4bc90f
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0
push eax
push ecx
mov edx, ebx
mov ecx, edi
call fcn.004d1890
mov ecx, dword [ebp - 8]
add esp, 8
cmp eax, 0xffffffff
jne 0x4bc2b5
push str.chunk_reading_DONE_n
push esi
call fcn.004aee40
mov eax, dword [ebp - 0x10]
add esp, 8
xor ecx, ecx
mov dword [eax], 2
jmp 0x4bc2b2
mov edx, dword [ebp - 0x18]
inc edx
cmp byte [ebx], 0xa
mov dword [ebp - 0x18], edx
je 0x4bc512
inc ebx
mov dword [ebp - 0x14], ebx
jmp 0x4bc7b1
cmp byte [esi + 0x370], 0
mov ebx, dword [ebp - 0x30]
je 0x4bc533
push edi
push edx
push ebx
mov edx, 1
mov ecx, esi
call fcn.004af950
mov edx, dword [ebp - 0x18]
add esp, 0xc
cmp byte [esi + 0x4d8], 0
jne 0x4bc57a
xor eax, eax
mov ecx, edx
cmp byte [esi + 0x365], al
setne al
add eax, 2
mov dword [ebp - 0x28], eax
test edx, edx
jne 0x4bc561
push ebx
call fcn.006e5360
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x28]
push ecx
push ebx
mov edx, eax
mov ecx, edi
call fcn.004af600
add esp, 8
test eax, eax
jne 0x4bcaab
mov edx, dword [ebp - 0x18]
add dword [esi + 0x493c], edx
add dword [esi + 0xa0], edx
mov al, byte [ebx]
cmp al, 0xd
je 0x4bc7c3
cmp al, 0xa
je 0x4bc7c3
push str.WWW_Authenticate:
mov byte [edx + ebx], 0
call fcn.006e5360
add esp, 4
mov edx, ebx
mov ecx, str.WWW_Authenticate:
push eax
call fcn.004ca830
add esp, 4
test eax, eax
je 0x4bc5cd
mov eax, dword [esi + 0xe8]
mov dword [ebp - 0x30], eax
cmp eax, 0x191
je 0x4bc5fe
push str.Proxy_authenticate:
call fcn.006e5360
add esp, 4
mov edx, ebx
mov ecx, str.Proxy_authenticate:
push eax
call fcn.004ca830
add esp, 4
test eax, eax
je 0x4bc640
mov eax, dword [esi + 0xe8]
mov dword [ebp - 0x30], eax
cmp eax, 0x197
jne 0x4bc640
mov ecx, ebx
call fcn.004b57c0
mov ebx, eax
test ebx, ebx
je 0x4bc96e
cmp dword [ebp - 0x30], 0x197
mov ecx, edi
push ebx
sete dl
call fcn.004b63f0
add esp, 4
mov dword [ebp - 0x30], eax
push ebx
call fcn.006d6340
mov eax, dword [ebp - 0x30]
add esp, 4
test eax, eax
jne 0x4bcaab
jmp 0x4bc79d
push str.Content_Length:
call fcn.006e5360
add esp, 4
mov edx, ebx
mov ecx, str.Content_Length:
push eax
call fcn.004ca830
add esp, 4
test eax, eax
je 0x4bc6ad
mov ecx, dword [esi + 0xe8]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x4bc686
push ecx
push str.Ignoring_Content_Length_in_CONNECT__03d_response_n
push esi
call fcn.004aee40
add esp, 0xc
jmp 0x4bc79d
push 0xa
push 0
push str.Content_Length:
call fcn.006e5360
add esp, 4
add eax, ebx
push eax
call fcn.006e3eb5
add esp, 0xc
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x20], edx
jmp 0x4bc79d
push str.close
mov edx, str.Connection:
mov ecx, ebx
call fcn.004b6e60
add esp, 4
test al, al
je 0x4bc6ce
mov byte [ebp - 1], 1
jmp 0x4bc79d
push str.Transfer_Encoding:
call fcn.006e5360
add esp, 4
mov edx, ebx
mov ecx, str.Transfer_Encoding:
push eax
call fcn.004ca830
add esp, 4
test eax, eax
je 0x4bc755
mov ecx, dword [esi + 0xe8]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x4bc714
push ecx
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
push esi
call fcn.004aee40
add esp, 0xc
jmp 0x4bc79d
push str.chunked
mov edx, str.Transfer_Encoding:
mov ecx, ebx
call fcn.004b6e60
add esp, 4
test al, al
je 0x4bc79d
push str.CONNECT_responded_chunked_n
push esi
call fcn.004aee40
add esp, 8
mov byte [ebp - 2], 1
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x28], 0
jmp 0x4bc79d
push str.close
mov edx, str.Proxy_Connection:
mov ecx, ebx
call fcn.004b6e60
add esp, 4
test al, al
je 0x4bc773
mov byte [ebp - 1], 1
jmp 0x4bc79d
lea eax, [esi + 0xe8]
push eax
lea eax, [ebp - 0x4c]
push eax
push str.HTTP_1._d__d
push ebx
call fcn.004a7f90
add esp, 0x10
cmp eax, 2
jne 0x4bc79d
mov eax, dword [esi + 0xe8]
mov dword [esi + 0x492c], eax
mov ebx, dword [edi + 0x5c8]
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x30], ebx
mov ecx, dword [ebp - 8]
cmp dword [ebp - 0x1c], 0x4000
jb 0x4bc2b5
jmp 0x4bc46c
cmp dword [esi + 0xe8], 0x197
mov eax, dword [edi + 0x5c8]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14], eax
jne 0x4bc88d
cmp byte [esi + 0x4774], 0
jne 0x4bc88d
mov edx, dword [ebp - 0x2c]
mov eax, edx
mov ecx, dword [ebp - 0x20]
or eax, ecx
mov dword [ebp - 8], 2
je 0x4bc827
push ecx
push edx
push str.Ignore__I64d_bytes_of_response_body_n
push esi
call fcn.004aee40
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x14]
mov dword [eax], 2
jmp 0x4bc2b5
cmp byte [ebp - 2], 0
je 0x4bc88d
push str.Ignore_chunked_response_body_n
push esi
call fcn.004aee40
add esp, 8
mov byte [esi + 0x119], 1
cmp byte [ebx + 1], 0xa
lea eax, [ebx + 1]
lea ecx, [ebp - 0x44]
cmovne eax, ebx
push ecx
push ecx
mov ecx, edi
mov dword [ebp - 0x30], eax
lea edx, [eax + 1]
call fcn.004d1890
add esp, 8
cmp eax, 0xffffffff
jne 0x4bc879
push str.chunk_reading_DONE_n
push esi
call fcn.004aee40
add esp, 8
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
mov ebx, dword [ebp - 0x14]
mov dword [eax], 2
jmp 0x4bc2b5
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 8], ecx
mov dword [eax], 2
jmp 0x4bc2b5
cmp dword [esi + 0x160], 0
je 0x4bc8cf
cmp dword [esi + 0x476c], 0
je 0x4bc8cf
push str.Proxy_CONNECT_connection_closed_n
push esi
mov byte [edi + 0x2a6], 1
call fcn.004aee40
add esp, 8
jmp 0x4bc46c
push str.Proxy_CONNECT_aborted
mov ebx, 1
push esi
mov dword [ebp - 0xc], ebx
call fcn.004aef10
add esp, 8
jmp 0x4bc46f
push str.Proxy_CONNECT_aborted_due_to_timeout
push esi
call fcn.004aef10
mov edi, dword [ebp - 0x34]
mov ebx, 2
add esp, 8
mov dword [ebp - 0xc], ebx
jmp 0x4bc46f
mov bl, byte [ebp - 1]
test bl, bl
je 0x4bc91c
cmp dword [esi + 0x120], 0
jne 0x4bc99d
mov eax, dword [esi + 0x120]
mov ecx, dword [ebp - 0x10]
test eax, eax
je 0x4bc9b2
cmp dword [ecx], 2
jne 0x4bc951
push 0
push str.TUNNEL_STATE_switched_to:__d_n
push esi
mov dword [ecx], 0
call fcn.004aee40
mov eax, dword [esi + 0x120]
add esp, 0xc
mov ecx, dword [ebp - 0x10]
test eax, eax
jne 0x4bbf77
jmp 0x4bc9b2
push dword [ebp - 0x30]
call fcn.006d6340
add esp, 4
mov ecx, dword [ebp - 8]
call fcn.004b6a20
mov eax, 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.CONNECT_response_too_large_
push esi
call fcn.004aef10
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x38]
mov ecx, edi
mov edx, dword [edx]
call fcn.004b0f90
mov eax, dword [ebp - 0x38]
mov dword [eax], 0xffffffff
cmp dword [esi + 0xe8], 0xc8
je 0x4bca65
test bl, bl
je 0x4bc9e6
cmp dword [esi + 0x120], 0
je 0x4bc9e6
push str.Connect_me_again_please_n
push esi
mov byte [edi + 0x2a6], 1
call fcn.004aee40
add esp, 8
jmp 0x4bca33
push dword [esi + 0x120]
call fcn.006d6340
mov dword [esi + 0x120], 0
add esp, 4
mov eax, dword [edi + 0x2c8]
mov eax, dword [eax + 0x40]
and eax, 0x200
sete cl
test eax, eax
jne 0x4bca21
cmp cl, byte [edi + 0x28d]
je 0x4bca21
mov byte [edi + 0x28d], cl
mov ebx, dword [ebp - 0x38]
mov ecx, edi
mov edx, dword [ebx]
call fcn.004b0f90
mov dword [ebx], 0xffffffff
mov eax, dword [ebp - 0x10]
mov dword [eax], 0
cmp byte [edi + 0x2a6], 0
jne 0x4bcaa9
push dword [esi + 0xe8]
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push esi
call fcn.004aef10
add esp, 0xc
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov dword [eax], 2
push dword [edi + 0x2dc]
call fcn.006d6340
add esp, 4
mov dword [edi + 0x2dc], 0
mov byte [esi + 0x4770], 1
push str.Proxy_replied_OK_to_CONNECT_request_n
push esi
call fcn.004aee40
mov byte [esi + 0x119], 0
add esp, 8
mov byte [edi + 0x29f], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x2a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Proxy_CONNECT_aborted_due_to_timeout
push esi
call fcn.004aef10
add esp, 8
pop edi
pop esi
mov eax, 0x38
pop ebx
mov esp, ebp
pop ebp
ret