Function at 0x42eb90
Capabilities:
Check for time delay via gettickcount
Check http status code

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x44]
push ebx
push ebp
xor ebx, ebx
push esi
mov esi, dword [esp + 0x4c]
cmp dword [esi + eax*4 + 0x5ac], 2
mov ecx, dword [esi + eax*4 + 0x1a0]
mov ebp, dword [esi]
push edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ebx
je 0x42f7c8
mov dword [esi + 0x300], ebx
mov edi, edi
cmp dword [esi + eax*4 + 0x5ac], ebx
jne 0x42ee45
mov edx, dword [esp + 0x58]
push edi
push edx
push str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
mov ecx, ebp
call fcn.0040f940
mov eax, dword [ebp + 0x10c]
add esp, 0xc
push eax
call dword [0x75cccc]
add esp, 4
push 0xc
push 1
mov dword [ebp + 0x10c], ebx
call dword [0x75ccd8]
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x42f5fc
mov ecx, dword [esp + 0x58]
push edi
push ecx
push str._s:_hu
call fcn.0041e470
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x42f5f3
push 1
push edi
push str.CONNECT
call fcn.00418880
add esp, 0xc
push edi
mov ebx, eax
call dword [0x75cccc]
add esp, 4
test ebx, ebx
jne 0x42ee10
cmp dword [esi + 0xf8], 1
mov ebx, 0x71e845
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], 0x720764
je 0x42ec9c
mov dword [esp + 0x1c], 0x720760
mov edi, dword [esp + 0x58]
mov eax, dword [esi + 0x2c0]
cmp edi, dword [esi + 0x98]
je 0x42ecbf
push 0x3a
push edi
call fcn.00562bf0
add esp, 8
neg eax
sbb eax, eax
neg eax
test eax, eax
je 0x42eccf
mov ecx, 0x71ee60
mov eax, 0x71ee64
jmp 0x42ecd3
mov ecx, ebx
mov eax, ebx
mov edx, dword [esp + 0x5c]
push edx
push ecx
push edi
push eax
push str._s_s_s:_hu
call fcn.0041e470
mov edi, eax
add esp, 0x14
test edi, edi
je 0x42f5f3
mov ebx, str.Host:
mov edx, esi
call fcn.00418110
test eax, eax
jne 0x42ed1c
push edi
push str.Host:__s_r_n
call fcn.0041e470
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x42f5e9
mov ebx, str.Proxy_Connection:
mov edx, esi
call fcn.00418110
test eax, eax
jne 0x42ed34
mov dword [esp + 0x24], str.Proxy_Connection:_Keep_Alive_r_n
mov ebx, str.User_Agent:
mov edx, esi
call fcn.00418110
test eax, eax
jne 0x42ed56
cmp dword [ebp + 0x4a4], eax
je 0x42ed56
mov eax, dword [esi + 0x358]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x354]
test eax, eax
jne 0x42ed65
mov eax, 0x71e845
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push ecx
push edi
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
call fcn.00418eb0
add esp, 0x1c
cmp dword [esp + 0x14], 0
mov ebx, eax
je 0x42edaa
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x42edaa
mov eax, edx
push eax
call dword [0x75cccc]
add esp, 4
push edi
call dword [0x75cccc]
add esp, 4
test ebx, ebx
jne 0x42edfc
mov edi, dword [esp + 0x18]
push 1
push esi
mov ebx, edi
call fcn.00419380
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x42edfc
push 0x71eb88
mov eax, edi
call fcn.00418eb0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x42edfc
push eax
lea ecx, [ebp + 0x884c]
push ecx
mov ecx, dword [esp + 0x5c]
push esi
push edi
call fcn.00418c70
add esp, 0x10
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x42ee24
push str.Failed_sending_CONNECT_to_proxy
mov eax, ebp
call fcn.0040f9d0
jmp 0x42ee21
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
push eax
call dword [0x75cccc]
mov edi, dword [esp + 0x1c]
add esp, 4
push edi
call dword [0x75cccc]
add esp, 4
test ebx, ebx
jne 0x42f609
mov ecx, dword [esp + 0x54]
mov dword [esi + ecx*4 + 0x5ac], 1
mov eax, dword [ebp + 0x1e0]
xor ecx, ecx
xor esi, esi
mov edi, 0x493e0
test eax, eax
jle 0x42ee5b
lea ecx, [esi + 1]
mov edx, dword [ebp + 0x1e4]
test edx, edx
jle 0x42ee68
or ecx, 2
sub ecx, 1
je 0x42ee7d
sub ecx, 1
je 0x42ee7b
sub ecx, 1
jne 0x42ee82
cmp eax, edx
jl 0x42ee7d
mov eax, edx
cdq
mov esi, edx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov ebx, edx
shr ebx, 6
mov edx, ebx
imul edx, edx, 0x3e8
sub ecx, edx
mov edx, dword [ebp + 0x614]
imul ecx, ecx, 0x3e8
mov eax, ecx
push 0xffffffffffffffff
sub eax, edx
cdq
push 0xfffffc18
push edx
push eax
call fcn.0056a120
mov ecx, eax
mov eax, edx
mov dword [esp + 0x24], eax
mov eax, ebx
sub eax, dword [ebp + 0x610]
imul eax, eax, 0x3e8
cdq
sub ecx, eax
mov eax, dword [esp + 0x24]
sbb eax, edx
add edi, ecx
adc esi, eax
mov edx, edi
or edx, esi
je 0x42f613
xor ebx, ebx
cmp esi, ebx
jl 0x42f613
jg 0x42ef00
cmp edi, ebx
jbe 0x42f613
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
call fcn.0040dba0
test eax, eax
je 0x42f7c8
lea eax, [ebp + 0x6cc]
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x18], 0
je 0x42f084
mov eax, dword [esp + 0x50]
push eax
call fcn.00417820
add esp, 4
test eax, eax
jne 0x42f62f
lea ecx, [ebp + 0x46cc]
cmp dword [esp + 0x14], ecx
jae 0x42f63c
mov eax, dword [ebp + 0x1e0]
xor ecx, ecx
xor edi, edi
mov ebx, 0x493e0
test eax, eax
jle 0x42ef79
lea ecx, [edi + 1]
mov edx, dword [ebp + 0x1e4]
test edx, edx
jle 0x42ef86
or ecx, 2
sub ecx, 1
je 0x42ef9b
sub ecx, 1
je 0x42ef99
sub ecx, 1
jne 0x42efa0
cmp eax, edx
jl 0x42ef9b
mov eax, edx
cdq
mov edi, edx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov esi, edx
shr esi, 6
mov edx, esi
imul edx, edx, 0x3e8
sub ecx, edx
mov edx, dword [ebp + 0x614]
imul ecx, ecx, 0x3e8
mov eax, ecx
push 0xffffffffffffffff
sub eax, edx
cdq
push 0xfffffc18
push edx
push eax
call fcn.0056a120
mov ecx, eax
mov eax, edx
mov dword [esp + 0x3c], eax
mov eax, esi
sub eax, dword [ebp + 0x610]
imul eax, eax, 0x3e8
cdq
sub ecx, eax
mov eax, dword [esp + 0x3c]
sbb eax, edx
add ebx, ecx
adc edi, eax
mov edx, ebx
or edx, edi
je 0x42f4fc
test edi, edi
jl 0x42f4fc
jg 0x42f01c
test ebx, ebx
jbe 0x42f4fc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x50]
lea eax, [esp + 0x38]
push eax
push ecx
push edx
mov edx, 1
call fcn.00410010
add esp, 0xc
cmp eax, 0x51
jne 0x42f0dc
test edi, edi
jg 0x42f053
jl 0x42f05a
cmp ebx, 0x3e8
jb 0x42f05a
mov ebx, 0x3e8
xor edi, edi
mov eax, dword [esp + 0x30]
push edi
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.0040ef40
add esp, 0x14
cmp eax, 0xffffffff
je 0x42f518
cmp dword [esp + 0x24], 0x4000
jb 0x42ef33
mov esi, dword [esp + 0x50]
push esi
call fcn.00417820
add esp, 4
test eax, eax
jne 0x42f62f
cmp dword [esp + 0x2c], eax
jne 0x42f622
mov ebx, 0xc8
cmp dword [ebp + 0x8838], ebx
je 0x42f57e
mov eax, esi
call fcn.00418570
test eax, eax
jne 0x42f7ca
cmp dword [esi + 0x29c], eax
je 0x42f57e
mov dword [esp + 0x28], 1
jmp 0x42f585
xor edx, edx
cmp eax, edx
jne 0x42f084
cmp dword [esp + 0x38], edx
jle 0x42f534
mov eax, 1
add dword [esp + 0x24], eax
cmp dword [esp + 0x18], eax
jle 0x42f18c
mov ecx, dword [esp + 0x44]
mov esi, ecx
or esi, dword [esp + 0x48]
lea eax, [ebp + 0x6cc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
je 0x42f13e
add ecx, 0xffffffff
adc dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x44], ecx
js 0x42f084
jg 0x42ef33
cmp ecx, edx
jbe 0x42f084
jmp 0x42ef33
mov edi, dword [esp + 0x50]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, 1
mov dword [esp + 0x40], edx
call fcn.00436f20
add esp, 4
cmp eax, 0xffffffff
jne 0x42ef33
push str.chunk_reading_DONE_n
mov ecx, ebp
call fcn.0040f940
mov edx, dword [esp + 0x58]
add esp, 4
mov dword [esp + 0x18], 0
mov dword [edi + edx*4 + 0x5ac], 2
jmp 0x42ef33
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add esi, eax
cmp byte [ecx], 0xa
mov dword [esp + 0x1c], esi
je 0x42f1a8
add dword [esp + 0x14], eax
jmp 0x42f076
mov edi, dword [esp + 0x20]
cmp dword [ebp + 0x3bc], edx
je 0x42f1d2
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
push edx
push eax
push edi
mov ebx, 1
mov esi, ebp
call fcn.004101a0
mov esi, dword [esp + 0x28]
add esp, 0xc
cmp dword [ebp + 0x3a4], 0
mov edx, 2
je 0x42f1e5
mov edx, 3
mov eax, esi
test esi, esi
jne 0x42f1f9
mov eax, edi
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42f1f0
sub eax, ebx
mov ebx, dword [esp + 0x50]
push eax
push edx
push ebx
mov eax, edi
call fcn.0040fde0
add dword [ebp + 0x8848], esi
add dword [ebp + 0x80], esi
add esp, 0xc
test eax, eax
jne 0x42f7ca
mov al, byte [edi]
cmp al, 0xd
je 0x42f3fd
cmp al, 0xa
je 0x42f3fd
push edi
mov eax, 0x11
mov ecx, str.WWW_Authenticate:
mov byte [esi + edi], 0
call fcn.0041c4c0
add esp, 4
test eax, eax
je 0x42f258
mov eax, dword [ebp + 0xc8]
cmp eax, 0x191
je 0x42f27c
push edi
mov eax, 0x13
mov ecx, str.Proxy_authenticate:
call fcn.0041c4c0
add esp, 4
test eax, eax
je 0x42f2c4
mov eax, dword [ebp + 0xc8]
cmp eax, 0x197
jne 0x42f2c4
xor ecx, ecx
cmp eax, 0x197
sete cl
mov eax, edi
mov dword [esp + 0x3c], ecx
call fcn.00418170
mov esi, eax
test esi, esi
je 0x42f5fc
mov edx, dword [esp + 0x3c]
push edx
push ebx
call fcn.00418980
push esi
mov edi, eax
call dword [0x75cccc]
add esp, 0xc
test edi, edi
je 0x42f3e2
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push edi
mov eax, 0xf
mov ecx, str.Content_Length:
call fcn.0041c4c0
add esp, 4
test eax, eax
je 0x42f318
mov ecx, dword [ebp + 0xc8]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
je 0x42f658
push 0xa
push 0
add edi, 0xf
push edi
call fcn.0056a879
add esp, 0xc
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
jmp 0x42f3e2
push str.close
mov edx, str.Connection:
mov eax, edi
call fcn.00418ff0
add esp, 4
test eax, eax
je 0x42f33d
mov dword [esp + 0x28], 1
jmp 0x42f3e2
push str.chunked
mov edx, str.Transfer_Encoding:
mov eax, edi
call fcn.00418ff0
add esp, 4
test eax, eax
je 0x42f399
mov ecx, dword [ebp + 0xc8]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 2
je 0x42f67b
push str.CONNECT_responded_chunked_n
mov ecx, ebp
call fcn.0040f940
add esp, 4
xor eax, eax
mov dword [esp + 0x34], 1
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x20], eax
jmp 0x42f3e2
push str.close
mov edx, str.Proxy_Connection:
mov eax, edi
call fcn.00418ff0
add esp, 4
test eax, eax
je 0x42f3bb
mov dword [esp + 0x28], 1
jmp 0x42f3e2
lea esi, [ebp + 0xc8]
push esi
lea edx, [esp + 0x44]
push edx
push str.HTTP_1._d__d
push edi
call fcn.00562348
add esp, 0x10
cmp eax, 2
jne 0x42f3e2
mov eax, dword [esi]
mov dword [ebp + 0x8838], eax
lea eax, [ebp + 0x6cc]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
jmp 0x42f076
xor edx, edx
cmp dword [ebp + 0xc8], 0x197
lea eax, [ebp + 0x6cc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
jne 0x42f4e4
cmp dword [ebp + 0x8780], edx
jne 0x42f4e4
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov esi, eax
or esi, ecx
mov dword [esp + 0x18], 2
je 0x42f464
push ecx
push eax
push str.Ignore__I64d_bytes_of_response_body_n
mov ecx, ebp
call fcn.0040f940
mov eax, dword [esp + 0x60]
add esp, 0xc
mov dword [ebx + eax*4 + 0x5ac], 2
jmp 0x42ef33
cmp dword [esp + 0x34], edx
je 0x42f4e4
push str.Ignore_chunked_response_body_n
mov ecx, ebp
call fcn.0040f940
add esp, 4
mov dword [ebp + 0x100], 1
cmp byte [edi + 1], 0xa
jne 0x42f48e
inc edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x38]
push ecx
inc eax
mov ecx, 1
mov edi, ebx
call fcn.00436f20
add esp, 4
cmp eax, 0xffffffff
jne 0x42f4e8
push str.chunk_reading_DONE_n
mov ecx, ebp
call fcn.0040f940
mov edx, dword [esp + 0x58]
mov eax, edx
mov dword [ebx + edx*4 + 0x5ac], 2
add esp, 4
mov dword [esp + 0x18], 0
mov dword [ebx + eax*4 + 0x5ac], 2
jmp 0x42ef33
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x54]
mov dword [ebx + eax*4 + 0x5ac], 2
jmp 0x42ef33
push str.Proxy_CONNECT_aborted_due_to_timeout
mov eax, ebp
call fcn.0040f9d0
add esp, 4
mov dword [esp + 0x2c], 2
jmp 0x42f084
push str.Proxy_CONNECT_aborted_due_to_select_poll_error
mov eax, ebp
mov dword [esp + 0x30], 1
call fcn.0040f9d0
add esp, 4
jmp 0x42f088
cmp dword [ebp + 0x158], edx
je 0x42f562
cmp dword [ebp + 0x8770], edx
je 0x42f562
push str.Proxy_CONNECT_connection_closed_n
mov ecx, ebp
mov dword [esi + 0x300], 1
call fcn.0040f940
add esp, 4
jmp 0x42f088
push str.Proxy_CONNECT_aborted
mov eax, ebp
mov dword [esp + 0x30], 1
call fcn.0040f9d0
add esp, 4
jmp 0x42f088
cmp dword [esp + 0x28], 0
je 0x42f592
cmp dword [ebp + 0x10c], 0
jne 0x42f69e
cmp dword [ebp + 0x10c], 0
mov edi, dword [esp + 0x54]
je 0x42f6b9
cmp dword [esi + edi*4 + 0x5ac], 2
jne 0x42f5c9
push 0
push str.TUNNEL_STATE_switched_to:__d_n
mov ecx, ebp
mov dword [esi + edi*4 + 0x5ac], 0
call fcn.0040f940
add esp, 8
cmp dword [ebp + 0x10c], 0
je 0x42f6b9
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
xor ebx, ebx
jmp 0x42ebe0
push edi
call dword [0x75cccc]
add esp, 4
mov esi, dword [esp + 0x18]
call fcn.00418c50
mov eax, 0x1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push str.Proxy_CONNECT_aborted_due_to_timeout
mov eax, ebp
call fcn.0040f9d0
add esp, 4
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov eax, 0x2a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push str.CONNECT_response_too_large_
mov eax, ebp
call fcn.0040f9d0
add esp, 4
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov ecx, dword [ebp + 0xc8]
push ecx
push str.Content_Length:_in__03d_response
mov eax, ebp
call fcn.0040f9d0
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov edx, dword [ebp + 0xc8]
push edx
push str.Transfer_Encoding:_in__03d_response
mov eax, ebp
call fcn.0040f9d0
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov edi, dword [esp + 0x54]
mov eax, dword [esi + edi*4 + 0x1a0]
call fcn.0040da20
mov dword [esi + edi*4 + 0x1a0], 0xffffffff
cmp dword [ebp + 0xc8], ebx
je 0x42f780
cmp dword [esp + 0x28], 0
je 0x42f6f0
cmp dword [ebp + 0x10c], 0
je 0x42f6f0
push str.Connect_me_again_please_n
mov ecx, ebp
mov dword [esi + 0x300], 1
call fcn.0040f940
add esp, 4
jmp 0x42f749
mov eax, dword [ebp + 0x10c]
push eax
call dword [0x75cccc]
mov dword [ebp + 0x10c], 0
mov ecx, dword [esi + 0x340]
mov eax, dword [ecx + 0x40]
add esp, 4
and eax, 0x200
mov ecx, 0
sete cl
test eax, eax
jne 0x42f732
cmp ecx, dword [esi + 0x29c]
je 0x42f732
mov dword [esi + 0x29c], ecx
mov eax, dword [esi + edi*4 + 0x1a0]
call fcn.0040da20
mov dword [esi + edi*4 + 0x1a0], 0xffffffff
mov dword [esi + edi*4 + 0x5ac], 0
cmp dword [esi + 0x300], 0
jne 0x42f7c8
mov edx, dword [ebp + 0xc8]
push edx
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
mov eax, ebp
call fcn.0040f9d0
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov dword [esi + edi*4 + 0x5ac], 2
mov eax, dword [esi + 0x354]
push eax
call dword [0x75cccc]
add esp, 4
xor edi, edi
mov dword [esi + 0x354], edi
push str.Proxy_replied_OK_to_CONNECT_request_n
mov ecx, ebp
mov dword [ebp + 0x8774], 1
call fcn.0040f940
mov dword [ebp + 0x100], edi
add esp, 4
mov dword [esi + 0x2e4], edi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret