Function at 0x43c3e0
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 + 0x57c], 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 0x43d018
mov dword [esi + 0x2d0], ebx
mov edi, edi
cmp dword [esi + eax*4 + 0x57c], ebx
jne 0x43c695
mov edx, dword [esp + 0x58]
push edi
push edx
push str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
mov ecx, ebp
call fcn.004140b0
mov eax, dword [ebp + 0x10c]
add esp, 0xc
push eax
call dword [0x46f554]
add esp, 4
push 0xc
push 1
mov dword [ebp + 0x10c], ebx
call dword [0x46f560]
add esp, 8
mov dword [esp + 0x18], eax
cmp eax, ebx
je 0x43ce4c
mov ecx, dword [esp + 0x58]
push edi
push ecx
push str._s:_hu
call fcn.00413b70
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x43ce43
push 1
push edi
push str.CONNECT
call fcn.00427f80
add esp, 0xc
push edi
mov ebx, eax
call dword [0x46f554]
add esp, 4
test ebx, ebx
jne 0x43c660
cmp dword [esi + 0xf8], 1
mov ebx, 0x461377
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], 0x4664ec
je 0x43c4ec
mov dword [esp + 0x1c], 0x4664e8
mov edi, dword [esp + 0x58]
mov eax, dword [esi + 0x290]
cmp edi, dword [esi + 0x98]
je 0x43c50f
push 0x3a
push edi
call fcn.0044e3a0
add esp, 8
neg eax
sbb eax, eax
neg eax
test eax, eax
je 0x43c51f
mov ecx, 0x464de8
mov eax, 0x464dec
jmp 0x43c523
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.00413b70
mov edi, eax
add esp, 0x14
test edi, edi
je 0x43ce43
mov ebx, str.Host:
mov edx, esi
call fcn.00427810
test eax, eax
jne 0x43c56c
push edi
push str.Host:__s_r_n
call fcn.00413b70
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x43ce39
mov ebx, str.Proxy_Connection:
mov edx, esi
call fcn.00427810
test eax, eax
jne 0x43c584
mov dword [esp + 0x24], str.Proxy_Connection:_Keep_Alive_r_n
mov ebx, str.User_Agent:
mov edx, esi
call fcn.00427810
test eax, eax
jne 0x43c5a6
cmp dword [ebp + 0x4a4], eax
je 0x43c5a6
mov eax, dword [esi + 0x328]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x324]
test eax, eax
jne 0x43c5b5
mov eax, 0x461377
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.004285a0
add esp, 0x1c
cmp dword [esp + 0x14], 0
mov ebx, eax
je 0x43c5fa
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x43c5fa
mov eax, edx
push eax
call dword [0x46f554]
add esp, 4
push edi
call dword [0x46f554]
add esp, 4
test ebx, ebx
jne 0x43c64c
mov edi, dword [esp + 0x18]
push 1
push esi
mov ebx, edi
call fcn.00428a20
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x43c64c
push 0x461374
mov eax, edi
call fcn.004285a0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x43c64c
push eax
lea ecx, [ebp + 0x884c]
push ecx
mov ecx, dword [esp + 0x5c]
push esi
push edi
call fcn.00428360
add esp, 0x10
mov ebx, eax
xor edi, edi
test ebx, ebx
je 0x43c674
push str.Failed_sending_CONNECT_to_proxy
mov eax, ebp
call fcn.00414140
jmp 0x43c671
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
push eax
call dword [0x46f554]
mov edi, dword [esp + 0x1c]
add esp, 4
push edi
call dword [0x46f554]
add esp, 4
test ebx, ebx
jne 0x43ce59
mov ecx, dword [esp + 0x54]
mov dword [esi + ecx*4 + 0x57c], 1
mov eax, dword [ebp + 0x1e0]
xor ecx, ecx
xor esi, esi
mov edi, 0x493e0
test eax, eax
jle 0x43c6ab
lea ecx, [esi + 1]
mov edx, dword [ebp + 0x1e4]
test edx, edx
jle 0x43c6b8
or ecx, 2
sub ecx, 1
je 0x43c6cd
sub ecx, 1
je 0x43c6cb
sub ecx, 1
jne 0x43c6d2
cmp eax, edx
jl 0x43c6cd
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.00449630
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 0x43ce63
xor ebx, ebx
cmp esi, ebx
jl 0x43ce63
jg 0x43c750
cmp edi, ebx
jbe 0x43ce63
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
call fcn.0041fff0
test eax, eax
je 0x43d018
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 0x43c8d4
mov eax, dword [esp + 0x50]
push eax
call fcn.00426f30
add esp, 4
test eax, eax
jne 0x43ce7f
lea ecx, [ebp + 0x46cc]
cmp dword [esp + 0x14], ecx
jae 0x43ce8c
mov eax, dword [ebp + 0x1e0]
xor ecx, ecx
xor edi, edi
mov ebx, 0x493e0
test eax, eax
jle 0x43c7c9
lea ecx, [edi + 1]
mov edx, dword [ebp + 0x1e4]
test edx, edx
jle 0x43c7d6
or ecx, 2
sub ecx, 1
je 0x43c7eb
sub ecx, 1
je 0x43c7e9
sub ecx, 1
jne 0x43c7f0
cmp eax, edx
jl 0x43c7eb
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.00449630
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 0x43cd4c
test edi, edi
jl 0x43cd4c
jg 0x43c86c
test ebx, ebx
jbe 0x43cd4c
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.00414760
add esp, 0xc
cmp eax, 0x51
jne 0x43c92c
test edi, edi
jg 0x43c8a3
jl 0x43c8aa
cmp ebx, 0x3e8
jb 0x43c8aa
mov ebx, 0x3e8
xor edi, edi
mov eax, dword [esp + 0x30]
push edi
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.00421190
add esp, 0x14
cmp eax, 0xffffffff
je 0x43cd68
cmp dword [esp + 0x24], 0x4000
jb 0x43c783
mov esi, dword [esp + 0x50]
push esi
call fcn.00426f30
add esp, 4
test eax, eax
jne 0x43ce7f
cmp dword [esp + 0x2c], eax
jne 0x43ce72
mov ebx, 0xc8
cmp dword [ebp + 0x8838], ebx
je 0x43cdce
mov eax, esi
call fcn.00427c70
test eax, eax
jne 0x43d01a
cmp dword [esi + 0x26c], eax
je 0x43cdce
mov dword [esp + 0x28], 1
jmp 0x43cdd5
xor edx, edx
cmp eax, edx
jne 0x43c8d4
cmp dword [esp + 0x38], edx
jle 0x43cd84
mov eax, 1
add dword [esp + 0x24], eax
cmp dword [esp + 0x18], eax
jle 0x43c9dc
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 0x43c98e
add ecx, 0xffffffff
adc dword [esp + 0x48], 0xffffffff
mov dword [esp + 0x44], ecx
js 0x43c8d4
jg 0x43c783
cmp ecx, edx
jbe 0x43c8d4
jmp 0x43c783
mov edi, dword [esp + 0x50]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, 1
mov dword [esp + 0x40], edx
call fcn.0043f7b0
add esp, 4
cmp eax, 0xffffffff
jne 0x43c783
push str.chunk_reading_DONE_n
mov ecx, ebp
call fcn.004140b0
mov edx, dword [esp + 0x58]
add esp, 4
mov dword [esp + 0x18], 0
mov dword [edi + edx*4 + 0x57c], 2
jmp 0x43c783
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add esi, eax
cmp byte [ecx], 0xa
mov dword [esp + 0x1c], esi
je 0x43c9f8
add dword [esp + 0x14], eax
jmp 0x43c8c6
mov edi, dword [esp + 0x20]
cmp dword [ebp + 0x3bc], edx
je 0x43ca22
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
push edx
push eax
push edi
mov ebx, 1
mov esi, ebp
call fcn.00414890
mov esi, dword [esp + 0x28]
add esp, 0xc
cmp dword [ebp + 0x3a4], 0
mov edx, 2
je 0x43ca35
mov edx, 3
mov eax, esi
test esi, esi
jne 0x43ca49
mov eax, edi
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ca40
sub eax, ebx
mov ebx, dword [esp + 0x50]
push eax
push edx
push ebx
mov eax, edi
call fcn.00414550
add dword [ebp + 0x8848], esi
add dword [ebp + 0x80], esi
add esp, 0xc
test eax, eax
jne 0x43d01a
mov al, byte [edi]
cmp al, 0xd
je 0x43cc4d
cmp al, 0xa
je 0x43cc4d
push edi
mov eax, 0x11
mov ecx, str.WWW_Authenticate:
mov byte [esi + edi], 0
call fcn.00413e30
add esp, 4
test eax, eax
je 0x43caa8
mov eax, dword [ebp + 0xc8]
cmp eax, 0x191
je 0x43cacc
push edi
mov eax, 0x13
mov ecx, str.Proxy_authenticate:
call fcn.00413e30
add esp, 4
test eax, eax
je 0x43cb14
mov eax, dword [ebp + 0xc8]
cmp eax, 0x197
jne 0x43cb14
xor ecx, ecx
cmp eax, 0x197
sete cl
mov eax, edi
mov dword [esp + 0x3c], ecx
call fcn.00427870
mov esi, eax
test esi, esi
je 0x43ce4c
mov edx, dword [esp + 0x3c]
push edx
push ebx
call fcn.00428080
push esi
mov edi, eax
call dword [0x46f554]
add esp, 0xc
test edi, edi
je 0x43cc32
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.00413e30
add esp, 4
test eax, eax
je 0x43cb68
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 0x43cea8
push 0xa
push 0
add edi, 0xf
push edi
call fcn.00451b9f
add esp, 0xc
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
jmp 0x43cc32
push str.close
mov edx, str.Connection:
mov eax, edi
call fcn.004286e0
add esp, 4
test eax, eax
je 0x43cb8d
mov dword [esp + 0x28], 1
jmp 0x43cc32
push str.chunked
mov edx, str.Transfer_Encoding:
mov eax, edi
call fcn.004286e0
add esp, 4
test eax, eax
je 0x43cbe9
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 0x43cecb
push str.CONNECT_responded_chunked_n
mov ecx, ebp
call fcn.004140b0
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 0x43cc32
push str.close
mov edx, str.Proxy_Connection:
mov eax, edi
call fcn.004286e0
add esp, 4
test eax, eax
je 0x43cc0b
mov dword [esp + 0x28], 1
jmp 0x43cc32
lea esi, [ebp + 0xc8]
push esi
lea edx, [esp + 0x44]
push edx
push str.HTTP_1._d__d
push edi
call fcn.00447060
add esp, 0x10
cmp eax, 2
jne 0x43cc32
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 0x43c8c6
xor edx, edx
cmp dword [ebp + 0xc8], 0x197
lea eax, [ebp + 0x6cc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], eax
jne 0x43cd34
cmp dword [ebp + 0x8780], edx
jne 0x43cd34
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov esi, eax
or esi, ecx
mov dword [esp + 0x18], 2
je 0x43ccb4
push ecx
push eax
push str.Ignore__I64d_bytes_of_response_body_n
mov ecx, ebp
call fcn.004140b0
mov eax, dword [esp + 0x60]
add esp, 0xc
mov dword [ebx + eax*4 + 0x57c], 2
jmp 0x43c783
cmp dword [esp + 0x34], edx
je 0x43cd34
push str.Ignore_chunked_response_body_n
mov ecx, ebp
call fcn.004140b0
add esp, 4
mov dword [ebp + 0x100], 1
cmp byte [edi + 1], 0xa
jne 0x43ccde
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.0043f7b0
add esp, 4
cmp eax, 0xffffffff
jne 0x43cd38
push str.chunk_reading_DONE_n
mov ecx, ebp
call fcn.004140b0
mov edx, dword [esp + 0x58]
mov eax, edx
mov dword [ebx + edx*4 + 0x57c], 2
add esp, 4
mov dword [esp + 0x18], 0
mov dword [ebx + eax*4 + 0x57c], 2
jmp 0x43c783
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x54]
mov dword [ebx + eax*4 + 0x57c], 2
jmp 0x43c783
push str.Proxy_CONNECT_aborted_due_to_timeout
mov eax, ebp
call fcn.00414140
add esp, 4
mov dword [esp + 0x2c], 2
jmp 0x43c8d4
push str.Proxy_CONNECT_aborted_due_to_select_poll_error
mov eax, ebp
mov dword [esp + 0x30], 1
call fcn.00414140
add esp, 4
jmp 0x43c8d8
cmp dword [ebp + 0x158], edx
je 0x43cdb2
cmp dword [ebp + 0x8770], edx
je 0x43cdb2
push str.Proxy_CONNECT_connection_closed_n
mov ecx, ebp
mov dword [esi + 0x2d0], 1
call fcn.004140b0
add esp, 4
jmp 0x43c8d8
push str.Proxy_CONNECT_aborted
mov eax, ebp
mov dword [esp + 0x30], 1
call fcn.00414140
add esp, 4
jmp 0x43c8d8
cmp dword [esp + 0x28], 0
je 0x43cde2
cmp dword [ebp + 0x10c], 0
jne 0x43ceee
cmp dword [ebp + 0x10c], 0
mov edi, dword [esp + 0x54]
je 0x43cf09
cmp dword [esi + edi*4 + 0x57c], 2
jne 0x43ce19
push 0
push str.TUNNEL_STATE_switched_to:__d_n
mov ecx, ebp
mov dword [esi + edi*4 + 0x57c], 0
call fcn.004140b0
add esp, 8
cmp dword [ebp + 0x10c], 0
je 0x43cf09
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
xor ebx, ebx
jmp 0x43c430
push edi
call dword [0x46f554]
add esp, 4
mov esi, dword [esp + 0x18]
call fcn.00428340
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.00414140
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.00414140
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.00414140
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.00414140
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.0041fec0
mov dword [esi + edi*4 + 0x1a0], 0xffffffff
cmp dword [ebp + 0xc8], ebx
je 0x43cfd0
cmp dword [esp + 0x28], 0
je 0x43cf40
cmp dword [ebp + 0x10c], 0
je 0x43cf40
push str.Connect_me_again_please_n
mov ecx, ebp
mov dword [esi + 0x2d0], 1
call fcn.004140b0
add esp, 4
jmp 0x43cf99
mov eax, dword [ebp + 0x10c]
push eax
call dword [0x46f554]
mov dword [ebp + 0x10c], 0
mov ecx, dword [esi + 0x310]
mov eax, dword [ecx + 0x40]
add esp, 4
and eax, 0x200
mov ecx, 0
sete cl
test eax, eax
jne 0x43cf82
cmp ecx, dword [esi + 0x26c]
je 0x43cf82
mov dword [esi + 0x26c], ecx
mov eax, dword [esi + edi*4 + 0x1a0]
call fcn.0041fec0
mov dword [esi + edi*4 + 0x1a0], 0xffffffff
mov dword [esi + edi*4 + 0x57c], 0
cmp dword [esi + 0x2d0], 0
jne 0x43d018
mov edx, dword [ebp + 0xc8]
push edx
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
mov eax, ebp
call fcn.00414140
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov dword [esi + edi*4 + 0x57c], 2
mov eax, dword [esi + 0x324]
push eax
call dword [0x46f554]
add esp, 4
xor edi, edi
mov dword [esi + 0x324], edi
push str.Proxy_replied_OK_to_CONNECT_request_n
mov ecx, ebp
mov dword [ebp + 0x8774], 1
call fcn.004140b0
mov dword [ebp + 0x100], edi
add esp, 4
mov dword [esi + 0x2b4], edi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret