Function at 0x10016a30
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
add eax, 0x6a
push esi
push edi
push ebx
mov edi, dword [ebx]
lea eax, [ebx + eax*4]
mov esi, dword [ebx + 0x6d0]
mov dword [ebp - 0x10], eax
mov eax, dword [eax]
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], eax
mov byte [ebp - 1], 0
call fcn.10017460
add esp, 4
test al, al
jne 0x1001743c
mov byte [ebx + 0x3a6], al
nop word [eax + eax]
cmp dword [esi + 0x401c], 0
jne 0x10016ce3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
push edi
call fcn.10024510
push dword [edi + 0x140]
call dword [0x100a300c]
add esp, 0x14
mov dword [edi + 0x140], 0
call fcn.100138a0
mov ebx, eax
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x1001730c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push str._s:_hu
call sym.libcurl.dll_curl_maprintf
add esp, 0xc
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10017303
push 1
push eax
push str.CONNECT
push dword [ebp + 8]
call fcn.100144a0
push dword [ebp - 0x18]
mov ebx, eax
call dword [0x100a300c]
add esp, 0x14
test ebx, ebx
jne 0x10016cbc
mov edx, dword [ebp + 8]
mov ecx, 0x100902b4
mov eax, 0x100902b8
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x1008e84a
cmp dword [edx + 0xf0], 1
cmovne eax, ecx
mov cl, byte [edx + 0x396]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x10]
cmp eax, dword [edx + 0xa0]
je 0x10016b52
push 0x3a
push eax
call fcn.1003fea0
add esp, 8
test eax, eax
setne cl
push dword [ebp + 0x14]
test cl, cl
mov edx, 0x1008e84a
mov eax, 0x10090484
cmove eax, edx
push eax
push dword [ebp + 0x10]
mov eax, 0x10090488
cmove eax, edx
push eax
push str._s_s_s:_hu
call sym.libcurl.dll_curl_maprintf
add esp, 0x14
mov dword [ebp - 0xc], eax
test eax, eax
je 0x100172ec
push str.Host:
push dword [ebp + 8]
call fcn.10013e20
add esp, 8
test eax, eax
jne 0x10016bba
push dword [ebp - 0xc]
push str.Host:__s_r_n
call sym.libcurl.dll_curl_maprintf
mov ebx, eax
add esp, 8
mov dword [ebp - 0x18], ebx
test ebx, ebx
je 0x100172cc
push str.Proxy_Connection:
push dword [ebp + 8]
call fcn.10013e20
test eax, eax
mov ecx, str.Proxy_Connection:_Keep_Alive_r_n
mov eax, 0x1008e84a
push str.User_Agent:
push dword [ebp + 8]
cmovne ecx, eax
mov dword [ebp - 0x20], ecx
call fcn.10013e20
add esp, 0x10
test eax, eax
jne 0x10016c01
cmp dword [edi + 0x450], eax
je 0x10016c01
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3e8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov edx, 0x1008e84a
push dword [ebp - 0x20]
mov ecx, edx
push dword [ebp - 0x14]
mov eax, dword [eax + 0x3e4]
test eax, eax
cmovne ecx, eax
mov eax, edx
push ecx
test ebx, ebx
cmovne eax, ebx
push eax
push dword [ebp - 0x24]
push dword [ebp - 0xc]
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
push dword [ebp - 8]
call fcn.10013a60
mov ebx, eax
add esp, 0x20
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x10016c4e
push eax
call dword [0x100a300c]
add esp, 4
push dword [ebp - 0xc]
call dword [0x100a300c]
add esp, 4
test ebx, ebx
jne 0x10016ca5
push dword [ebp - 8]
push 1
push dword [ebp + 8]
call fcn.10013ad0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x10016ca5
push 0x1008ef74
push dword [ebp - 8]
call fcn.10013a60
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10016ca5
push dword [ebp + 0xc]
push eax
lea eax, [edi + 0x4a98]
push eax
push dword [ebp + 8]
push dword [ebp - 8]
call fcn.100138b0
add esp, 0x14
mov ebx, eax
xor eax, eax
mov dword [ebp - 8], eax
test ebx, ebx
je 0x10016cbf
push str.Failed_sending_CONNECT_to_proxy
push edi
call fcn.10024440
add esp, 8
mov eax, dword [ebp - 8]
push eax
call fcn.10013870
add esp, 4
test ebx, ebx
jne 0x10016f60
mov dword [esi + 0x4000], ebx
mov ebx, dword [ebp + 8]
mov dword [esi + 0x401c], 1
push 1
push 0
push edi
call fcn.100029f0
add esp, 0xc
test edx, edx
jl 0x10017445
jg 0x10016d02
test eax, eax
je 0x10017445
push dword [ebp + 0xc]
push ebx
call fcn.100020a0
add esp, 8
test al, al
je 0x1001743c
cmp dword [esi + 0x4004], 0
mov dword [ebp - 0x18], 0
je 0x100171f8
lea edx, [esi + 0x4000]
mov eax, dword [esi + 0x400c]
cmp eax, edx
jae 0x10017324
lea ecx, [ebp - 0x1c]
push ecx
push 1
push eax
push dword [ebp - 0x28]
push ebx
call fcn.10024590
mov ebx, eax
add esp, 0x14
cmp ebx, 0x51
je 0x1001743c
push dword [ebp + 8]
call fcn.10021f10
add esp, 4
test eax, eax
jne 0x10017318
test ebx, ebx
jne 0x100171eb
cmp dword [ebp - 0x1c], ebx
jle 0x1001723d
cmp dword [esi + 0x4004], 1
jle 0x10016e26
mov ecx, dword [esi + 0x4010]
mov eax, ecx
mov edx, dword [esi + 0x4014]
or eax, edx
mov dword [esi + 0x400c], esi
je 0x10016de3
sub ecx, 1
mov dword [esi + 0x4010], ecx
sbb edx, ebx
mov dword [esi + 0x4014], edx
test edx, edx
jl 0x100171e1
jg 0x10016dc8
test ecx, ecx
jbe 0x100171e1
mov ebx, dword [ebp + 8]
lea edx, [esi + 0x4000]
cmp dword [esi + 0x4004], 0
jne 0x10016d30
jmp 0x100171f8
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x24]
push eax
push 1
push esi
push ebx
mov dword [ebp - 0x24], 0
call fcn.10015f10
add esp, 0x10
cmp eax, 0xffffffff
jne 0x10016dcb
push str.chunk_reading_DONE_n
push edi
call fcn.10024510
add esp, 8
mov dword [esi + 0x4004], 0
mov dword [esi + 0x401c], 2
jmp 0x10016dcb
mov eax, dword [esi + 0x400c]
lea edx, [esi + 0x4000]
inc dword [edx]
mov ebx, dword [ebp + 8]
cmp byte [eax], 0xa
je 0x10016e45
inc eax
mov dword [esi + 0x400c], eax
jmp 0x10016dd1
cmp byte [edi + 0x390], 0
je 0x10016e68
push ebx
push dword [edx]
push dword [esi + 0x4008]
push 1
push edi
call fcn.10024360
add esp, 0x14
lea edx, [esi + 0x4000]
cmp byte [edi + 0x4fc], 0
jne 0x10016e9f
push dword [edx]
xor eax, eax
cmp byte [edi + 0x385], al
push dword [esi + 0x4008]
setne al
add eax, 2
push eax
push ebx
call fcn.10024330
add esp, 0x10
test eax, eax
jne 0x10017458
lea edx, [esi + 0x4000]
mov eax, dword [edx]
add dword [edi + 0x4a94], eax
mov eax, dword [edx]
add dword [edi + 0xa0], eax
mov ecx, dword [esi + 0x4008]
mov al, byte [ecx]
cmp al, 0xd
je 0x100170da
cmp al, 0xa
je 0x100170da
mov eax, dword [edx]
push 0x11
mov byte [ecx + eax], 0
push dword [esi + 0x4008]
push str.WWW_Authenticate:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x10016ef4
mov ebx, dword [edi + 0xf8]
cmp ebx, 0x191
je 0x10016f1b
push 0x13
push dword [esi + 0x4008]
push str.Proxy_authenticate:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x10016f69
mov ebx, dword [edi + 0xf8]
cmp ebx, 0x197
jne 0x10016f69
push dword [esi + 0x4008]
call fcn.10013fb0
add esp, 4
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1001730c
cmp ebx, 0x197
push eax
sete cl
movzx ecx, cl
push ecx
push dword [ebp + 8]
call fcn.10014250
push dword [ebp - 0x24]
mov ebx, eax
call dword [0x100a300c]
add esp, 0x10
test ebx, ebx
je 0x100170ba
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
push 0xf
push dword [esi + 0x4008]
push str.Content_Length:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x10016fce
mov ecx, dword [edi + 0xf8]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x10016fa7
push ecx
push str.Ignoring_Content_Length_in_CONNECT__03d_response_n
push edi
call fcn.10024510
add esp, 0xc
jmp 0x100170ba
mov eax, dword [esi + 0x4008]
push 0xa
add eax, 0xf
push 0
push eax
call fcn.100573fa
add esp, 0xc
mov dword [esi + 0x4010], eax
mov dword [esi + 0x4014], edx
jmp 0x100170ba
push str.close
push str.Connection:
push dword [esi + 0x4008]
call fcn.10013ee0
add esp, 0xc
test al, al
je 0x10016ff3
mov byte [ebp - 1], 1
jmp 0x100170ba
push 0x12
push dword [esi + 0x4008]
push str.Transfer_Encoding:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x1001706d
mov ecx, dword [edi + 0xf8]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x10017031
push ecx
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
push edi
call fcn.10024510
add esp, 0xc
jmp 0x100170ba
push str.chunked
push str.Transfer_Encoding:
push dword [esi + 0x4008]
call fcn.10013ee0
add esp, 0xc
test al, al
je 0x100170ba
push str.CONNECT_responded_chunked_n
push edi
call fcn.10024510
mov ebx, dword [ebp + 8]
push ebx
mov byte [esi + 0x4018], 1
call fcn.10015ef0
add esp, 0xc
jmp 0x100170bd
push str.close
push str.Proxy_Connection:
push dword [esi + 0x4008]
call fcn.10013ee0
add esp, 0xc
test al, al
je 0x1001708f
mov byte [ebp - 1], 1
jmp 0x100170ba
lea ebx, [edi + 0xf8]
push ebx
lea eax, [ebp - 0x2c]
push eax
push str.HTTP_1._d__d
push dword [esi + 0x4008]
call fcn.10004f60
add esp, 0x10
cmp eax, 2
jne 0x100170ba
mov eax, dword [ebx]
mov dword [edi + 0x4a84], eax
mov ebx, dword [ebp + 8]
lea edx, [esi + 0x4000]
mov dword [esi + 0x400c], esi
mov dword [edx], 0
mov dword [esi + 0x4008], esi
jmp 0x10016dd1
mov dword [esi + 0x400c], esi
cmp dword [edi + 0xf8], 0x197
jne 0x100171d2
cmp byte [edi + 0x4814], 0
jne 0x100171d2
mov edx, dword [esi + 0x4010]
mov eax, edx
mov ecx, dword [esi + 0x4014]
or eax, ecx
mov dword [esi + 0x4004], 2
je 0x10017150
push ecx
push edx
push str.Ignore__I64d_bytes_of_response_body_n
push edi
call fcn.10024510
add esp, 0x10
lea edx, [esi + 0x4000]
mov eax, dword [esi + 0x4010]
or eax, dword [esi + 0x4014]
jne 0x10016dd1
mov dword [esi + 0x401c], 2
jmp 0x10016dd1
cmp byte [esi + 0x4018], 0
je 0x100171c3
push str.Ignore_chunked_response_body_n
push edi
call fcn.10024510
mov byte [edi + 0x139], 1
add esp, 8
mov eax, dword [esi + 0x4008]
inc eax
cmp byte [eax], 0xa
jne 0x10017180
mov dword [esi + 0x4008], eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [esi + 0x4008]
push 1
inc eax
push eax
push ebx
call fcn.10015f10
add esp, 0x10
cmp eax, 0xffffffff
jne 0x10017129
push str.chunk_reading_DONE_n
push edi
call fcn.10024510
add esp, 8
mov dword [esi + 0x4004], 0
mov dword [esi + 0x401c], 2
jmp 0x10017129
mov dword [esi + 0x4004], 0
jmp 0x10017129
mov dword [esi + 0x4004], 0
jmp 0x1001712f
mov dword [esi + 0x401c], 2
mov ebx, dword [ebp + 8]
mov dword [esi + 0x4004], 0
push ebx
call fcn.10021f10
add esp, 4
test eax, eax
jne 0x10017318
cmp dword [ebp - 0x18], eax
jne 0x100173ed
cmp dword [edi + 0x4a84], 0xc8
je 0x10017286
push ebx
call fcn.10014080
add esp, 4
test eax, eax
jne 0x10017458
cmp byte [ebx + 0x38d], al
je 0x10017286
mov byte [ebp - 1], 1
jmp 0x1001728c
cmp dword [edi + 0x180], 0
je 0x10017269
cmp dword [edi + 0x480c], 0
je 0x10017269
mov ebx, dword [ebp + 8]
push str.Proxy_CONNECT_connection_closed_n
push edi
mov byte [ebx + 0x3a6], 1
call fcn.10024510
add esp, 8
jmp 0x100171ee
push str.Proxy_CONNECT_aborted
push edi
mov dword [ebp - 0x18], 1
call fcn.10024440
mov ebx, dword [ebp + 8]
add esp, 8
jmp 0x100171ee
cmp byte [ebp - 1], 0
je 0x10017299
cmp dword [edi + 0x140], 0
jne 0x1001733e
cmp dword [edi + 0x140], 0
je 0x10017355
cmp dword [esi + 0x401c], 2
jne 0x100172ba
push 1
push ebx
call fcn.10017690
add esp, 8
cmp dword [edi + 0x140], 0
jne 0x10016a80
jmp 0x10017355
push dword [ebp - 0xc]
call dword [0x100a300c]
push dword [ebp - 8]
call fcn.10013870
add esp, 8
mov eax, 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp - 8]
call fcn.10013870
add esp, 4
mov eax, 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call fcn.10013870
add esp, 4
pop edi
pop esi
mov eax, 0x1b
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0x2a
pop ebx
mov esp, ebp
pop ebp
ret
push str.CONNECT_response_too_large_
push edi
call fcn.10024440
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
push dword [eax]
push ebx
call fcn.10002040
mov eax, dword [ebp - 0x10]
add esp, 8
mov dword [eax], 0xffffffff
cmp dword [edi + 0xf8], 0xc8
je 0x100173f9
cmp byte [ebp - 1], 0
je 0x10017391
cmp dword [edi + 0x140], 0
je 0x10017391
push str.Connect_me_again_please_n
push edi
mov byte [ebx + 0x3a6], 1
call fcn.10024510
push ebx
call fcn.10017660
add esp, 0xc
jmp 0x100173c6
push dword [edi + 0x140]
call dword [0x100a300c]
push 2
push ebx
mov dword [edi + 0x140], 0
call fcn.10002150
mov eax, dword [ebp - 0x10]
push dword [eax]
push ebx
call fcn.10002040
mov eax, dword [ebp - 0x10]
add esp, 0x14
mov dword [eax], 0xffffffff
mov dword [esi + 0x401c], 0
cmp byte [ebx + 0x3a6], 0
jne 0x1001743c
push dword [edi + 0xf8]
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push edi
call fcn.10024440
add esp, 0xc
pop edi
pop esi
mov eax, 0x38
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x401c], 2
push dword [ebx + 0x3e4]
call dword [0x100a300c]
push str.Proxy_replied_OK_to_CONNECT_request_n
mov dword [ebx + 0x3e4], 0
push edi
mov byte [edi + 0x4810], 1
call fcn.10024510
mov byte [edi + 0x139], 0
add esp, 0xc
mov byte [ebx + 0x39f], 0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push str.Proxy_CONNECT_aborted_due_to_timeout
push edi
call fcn.10024440
mov eax, 0x1c
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret