Function at 0x100490fc
Capabilities:
Check http status code

Disassembly:
sub esp, 0x24
and dword [esp + 0x20], 0
push ebx
mov ebx, dword [esp + 0x2c]
push ebp
mov ebp, dword [esp + 0x34]
push esi
mov eax, dword [ebx + ebp*4 + 0x1a8]
mov esi, dword [ebx + 0x598]
push edi
mov edi, dword [ebx]
push ebx
mov dword [esp + 0x30], eax
call fcn.10049aab
pop ecx
test eax, eax
je 0x10049135
xor eax, eax
jmp 0x10049aa3
and dword [ebx + 0x294], 0xff7fffff
mov dword [esp + 0x18], 0x64
cmp dword [esi + 0x4018], 0
jne 0x100493af
push dword [esp + 0x44]
mov ebp, dword [esp + 0x44]
push ebp
push str.Establish_HTTP_proxy_tunnel_to__s:_d_n
push edi
call fcn.10029490
push dword [edi + 0x148]
call dword [0x1008d09c]
and dword [edi + 0x148], 0
add esp, 0x14
call fcn.1003aeee
mov dword [esp + 0x38], eax
test eax, eax
je 0x10049959
push dword [esp + 0x44]
push ebp
push str._s:_d
call fcn.1002f94a
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x10049960
push 1
push eax
push str.CONNECT
push ebx
call fcn.1003bbd1
push dword [esp + 0x24]
mov ebp, eax
call dword [0x1008d09c]
add esp, 0x14
test ebp, ebp
jne 0x10049388
and dword [esp + 0x10], ebp
cmp dword [ebx + 0xf0], 1
mov edx, dword [ebx + 0x294]
mov ebp, dword [esp + 0x40]
mov eax, 0x10094428
mov ecx, 0x1009442c
cmovne eax, ecx
shr edx, 9
and edx, 1
mov dword [esp + 0x14], 0x1009ac9b
mov dword [esp + 0x24], eax
cmp ebp, dword [ebx + 0x9c]
je 0x10049220
push 0x3a
push ebp
call fcn.1005bd70
mov edx, eax
neg edx
pop ecx
sbb edx, edx
pop ecx
neg edx
push dword [esp + 0x44]
test edx, edx
mov eax, 0x1009ac9c
mov ecx, 0x10094430
cmove ecx, eax
push ecx
mov ecx, 0x1009ac9d
mov eax, 0x10094434
push ebp
cmove eax, ecx
push eax
push str._s_s_s:_d
call fcn.1002f94a
mov ebp, eax
add esp, 0x14
mov dword [esp + 0x28], ebp
test ebp, ebp
je 0x10049960
push str.Host
push ebx
call fcn.1003b556
pop ecx
pop ecx
test eax, eax
jne 0x10049288
push ebp
push str.Host:__s_r_n
call fcn.1002f94a
pop ecx
pop ecx
mov dword [esp + 0x10], eax
test eax, eax
je 0x10049946
push str.Proxy_Connection
push ebx
call fcn.1003b556
test eax, eax
mov eax, 0x1009ac9a
mov ecx, str.Proxy_Connection:_Keep_Alive_r_n
cmovne ecx, eax
push str.User_Agent
push ebx
mov dword [esp + 0x30], ecx
call fcn.1003b556
add esp, 0x10
test eax, eax
jne 0x100492ca
cmp dword [edi + 0x9c4], eax
je 0x100492ca
mov eax, dword [ebx + 0x2e8]
mov dword [esp + 0x14], eax
push dword [esp + 0x20]
mov eax, dword [ebx + 0x2e4]
push dword [esp + 0x18]
test eax, eax
mov ecx, 0x1009ac9e
cmovne ecx, eax
push ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov eax, 0x1009ac9f
cmovne eax, ecx
push eax
push dword [esp + 0x34]
lea eax, [esp + 0x4c]
push ebp
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
push eax
call fcn.1003b111
mov ebp, eax
mov eax, dword [esp + 0x30]
add esp, 0x20
test eax, eax
je 0x1004931b
push eax
call dword [0x1008d09c]
pop ecx
push dword [esp + 0x28]
call dword [0x1008d09c]
pop ecx
test ebp, ebp
jne 0x10049372
push dword [esp + 0x38]
push 1
push ebx
call fcn.1003b171
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x10049372
lea eax, [esp + 0x38]
push 0x100944b8
push eax
call fcn.1003b111
mov ebp, eax
pop ecx
pop ecx
test ebp, ebp
jne 0x10049372
push dword [esp + 0x3c]
push eax
lea eax, [edi + 0xf98]
push eax
lea eax, [esp + 0x44]
push ebx
push eax
call fcn.1003aefb
add esp, 0x14
mov ebp, eax
and dword [esp + 0x38], 0
test ebp, ebp
je 0x10049388
push str.Failed_sending_CONNECT_to_proxy
push edi
call fcn.100293e3
pop ecx
pop ecx
lea eax, [esp + 0x38]
push eax
call fcn.1003aecb
pop ecx
test ebp, ebp
jne 0x1004962b
and dword [esi + 0x4000], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esi + 0x4018], 1
push 1
push 0
push edi
call fcn.1002df7b
add esp, 0xc
test edx, edx
jl 0x10049a93
jg 0x100493ce
test eax, eax
je 0x10049a93
push ebp
push ebx
call fcn.1002d7ce
pop ecx
pop ecx
test eax, eax
je 0x1004912e
and dword [esp + 0x14], 0
cmp dword [esi + 0x4004], 0
je 0x100498c0
lea ebp, [esi + 0x4000]
mov eax, dword [esi + 0x400c]
cmp eax, ebp
jae 0x10049973
lea ecx, [esp + 0x1c]
push ecx
push 1
push eax
push dword [esp + 0x38]
push ebx
call fcn.10029532
mov ebp, eax
add esp, 0x14
cmp ebp, 0x51
je 0x1004912e
push ebx
call fcn.1004719f
pop ecx
test eax, eax
jne 0x1004996c
test ebp, ebp
jne 0x100498b5
cmp dword [esp + 0x1c], ebp
jle 0x10049877
cmp dword [esi + 0x4004], 1
jle 0x100494e1
mov ecx, dword [esi + 0x4010]
mov edx, dword [esi + 0x4014]
mov eax, ecx
or eax, edx
mov dword [esi + 0x400c], esi
je 0x100494a6
sub ecx, 1
sbb edx, ebp
mov dword [esi + 0x4010], ecx
mov dword [esi + 0x4014], edx
cmp edx, ebp
jl 0x10049865
jg 0x1004948e
cmp ecx, ebp
jbe 0x10049865
lea ebp, [esi + 0x4000]
cmp dword [esi + 0x4004], 0
jne 0x100493f7
jmp 0x100498bc
and dword [esp + 0x28], 0
lea eax, [esp + 0x28]
push eax
push 1
push esi
push ebx
call fcn.1004a1f0
add esp, 0x10
cmp eax, 0xffffffff
jne 0x1004948e
push str.chunk_reading_DONE_n
push edi
call fcn.10029490
and dword [esi + 0x4004], 0
pop ecx
pop ecx
mov dword [esi + 0x4018], 2
jmp 0x1004948e
mov eax, dword [esi + 0x400c]
lea ebp, [esi + 0x4000]
inc dword [ebp]
cmp byte [eax], 0xa
je 0x100494fe
inc eax
mov dword [esi + 0x400c], eax
jmp 0x10049494
test dword [edi + 0xa8c], 0x4000000
je 0x1004951e
push dword [ebp]
push dword [esi + 0x4008]
push 1
push edi
call fcn.10029368
add esp, 0x10
test dword [edi + 0xa90], 0x80000
jne 0x10049558
test dword [edi + 0xa8c], 0x200000
push 2
pop eax
push 3
pop ecx
push dword [ebp]
cmovne eax, ecx
push dword [esi + 0x4008]
push eax
push ebx
call fcn.1002933b
add esp, 0x10
test eax, eax
jne 0x10049aa3
mov eax, dword [ebp]
cdq
add dword [edi + 0xf90], eax
adc dword [edi + 0xf94], edx
mov eax, dword [ebp]
cdq
add dword [edi + 0xb0], eax
adc dword [edi + 0xb4], edx
mov ecx, dword [esi + 0x4008]
mov al, byte [ecx]
cmp al, 0xd
je 0x10049789
cmp al, 0xa
je 0x10049789
mov eax, dword [ebp]
push 0x11
mov byte [ecx + eax], 0
push dword [esi + 0x4008]
push str.WWW_Authenticate:
call fcn.10020572
add esp, 0xc
test eax, eax
je 0x100495bd
mov eax, dword [edi + 0x108]
cmp eax, 0x191
je 0x100495e3
push 0x13
push dword [esi + 0x4008]
push str.Proxy_authenticate:
call fcn.10020572
add esp, 0xc
test eax, eax
je 0x10049632
mov eax, dword [edi + 0x108]
cmp eax, 0x197
jne 0x10049632
push dword [esi + 0x4008]
xor ecx, ecx
cmp eax, 0x197
sete cl
mov dword [esp + 0x2c], ecx
call fcn.1003b663
pop ecx
mov dword [esp + 0x24], eax
test eax, eax
je 0x10049959
push eax
push dword [esp + 0x2c]
push ebx
call fcn.1003b998
push dword [esp + 0x30]
mov ebp, eax
call dword [0x1008d09c]
add esp, 0x10
test ebp, ebp
je 0x1004976e
mov eax, ebp
jmp 0x10049aa3
push 0xf
push dword [esi + 0x4008]
push str.Content_Length:
call fcn.10020572
add esp, 0xc
test eax, eax
je 0x10049690
mov ecx, dword [edi + 0x108]
mov eax, ecx
cdq
idiv dword [esp + 0x18]
cmp eax, 2
jne 0x1004966e
push ecx
push str.Ignoring_Content_Length_in_CONNECT__03d_response_n
push edi
call fcn.10029490
jmp 0x10049717
lea eax, [esi + 0x4010]
push eax
mov eax, dword [esi + 0x4008]
push 0xa
add eax, 0xf
push 0
push eax
call fcn.1002f747
add esp, 0x10
jmp 0x10049774
push 0x10094280
push str.Connection:
push dword [esi + 0x4008]
call fcn.1003b5c0
add esp, 0xc
test eax, eax
jne 0x10049738
push 0x12
push dword [esi + 0x4008]
push 0x10094294
call fcn.10020572
add esp, 0xc
test eax, eax
je 0x1004971c
mov ecx, dword [edi + 0x108]
mov eax, ecx
cdq
idiv dword [esp + 0x18]
cmp eax, 2
jne 0x100496e3
push ecx
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
jmp 0x10049663
push str.chunked
push str.Transfer_Encoding:
push dword [esi + 0x4008]
call fcn.1003b5c0
add esp, 0xc
test eax, eax
je 0x10049774
push str.CONNECT_responded_chunked_n
push edi
call fcn.10029490
or dword [esi + 0x401c], 1
push ebx
call fcn.1004a1e0
add esp, 0xc
jmp 0x10049774
push str.close
push str.Proxy_Connection:
push dword [esi + 0x4008]
call fcn.1003b5c0
add esp, 0xc
test eax, eax
je 0x10049741
or dword [esi + 0x401c], 2
jmp 0x10049774
lea ebp, [edi + 0x108]
push ebp
lea eax, [esp + 0x34]
push eax
push str.HTTP_1._d__d
push dword [esi + 0x4008]
call fcn.1005bce1
add esp, 0x10
cmp eax, 2
jne 0x1004976e
mov eax, dword [ebp]
mov dword [edi + 0xf7c], eax
lea ebp, [esi + 0x4000]
and dword [ebp], 0
mov dword [esi + 0x400c], esi
mov dword [esi + 0x4008], esi
jmp 0x10049494
mov dword [esi + 0x400c], esi
cmp dword [edi + 0x108], 0x197
jne 0x1004983d
test byte [edi + 0xf4c], 0x20
jne 0x1004983d
mov ecx, dword [esi + 0x4010]
mov edx, dword [esi + 0x4014]
mov eax, ecx
or eax, edx
mov dword [esi + 0x4004], 2
je 0x100497da
push edx
push ecx
push str.Ignore__I64d_bytes_of_response_body_n
push edi
call fcn.10029490
add esp, 0x10
jmp 0x10049844
test byte [esi + 0x401c], 1
je 0x1004983d
push str.Ignore_chunked_response_body_n
push edi
call fcn.10029490
or dword [edi + 0x590], 8
mov eax, dword [esi + 0x4008]
inc eax
pop ecx
cmp byte [eax], 0xa
pop ecx
jne 0x10049809
mov dword [esi + 0x4008], eax
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esi + 0x4008]
push 1
inc eax
push eax
push ebx
call fcn.1004a1f0
add esp, 0x10
cmp eax, 0xffffffff
jne 0x10049844
push 0x10094200
push edi
call fcn.10029490
pop ecx
pop ecx
mov dword [esi + 0x4018], 2
and dword [esi + 0x4004], 0
mov eax, dword [esi + 0x4010]
or eax, dword [esi + 0x4014]
jne 0x10049494
mov dword [esi + 0x4018], 2
jmp 0x10049494
mov dword [esi + 0x4004], ebp
mov dword [esi + 0x4018], 2
jmp 0x100498bc
cmp dword [edi + 0x5c0], 0
je 0x100498a0
cmp dword [edi + 0xcf0], 0
je 0x100498a0
or dword [ebx + 0x294], 0x800000
push str.Proxy_CONNECT_connection_closed_n
push edi
call fcn.10029490
jmp 0x100498b3
push str.Proxy_CONNECT_aborted
push edi
mov dword [esp + 0x1c], 1
call fcn.100293e3
pop ecx
pop ecx
and dword [esi + 0x4004], 0
mov ebp, dword [esp + 0x3c]
push ebx
call fcn.1004719f
pop ecx
test eax, eax
jne 0x1004996c
cmp dword [esp + 0x14], eax
jne 0x10049980
mov eax, dword [edi + 0xf7c]
push 0x64
cdq
pop ecx
idiv ecx
cmp eax, 2
je 0x10049909
push ebx
call fcn.1003b701
pop ecx
test eax, eax
jne 0x10049aa3
test byte [ebx + 0x294], 1
je 0x10049909
or dword [esi + 0x401c], 2
test byte [esi + 0x401c], 2
je 0x1004991b
cmp dword [edi + 0x148], 0
jne 0x10049987
cmp dword [edi + 0x148], 0
je 0x1004999e
cmp dword [esi + 0x4018], 2
jne 0x10049937
push 1
push ebx
call fcn.10049c94
pop ecx
pop ecx
cmp dword [edi + 0x148], 0
jne 0x10049147
jmp 0x1004999e
push ebp
call dword [0x1008d09c]
lea eax, [esp + 0x3c]
push eax
call fcn.1003aecb
pop ecx
pop ecx
push 0x1b
jmp 0x10049aa2
lea eax, [esp + 0x38]
push eax
call fcn.1003aecb
jmp 0x10049958
push 0x2a
jmp 0x10049aa2
push str.CONNECT_response_too_large_
push edi
call fcn.100293e3
pop ecx
pop ecx
push 0x38
jmp 0x10049aa2
push dword [ebx + ebp*4 + 0x1a8]
push ebx
call fcn.1002d762
or dword [ebx + ebp*4 + 0x1a8], 0xffffffff
pop ecx
pop ecx
mov eax, dword [edi + 0xf7c]
push 0x64
pop ecx
cdq
idiv ecx
push 2
pop ecx
cmp eax, ecx
je 0x10049a49
test byte [esi + 0x401c], cl
je 0x100499e6
cmp dword [edi + 0x148], 0
je 0x100499e6
or dword [ebx + 0x294], 0x800000
push str.Connect_me_again_please_n
push edi
call fcn.10029490
push ebx
call fcn.10049c71
add esp, 0xc
jmp 0x10049a19
push dword [edi + 0x148]
call dword [0x1008d09c]
and dword [edi + 0x148], 0
push 2
push ebx
call fcn.1002d85d
push dword [ebx + ebp*4 + 0x1a8]
push ebx
call fcn.1002d762
add esp, 0x14
or dword [ebx + ebp*4 + 0x1a8], 0xffffffff
and dword [esi + 0x4018], 0
test dword [ebx + 0x294], 0x800000
jne 0x1004912e
push dword [edi + 0x108]
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push edi
call fcn.100293e3
add esp, 0xc
jmp 0x10049980
mov dword [esi + 0x4018], ecx
push dword [ebx + 0x2e4]
call dword [0x1008d09c]
and dword [ebx + 0x2e4], 0
push dword [edi + 0xf7c]
or dword [edi + 0xcf4], 1
push str.Proxy_replied__d_to_CONNECT_request_n
push edi
call fcn.10029490
and dword [edi + 0x590], 0xfffffff7
add esp, 0x10
and dword [ebx + 0x294], 0xfffeffff
jmp 0x1004912e
push str.Proxy_CONNECT_aborted_due_to_timeout
push edi
call fcn.100293e3
pop ecx
pop ecx
push 0x1c
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret