Function at 0x458dd6
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
mov edi, dword [ebp + 8]
mov eax, dword [0x7024bc]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ebx, dword [edi + 0x5c8]
test ebx, ebx
jne 0x458e5c
push 0x4028
push 1
call dword [0x700028]
add esp, 8
test eax, eax
je 0x459742
mov esi, eax
push str.allocate_connect_buffer__n
push dword [edi]
call fcn.0046235f
add esp, 8
mov dword [edi + 0x5c8], esi
xor eax, eax
mov dword [esi + 0x401c], eax
mov dword [esi + 0x4004], 1
mov dword [esi + 0x4008], esi
mov dword [esi + 0x400c], esi
mov dword [esi + 0x4010], eax
mov dword [esi + 0x4014], eax
mov byte [esi + 0x4020], 0
mov ebx, dword [edi + 0x5c8]
mov dword [ebp - 0x14], 0
test ebx, ebx
je 0x458e70
cmp dword [ebx + 0x401c], 2
jne 0x458e92
mov eax, dword [edi + 0x5c8]
xor esi, esi
test eax, eax
je 0x45994f
cmp dword [eax + 0x401c], 2
je 0x45994f
jmp 0x45996e
mov eax, dword [ebp + 0xc]
mov esi, dword [edi]
mov eax, dword [edi + eax*4 + 0x1a8]
mov dword [ebp - 0x44], eax
mov byte [edi + 0x292], 0
lea eax, [esi + 0x4c20]
mov dword [ebp - 0x3c], eax
lea eax, [ebx + 0x4000]
mov dword [ebp - 0x48], eax
lea eax, [esi + 0xf8]
mov dword [ebp - 0x2c], eax
lea eax, [ebx + 0x4010]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x40], ebx
cmp dword [ebx + 0x401c], 0
jne 0x45912f
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
push str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
push esi
call fcn.0046235f
add esp, 0x10
push dword [esi + 0x140]
call dword [0x70001c]
add esp, 4
mov dword [esi + 0x140], 0
call fcn.004566cc
mov esi, 0x1b
test eax, eax
je 0x45994f
mov dword [ebp - 0x28], eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push str._s:_d
call fcn.0045c5e5
add esp, 0xc
test eax, eax
je 0x45978d
mov edi, eax
push 1
push eax
push str.CONNECT
mov esi, dword [ebp + 8]
push esi
call fcn.00456103
add esp, 0x10
push edi
mov edi, eax
call dword [0x70001c]
add esp, 4
test edi, edi
jne 0x4597a0
cmp dword [esi + 0xf0], 1
mov ecx, 0x67e8ee
mov eax, 0x67e8f2
cmove ecx, eax
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp + 0x10]
cmp dword [esi + 0xa0], eax
mov edi, esi
je 0x458f9e
push 0x3a
push eax
call fcn.00645f30
add esp, 8
test eax, eax
setne al
jmp 0x458fa4
mov al, byte [edi + 0x282]
mov edx, dword [ebp + 0x14]
test al, al
mov eax, 0x676b6c
mov ecx, 0x6727d9
cmove eax, ecx
mov ecx, 0x673412
mov esi, 0x6727d9
cmove ecx, esi
push edx
push eax
push dword [ebp + 0x10]
push ecx
push str._s_s_s:_d
call fcn.0045c5e5
add esp, 0x14
mov dword [ebp - 0x24], eax
test eax, eax
je 0x4597b6
push str.Host
push edi
call fcn.00455c1c
add esp, 8
mov ecx, edi
xor edi, edi
test eax, eax
mov esi, 0x1b
jne 0x45901a
push dword [ebp - 0x24]
push str.Host:__s_r_n
mov edi, ecx
call fcn.0045c5e5
mov ecx, edi
add esp, 8
mov edi, eax
test eax, eax
je 0x459931
push str.Proxy_Connection
push ecx
call fcn.00455c1c
add esp, 8
test eax, eax
mov dword [ebp - 0x34], 0x6727d9
mov esi, 0x6727d9
mov eax, str.Proxy_Connection:_Keep_Alive_r_n
cmove esi, eax
push str.User_Agent
push dword [ebp + 8]
call fcn.00455c1c
add esp, 8
test eax, eax
jne 0x45906a
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x5c0], 0
je 0x45906a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2d8]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x2d4]
test eax, eax
mov edx, 0x6727d9
cmove eax, edx
test edi, edi
mov ecx, edi
cmove ecx, edx
push esi
push dword [ebp - 0x34]
push eax
push ecx
push dword [ebp - 0x38]
push dword [ebp - 0x24]
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
push dword [ebp - 0x28]
call fcn.004569c5
add esp, 0x20
mov esi, eax
test edi, edi
je 0x4590b0
push edi
call dword [0x70001c]
add esp, 4
push dword [ebp - 0x24]
call dword [0x70001c]
add esp, 4
test esi, esi
mov ecx, dword [ebp - 0x20]
jne 0x4597c6
mov esi, dword [ebp - 0x28]
push esi
push 1
mov edi, dword [ebp + 8]
push edi
call fcn.00456b98
add esp, 0xc
test eax, eax
jne 0x45976e
push 0x67e3f3
push esi
call fcn.004569c5
add esp, 8
test eax, eax
jne 0x45976e
push dword [ebp + 0xc]
push 0
push dword [ebp - 0x3c]
push edi
push esi
call fcn.004566fa
add esp, 0x14
test eax, eax
jne 0x45976e
xor esi, esi
push esi
call fcn.004566de
add esp, 4
mov dword [ebx + 0x401c], 1
mov dword [ebx + 0x4000], esi
mov esi, dword [ebp - 0x20]
push 1
xor eax, eax
push eax
push esi
call fcn.0044d164
add esp, 0xc
neg eax
mov eax, 0
sbb eax, edx
jge 0x459775
push dword [ebp + 0xc]
push edi
call fcn.0044e86d
add esp, 8
test al, al
je 0x458e70
cmp dword [ebx + 0x4004], 0
je 0x45960a
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x18], 0xffffffff
mov eax, dword [ebx + 0x400c]
cmp eax, dword [ebp - 0x48]
jae 0x459756
lea ecx, [ebp - 0x18]
push ecx
push 1
push eax
push dword [ebp - 0x44]
push edi
call fcn.00462aae
add esp, 0x14
cmp eax, 0x51
je 0x458e70
mov esi, eax
push edi
call fcn.00460758
add esp, 4
test eax, eax
jne 0x45974c
test esi, esi
jne 0x459613
cmp dword [ebp - 0x18], 0
jle 0x459622
cmp dword [ebx + 0x4004], 2
mov esi, dword [ebp - 0x20]
jl 0x459226
mov dword [ebx + 0x400c], ebx
mov ecx, dword [ebx + 0x4010]
mov eax, dword [ebx + 0x4014]
mov edx, ecx
or edx, eax
je 0x459306
mov edx, ecx
add edx, 0xffffffff
mov esi, eax
adc esi, 0xffffffff
mov ebx, edi
xor edi, edi
inc edi
cmp edi, ecx
mov edi, ebx
mov ebx, dword [ebp - 0x40]
mov ecx, 0
sbb ecx, eax
mov eax, dword [ebp - 0x30]
mov dword [eax], edx
mov dword [eax + 4], esi
mov esi, dword [ebp - 0x20]
jl 0x4594b7
jmp 0x459675
mov eax, dword [ebx + 0x4000]
mov ecx, dword [ebx + 0x400c]
inc eax
mov dword [ebx + 0x4000], eax
cmp byte [ecx], 0xa
jne 0x4592fa
cmp byte [esi + 0x500], 0
je 0x45925e
push edi
push eax
push dword [ebx + 0x4008]
push 1
push esi
call fcn.004623ec
add esp, 0x14
cmp byte [esi + 0x66c], 0
jne 0x459294
cmp byte [esi + 0x4f6], 1
mov eax, 3
sbb eax, 0
push dword [ebx + 0x4000]
push dword [ebx + 0x4008]
push eax
push edi
call fcn.004628f4
add esp, 0x10
test eax, eax
jne 0x4597af
mov eax, dword [ebx + 0x4000]
add dword [esi + 0x4c1c], eax
mov eax, dword [ebx + 0x4000]
add dword [esi + 0xa0], eax
mov eax, dword [ebx + 0x4008]
mov cl, byte [eax]
cmp cl, 0xd
je 0x4592c2
cmp cl, 0xa
jne 0x45934d
mov dword [ebx + 0x400c], ebx
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0x197
jne 0x4592e0
cmp byte [esi + 0x4994], 0
je 0x45942e
mov dword [ebx + 0x4004], 0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x4594b7
jmp 0x45933e
inc ecx
mov dword [ebx + 0x400c], ecx
jmp 0x4594b7
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
push eax
push 1
push ebx
push edi
call fcn.004580c3
add esp, 0x10
cmp eax, 0xffffffff
jne 0x4594b7
push str.chunk_reading_DONE_n
push esi
call fcn.0046235f
add esp, 8
mov dword [ebx + 0x4004], 0
mov dword [ebx + 0x401c], 2
jmp 0x4594b7
mov ecx, dword [ebx + 0x4000]
mov byte [eax + ecx], 0
push 0x11
push dword [ebx + 0x4008]
push str.WWW_Authenticate:
call fcn.00467a30
add esp, 0xc
test eax, eax
je 0x45937f
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0x191
jne 0x45937f
xor ecx, ecx
jmp 0x4593a5
push 0x13
push dword [ebx + 0x4008]
push str.Proxy_authenticate:
call fcn.00467a30
add esp, 0xc
test eax, eax
je 0x4593f4
mov cl, 1
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0x197
jne 0x4593f4
mov esi, ecx
push dword [ebx + 0x4008]
call fcn.00455c82
add esp, 4
test eax, eax
je 0x459947
mov edi, eax
mov eax, esi
movzx eax, al
push edi
push eax
mov esi, dword [ebp + 8]
push esi
call fcn.0045648d
add esp, 0xc
mov dword [ebp - 0x28], eax
push edi
mov edi, esi
call dword [0x70001c]
mov eax, dword [ebp - 0x28]
add esp, 4
test eax, eax
mov esi, dword [ebp - 0x20]
je 0x4594a1
jmp 0x4597af
push 0xf
push dword [ebx + 0x4008]
push str.Content_Length:
call fcn.00467a30
add esp, 0xc
test eax, eax
je 0x45945f
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
lea ecx, [eax - 0xc8]
cmp ecx, 0x63
ja 0x459488
push eax
push str.Ignoring_Content_Length_in_CONNECT__03d_response_n
push esi
call fcn.0046235f
add esp, 0xc
jmp 0x4594a1
mov dword [ebx + 0x4004], 2
mov eax, dword [ebx + 0x4010]
mov ecx, dword [ebx + 0x4014]
mov edx, eax
or edx, ecx
je 0x4594c9
push ecx
push eax
push str.Ignore__I64d_bytes_of_response_body_n
push esi
call fcn.0046235f
add esp, 0x10
jmp 0x4592ea
push str.close
push str.Connection:
push dword [ebx + 0x4008]
call fcn.00456aea
add esp, 0xc
test al, al
je 0x45953f
mov byte [ebx + 0x4020], 1
jmp 0x4594a1
mov eax, dword [ebx + 0x4008]
add eax, 0xf
push dword [ebp - 0x30]
push 0xa
push 0
push eax
call fcn.0046833c
add esp, 0x10
mov dword [ebx + 0x4000], 0
mov dword [ebx + 0x400c], ebx
mov dword [ebx + 0x4008], ebx
cmp dword [ebx + 0x4004], 0
jne 0x459174
jmp 0x459689
cmp byte [ebx + 0x4018], 0
je 0x4592e0
push str.Ignore_chunked_response_body_n
push esi
call fcn.0046235f
add esp, 8
mov byte [esi + 0x139], 1
mov eax, dword [ebx + 0x4008]
cmp byte [eax + 1], 0xa
jne 0x4594fe
inc eax
mov dword [ebx + 0x4008], eax
inc eax
lea ecx, [ebp - 0x18]
push ecx
push 1
push eax
push edi
call fcn.004580c3
add esp, 0x10
cmp eax, 0xffffffff
jne 0x4592ea
push str.chunk_reading_DONE_n
push esi
call fcn.0046235f
add esp, 8
mov dword [ebx + 0x4004], 0
mov dword [ebx + 0x401c], 2
jmp 0x4592ea
push 0x12
push dword [ebx + 0x4008]
push str.Transfer_Encoding:
call fcn.00467a30
add esp, 0xc
test eax, eax
je 0x459573
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
lea ecx, [eax - 0xc8]
cmp ecx, 0x63
ja 0x4595c7
push eax
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
jmp 0x459423
push str.close
push str.Proxy_Connection:
push dword [ebx + 0x4008]
call fcn.00456aea
add esp, 0xc
test al, al
jne 0x45947f
push dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
push eax
push str.HTTP_1._d__d
push dword [ebx + 0x4008]
call fcn.0044bcb0
add esp, 0x10
cmp eax, 2
jne 0x4594a1
mov eax, dword [esi + 0xf8]
mov dword [esi + 0x4c04], eax
jmp 0x4594a1
push str.chunked
push str.Transfer_Encoding:
push dword [ebx + 0x4008]
call fcn.00456aea
add esp, 0xc
test al, al
je 0x4594a1
push str.CONNECT_responded_chunked_n
push esi
call fcn.0046235f
add esp, 8
mov byte [ebx + 0x4018], 1
push edi
call fcn.004580b0
add esp, 4
jmp 0x4594a1
mov dword [ebp - 0x24], 0
jmp 0x459689
mov dword [ebx + 0x4004], 0
mov esi, dword [ebp - 0x20]
jmp 0x459689
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x180], 0
je 0x459655
cmp dword [esi + 0x498c], 0
je 0x459655
mov byte [edi + 0x292], 1
push str.Proxy_CONNECT_connection_closed_n
push esi
call fcn.0046235f
add esp, 8
mov dword [ebp - 0x24], 0
jmp 0x459669
push str.Proxy_CONNECT_aborted
push esi
call fcn.004624d0
add esp, 8
xor eax, eax
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebx + 0x4004], 0
jmp 0x459689
mov dword [ebx + 0x4004], 0
mov dword [ebx + 0x401c], 2
push edi
call fcn.00460758
add esp, 4
test eax, eax
jne 0x45974c
cmp dword [ebp - 0x24], 0
jne 0x459764
mov eax, dword [esi + 0x4c04]
mov ecx, 0xffffff38
add eax, ecx
cmp eax, 0x64
jb 0x4596d4
push edi
call fcn.00455d33
add esp, 4
test eax, eax
jne 0x4597af
cmp byte [edi + 0x279], 0
jne 0x4597e6
cmp byte [ebx + 0x4020], 0
jne 0x4597ed
mov eax, dword [esi + 0x140]
test eax, eax
je 0x459817
cmp dword [ebx + 0x401c], 2
jne 0x459735
mov eax, dword [edi + 0x5c8]
xor ecx, ecx
mov dword [eax + 0x401c], ecx
mov dword [eax + 0x4004], 1
mov dword [eax + 0x4008], eax
mov dword [eax + 0x400c], eax
mov dword [eax + 0x4010], ecx
mov dword [eax + 0x4014], ecx
mov byte [eax + 0x4020], 0
mov eax, dword [esi + 0x140]
test eax, eax
jne 0x458ed2
jmp 0x459817
mov esi, 0x1b
jmp 0x45996e
mov esi, 0x2a
jmp 0x45994f
push str.CONNECT_response_too_large_
push esi
call fcn.004624d0
add esp, 8
mov esi, 0x38
jmp 0x45994f
mov esi, eax
mov ecx, dword [ebp - 0x20]
jmp 0x4597c9
push str.Proxy_CONNECT_aborted_due_to_timeout
push esi
call fcn.004624d0
add esp, 8
mov esi, 0x1c
jmp 0x45994f
push dword [ebp - 0x28]
call fcn.004566de
add esp, 4
mov edi, dword [ebp + 8]
jmp 0x45994f
push dword [ebp - 0x28]
call fcn.004566de
add esp, 4
mov eax, edi
mov edi, esi
mov esi, eax
jmp 0x45994f
push dword [ebp - 0x28]
call fcn.004566de
add esp, 4
jmp 0x45994a
mov edi, dword [ebp + 8]
push str.Failed_sending_CONNECT_to_proxy
push ecx
call fcn.004624d0
add esp, 8
push 0
call fcn.004566de
add esp, 4
jmp 0x45994f
mov byte [ebx + 0x4020], 1
cmp dword [esi + 0x140], 0
je 0x459817
mov eax, dword [ebp + 0xc]
push dword [edi + eax*4 + 0x1a8]
push edi
call fcn.0044db8b
add esp, 8
mov eax, dword [ebp + 0xc]
mov dword [edi + eax*4 + 0x1a8], 0xffffffff
mov eax, 0xffffff38
add eax, dword [esi + 0x4c04]
cmp eax, 0x64
jae 0x459878
mov dword [ebx + 0x401c], 2
push dword [edi + 0x2d4]
call dword [0x70001c]
add esp, 4
mov dword [edi + 0x2d4], 0
mov byte [esi + 0x4990], 1
push dword [esi + 0x4c04]
push str.Proxy_replied__d_to_CONNECT_request_n
push esi
call fcn.0046235f
add esp, 0xc
xor eax, eax
mov byte [esi + 0x139], al
mov byte [edi + 0x28b], al
jmp 0x458e70
cmp byte [ebx + 0x4020], 0
mov eax, dword [esi + 0x140]
je 0x4598c1
test eax, eax
je 0x4598c1
mov byte [edi + 0x292], 1
push str.Connect_me_again_please_n
push esi
call fcn.0046235f
add esp, 8
mov eax, dword [edi + 0x5c8]
mov dword [eax + 0x401c], 2
push str.CONNECT_phase_completed__n
push dword [edi]
call fcn.0046235f
add esp, 8
jmp 0x459901
push eax
call dword [0x70001c]
add esp, 4
mov dword [esi + 0x140], 0
push 2
push edi
call fcn.0044e82b
add esp, 8
mov eax, dword [ebp + 0xc]
push dword [edi + eax*4 + 0x1a8]
push edi
call fcn.0044db8b
add esp, 8
mov eax, dword [ebp + 0xc]
mov dword [edi + eax*4 + 0x1a8], 0xffffffff
mov dword [ebx + 0x401c], 0
cmp byte [edi + 0x292], 0
jne 0x458e70
push dword [esi + 0xf8]
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push esi
call fcn.004624d0
add esp, 0xc
jmp 0x459764
push dword [ebp - 0x24]
mov edi, ecx
call dword [0x70001c]
add esp, 4
push dword [ebp - 0x28]
jmp 0x4597d9
mov edi, dword [ebp + 8]
mov esi, 0x1b
mov eax, dword [edi + 0x5c8]
mov dword [eax + 0x401c], 2
push str.CONNECT_phase_completed__n
push dword [edi]
call fcn.0046235f
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0064180a
mov eax, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret