Function at 0x40eca5
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
mov esi, ecx
xor edx, edx
mov dword [esp + 0x30], edx
push edi
mov ebx, dword [esi + 0xc]
mov ecx, ebx
mov dword [esp + 0x18], ebx
mov eax, dword [ebx + 0x148]
mov edi, dword [ebx + 0x390]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x134]
mov dword [esp + 0x20], eax
call fcn.0040ea7c
test al, al
jne 0x40f65b
mov byte [ebx + 0x25c], dl
cmp dword [edi + 0x1f0], edx
jne 0x40eedc
push dword [ebp + 0xc]
mov dword [esp + 0x20], edx
push dword [ebp + 8]
mov dword [esp + 0x1c], edx
push str.Establish_HTTP_proxy_tunnel_to__s:_d
push esi
call fcn.00416c42
push dword [esi + 0x128]
call dword [0x53b9f4]
xor ecx, ecx
lea eax, [edi + 0x1cc]
mov dword [esi + 0x128], ecx
add esp, 0x14
mov dword [eax], ecx
mov edx, ebx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov ecx, esi
mov dword [eax + 0xc], 0x100000
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x20]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040ec00
add esp, 0x10
test eax, eax
jne 0x40f65d
push 1
push ecx
push eax
push ecx
mov edx, ebx
mov ecx, esi
call fcn.0040af7a
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x40eeb0
mov eax, dword [esp + 0x18]
mov ecx, 0x51af8c
mov edx, 0x51af90
mov ebx, 0x518d6b
cmp dword [eax + 0xb4], 1
mov eax, dword [esi + 0xcfc]
cmovne edx, ecx
test eax, eax
mov ecx, ebx
cmovne ecx, eax
cmp dword [esp + 0x14], 0
push ecx
mov eax, ebx
cmovne eax, dword [esp + 0x18]
push eax
push edx
push dword [esp + 0x28]
lea eax, [edi + 0x1cc]
push str.CONNECT__s_HTTP__s_r_n_s_s
push eax
call fcn.004087ad
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x40eea3
mov edx, dword [esp + 0x18]
mov ecx, esi
push 0xa
push str.User_Agent
call fcn.0040a8a5
pop ecx
pop ecx
test eax, eax
jne 0x40ee1b
mov eax, dword [esi + 0x5b8]
test eax, eax
je 0x40ee1b
push eax
lea eax, [edi + 0x1cc]
push str.User_Agent:__s_r_n
push eax
call fcn.004087ad
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x40eea3
mov edx, dword [esp + 0x18]
mov ecx, esi
push 0x10
push str.Proxy_Connection
call fcn.0040a8a5
pop ecx
pop ecx
test eax, eax
jne 0x40ee4c
push 0x1e
mov edx, str.Proxy_Connection:_Keep_Alive_r_n
lea ecx, [edi + 0x1cc]
call fcn.004086e0
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x40eea3
lea eax, [edi + 0x1cc]
mov dl, 1
push eax
mov ecx, esi
call fcn.0040b910
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x40eea3
push 2
mov edx, 0x51afd0
lea ecx, [edi + 0x1cc]
call fcn.004086e0
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x40eea3
push ecx
push eax
push eax
lea eax, [esi + 0xd70]
mov edx, esi
push eax
lea ecx, [edi + 0x1cc]
call fcn.0040b2fb
and dword [edi + 0x1e0], 0
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x40eeb0
push str.Failed_sending_CONNECT_to_proxy
push esi
call fcn.00416cbd
pop ecx
pop ecx
push dword [esp + 0x14]
call dword [0x53b9f4]
pop ecx
push dword [esp + 0x1c]
call dword [0x53b9f4]
pop ecx
test ebx, ebx
jne 0x40f4f1
mov ebx, dword [esp + 0x18]
mov dword [edi + 0x1f0], 1
push 1
xor edx, edx
mov ecx, esi
call fcn.00403b4e
pop ecx
test edx, edx
jl 0x40f668
jg 0x40eefa
test eax, eax
je 0x40f668
mov eax, dword [0x53ba04]
push 0
push ebx
call dword [eax + 0x24]
pop ecx
pop ecx
test al, al
jne 0x40ef49
xor ecx, ecx
cmp dword [ebx + 0x170], ecx
je 0x40ef2b
cmp dword [ebx + 0x174], ecx
je 0x40ef2b
mov eax, dword [ebx + 0x178]
cmp eax, dword [ebx + 0x17c]
ja 0x40ef49
push ecx
push ecx
mov ecx, dword [ebx + 0x148]
push 0xffffffffffffffff
call fcn.00416803
add esp, 0xc
test eax, eax
jle 0x40ef45
test al, 1
jne 0x40ef49
xor al, al
jmp 0x40ef4b
mov al, 1
mov ecx, dword [esp + 0x20]
test al, al
jne 0x40ef60
cmp dword [ecx + 0x1a0], 0
je 0x40f65b
cmp dword [ecx + 0x1a0], 1
jne 0x40efba
mov eax, dword [edi + 0x1dc]
test eax, eax
jne 0x40f4f8
mov eax, dword [esi + 0x8f0]
mov ecx, esi
mov dword [esi + 0x130], eax
lea eax, [esp + 0x2c]
mov edx, dword [esi + 0x4e4]
push eax
call fcn.0041bc70
pop ecx
test eax, eax
jne 0x40f65d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x1dc], eax
test eax, eax
jne 0x40f4f8
and dword [ecx + 0x1a0], eax
and dword [esp + 0x28], 0
jmp 0x40f406
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x17]
mov ecx, esi
push 1
push eax
call fcn.00417220
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp eax, 0x51
je 0x40f65b
mov ecx, esi
call fcn.00416423
test eax, eax
jne 0x40f664
cmp dword [esp + 0x1c], eax
jne 0x40f458
cmp dword [esp + 0x24], eax
jle 0x40f415
cmp dword [edi + 0x1e4], 2
jne 0x40f09f
mov ecx, dword [edi + 0x1e8]
mov eax, ecx
mov edx, dword [edi + 0x1ec]
or eax, edx
je 0x40f05e
sub ecx, 1
mov dword [edi + 0x1e8], ecx
sbb edx, 0
mov dword [edi + 0x1ec], edx
js 0x40f04f
jg 0x40f406
test ecx, ecx
jne 0x40f406
mov dword [edi + 0x1f0], 2
jmp 0x40f458
and dword [esp + 0x1c], 0
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x20]
mov ecx, esi
push eax
push 1
lea edx, [esp + 0x1f]
call fcn.0040e65e
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40f406
push str.chunk_reading_DONE
push esi
call fcn.00416c42
and dword [edi + 0x1e4], 0
pop ecx
pop ecx
jmp 0x40f3fc
lea ecx, [edi + 0x1bc]
push 1
lea edx, [esp + 0x17]
call fcn.004086e0
pop ecx
test eax, eax
jne 0x40f547
cmp byte [esp + 0x13], 0xa
jne 0x40f406
mov ecx, dword [edi + 0x1c0]
xor edx, edx
mov eax, dword [edi + 0x1bc]
inc edx
inc dword [edi + 0x1e0]
push ecx
mov dword [esp + 0x20], ecx
mov ecx, esi
push eax
mov dword [esp + 0x1c], eax
call fcn.00417277
cmp byte [esi + 0x718], 0
pop ecx
pop ecx
jne 0x40f130
xor edx, edx
cmp byte [esi + 0x700], dl
push 0xa
pop eax
setne dl
cmp dword [edi + 0x1e0], 1
push 0xe
pop ecx
cmove eax, ecx
or edx, eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x40f134
push eax
push dword [esp + 0x18]
mov ecx, esi
call fcn.00417081
pop ecx
pop ecx
test eax, eax
jne 0x40f65d
mov eax, dword [esp + 0x1c]
cdq
add dword [esi + 0xd68], eax
mov eax, dword [esp + 0x14]
adc dword [esi + 0xd6c], edx
mov cl, byte [eax]
cmp cl, 0xd
je 0x40f334
cmp cl, 0xa
je 0x40f334
push 0x11
mov edx, str.WWW_Authenticate:
mov ecx, eax
call fcn.0041ad99
pop ecx
test eax, eax
je 0x40f17d
mov eax, dword [esi + 0xf0]
mov dword [esp + 0x1c], eax
cmp eax, 0x191
je 0x40f1a3
mov ecx, dword [esp + 0x14]
mov edx, str.Proxy_authenticate:
push 0x13
call fcn.0041ad99
pop ecx
test eax, eax
je 0x40f1ec
mov eax, dword [esi + 0xf0]
mov dword [esp + 0x1c], eax
cmp eax, 0x197
jne 0x40f1ec
mov ecx, dword [esp + 0x14]
call fcn.0040a901
mov dword [esp + 0x14], eax
test eax, eax
je 0x40f540
cmp dword [esp + 0x1c], 0x197
mov ecx, esi
push eax
sete dl
call fcn.0040b09b
pop ecx
push dword [esp + 0x14]
mov dword [esp + 0x20], eax
call dword [0x53b9f4]
mov eax, dword [esp + 0x20]
pop ecx
test eax, eax
jne 0x40f65d
jmp 0x40f324
mov ecx, dword [esp + 0x14]
mov edx, str.Content_Length:
push 0xf
call fcn.0041ad99
pop ecx
test eax, eax
je 0x40f244
mov ecx, dword [esi + 0xf0]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x40f226
push ecx
push str.Ignoring_Content_Length_in_CONNECT__03d_response
push esi
call fcn.00416c42
add esp, 0xc
jmp 0x40f324
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x1e8]
push eax
push 0xa
xor edx, edx
lea ecx, [ecx + 0xf]
call fcn.0041b783
pop ecx
pop ecx
jmp 0x40f324
mov ecx, dword [esp + 0x14]
mov edx, str.Connection:
push 5
push str.close
push 0xb
call fcn.0040b54f
add esp, 0xc
test al, al
jne 0x40f31d
mov ecx, dword [esp + 0x14]
mov edx, str.Transfer_Encoding:
push 0x12
call fcn.0041ad99
pop ecx
test eax, eax
je 0x40f2cf
mov ecx, dword [esi + 0xf0]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x40f294
push ecx
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response
jmp 0x40f218
mov ecx, dword [esp + 0x14]
mov edx, str.Transfer_Encoding:
push 7
push str.chunked
push 0x12
call fcn.0040b54f
add esp, 0xc
test al, al
je 0x40f324
push str.CONNECT_responded_chunked
push esi
call fcn.00416c42
pop ecx
pop ecx
mov ecx, esi
mov byte [edi + 0x1f4], 1
call fcn.0040e636
jmp 0x40f324
mov ecx, dword [esp + 0x14]
mov edx, str.Proxy_Connection:
push 5
push str.close
push 0x11
call fcn.0040b54f
add esp, 0xc
test al, al
jne 0x40f31d
lea eax, [esi + 0xf0]
push eax
lea eax, [esp + 0x38]
push eax
push str.HTTP_1._d__d
push dword [esp + 0x20]
call fcn.00401fa3
add esp, 0x10
cmp eax, 2
jne 0x40f324
mov eax, dword [esi + 0xf0]
mov dword [esi + 0xd54], eax
jmp 0x40f324
mov byte [edi + 0x1f5], 1
lea ecx, [edi + 0x1bc]
call fcn.00408784
jmp 0x40f406
cmp dword [esi + 0xf0], 0x197
jne 0x40f3da
cmp byte [esi + 0xd39], 0
jne 0x40f3da
mov ecx, dword [edi + 0x1e8]
mov eax, ecx
mov edx, dword [edi + 0x1ec]
or eax, edx
mov dword [edi + 0x1e4], 2
je 0x40f37f
push edx
push ecx
push str.Ignore__I64d_bytes_of_response_body
push esi
call fcn.00416c42
add esp, 0x10
jmp 0x40f3e1
cmp byte [edi + 0x1f4], 0
je 0x40f3da
push str.Ignore_chunked_response_body
push esi
call fcn.00416c42
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x44]
push ecx
mov byte [esi + 0x13f], 1
lea ecx, [esp + 0x30]
push ecx
lea edx, [eax + 1]
mov ecx, esi
cmp byte [edx], 0xa
push 1
cmovne edx, eax
inc edx
call fcn.0040e65e
add esp, 0x14
cmp eax, 0xffffffff
jne 0x40f3e1
push str.chunk_reading_DONE
push esi
call fcn.00416c42
pop ecx
pop ecx
mov dword [edi + 0x1f0], 2
and dword [edi + 0x1e4], 0
cmp dword [edi + 0x1e4], 0
jne 0x40efc4
mov eax, dword [edi + 0x1e8]
or eax, dword [edi + 0x1ec]
jne 0x40f406
mov dword [edi + 0x1f0], 2
cmp dword [edi + 0x1e4], 0
jne 0x40efc4
jmp 0x40f45f
xor eax, eax
cmp dword [esi + 0x170], eax
je 0x40f443
cmp dword [esi + 0x9c8], eax
je 0x40f443
cmp dword [esi + 0xcfc], eax
je 0x40f443
push str.Proxy_CONNECT_connection_closed
push esi
mov byte [ebx + 0x25c], 1
call fcn.00416c42
jmp 0x40f456
push str.Proxy_CONNECT_aborted
push esi
mov dword [esp + 0x30], 1
call fcn.00416cbd
pop ecx
pop ecx
and dword [edi + 0x1e4], 0
mov ecx, esi
call fcn.00416423
test eax, eax
jne 0x40f664
cmp dword [esp + 0x28], eax
jne 0x40f554
mov eax, dword [esi + 0xd54]
sub eax, 0xc8
cmp eax, 0x64
jb 0x40f4a6
mov ecx, esi
call fcn.0040ac0e
test eax, eax
jne 0x40f65d
cmp byte [ebx + 0x25e], al
je 0x40f4a6
mov byte [edi + 0x1f5], 1
cmp byte [edi + 0x1f5], 0
je 0x40f4bc
cmp dword [esi + 0x128], 0
jne 0x40f55b
mov eax, dword [esi + 0x128]
test eax, eax
je 0x40f572
cmp dword [edi + 0x1f0], 2
jne 0x40f4e2
mov dl, 1
mov ecx, esi
call fcn.0040eaae
mov eax, dword [esi + 0x128]
test eax, eax
je 0x40f572
xor edx, edx
jmp 0x40ecef
mov eax, ebx
jmp 0x40f65d
mov edx, dword [ebx + 0x2bc]
lea ecx, [esp + 0x30]
push ecx
push eax
push dword [esi + 0x130]
mov ecx, esi
call fcn.00416d6c
mov ebx, dword [esp + 0x3c]
add esp, 0xc
test eax, eax
jne 0x40f52f
push ebx
push dword [esi + 0x130]
mov ecx, esi
push 2
pop edx
call fcn.00417277
pop ecx
pop ecx
sub dword [edi + 0x1dc], ebx
add dword [esi + 0x130], ebx
jmp 0x40f65d
push 0x1b
jmp 0x40f677
push str.CONNECT_response_too_large
push esi
call fcn.00416cbd
pop ecx
pop ecx
push 0x38
jmp 0x40f677
push dword [ebx + 0x148]
mov edx, ebx
mov ecx, esi
call fcn.00404fde
or dword [ebx + 0x148], 0xffffffff
pop ecx
mov eax, dword [esi + 0xd54]
sub eax, 0xc8
cmp eax, 0x64
jb 0x40f607
cmp byte [edi + 0x1f5], 0
je 0x40f5b5
cmp dword [esi + 0x128], 0
je 0x40f5b5
push str.Connect_me_again_please
push esi
mov byte [ebx + 0x25c], 1
call fcn.00416c42
pop ecx
pop ecx
mov ecx, esi
call fcn.0040eb92
jmp 0x40f5d3
push dword [esi + 0x128]
call dword [0x53b9f4]
and dword [esi + 0x128], 0
pop ecx
push 2
pop edx
mov ecx, ebx
call fcn.00405134
and dword [edi + 0x1f0], 0
cmp byte [ebx + 0x25c], 0
jne 0x40f65b
lea ecx, [edi + 0x1bc]
call fcn.004086c8
push dword [esi + 0xf0]
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push esi
call fcn.00416cbd
add esp, 0xc
jmp 0x40f554
mov dword [edi + 0x1f0], 2
push dword [esi + 0xcfc]
call dword [0x53b9f4]
and dword [esi + 0xcfc], 0
pop ecx
push dword [esi + 0xd54]
mov word [esi + 0x9cc], 1
push str.Proxy_replied__d_to_CONNECT_request
push esi
call fcn.00416c42
add esp, 0xc
mov byte [esi + 0x13f], 0
lea ecx, [edi + 0x1bc]
mov byte [ebx + 0x269], 0
call fcn.004086c8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x2a
jmp 0x40f677
push str.Proxy_CONNECT_aborted_due_to_timeout
push esi
call fcn.00416cbd
pop ecx
pop ecx
push 0x1c
pop eax
jmp 0x40f65d