Function at 0x10015c70
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push ebx
xor edx, edx
cmp dword [eax + ecx*4 + 0x594], 2
push esi
mov esi, dword [eax + ecx*4 + 0x190]
push edi
mov edi, dword [eax]
mov dword [ebp - 0x34], edx
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x1c], edx
je 0x100166aa
mov dword [eax + 0x2d0], edx
jmp 0x10015cc0
cmp dword [eax + ecx*4 + 0x594], edx
jne 0x10015f15
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
push esi
push ebx
push str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
push edi
call fcn.10022c60
mov eax, dword [edi + 0x10c]
push eax
call dword [0x100560ec]
add esp, 0x14
mov dword [edi + 0x10c], 0
call fcn.10011f20
mov dword [ebp - 0xc], eax
test eax, eax
je 0x10016555
push esi
push ebx
push str._s:_hu
call sym.libcurl.dll_curl_maprintf
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1001654d
mov esi, dword [ebp + 8]
push 1
mov ecx, eax
push ecx
push str.CONNECT
call fcn.10011b40
mov edx, dword [ebp - 0x20]
add esp, 0xc
push edx
mov ebx, eax
call dword [0x100560ec]
add esp, 4
test ebx, ebx
jne 0x10015ef2
mov dword [ebp - 0x14], ebx
mov ebx, 0x1004bccf
mov ecx, esi
cmp dword [ecx + 0xe8], 1
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], 0x1004d7e4
je 0x10015d77
mov dword [ebp - 4], 0x1004d7e0
mov esi, dword [ebp + 0x10]
mov eax, dword [ecx + 0x290]
cmp esi, dword [ecx + 0x98]
je 0x10015d99
push 0x3a
push esi
call fcn.10036d80
add esp, 8
neg eax
sbb eax, eax
neg eax
test eax, eax
je 0x10015da9
mov ecx, 0x1004d9b0
mov eax, 0x1004d9b4
jmp 0x10015dad
mov ecx, ebx
mov eax, ebx
mov edx, dword [ebp + 0x14]
push edx
push ecx
push esi
push eax
push str._s_s_s:_hu
call sym.libcurl.dll_curl_maprintf
mov esi, eax
add esp, 0x14
test esi, esi
je 0x1001654d
mov edx, dword [ebp + 8]
mov ebx, str.Host:
call fcn.100113e0
test eax, eax
jne 0x10015df5
push esi
push str.Host:__s_r_n
call sym.libcurl.dll_curl_maprintf
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10016543
mov edx, dword [ebp + 8]
mov ebx, str.Proxy_Connection:
call fcn.100113e0
test eax, eax
jne 0x10015e0d
mov dword [ebp - 0x20], str.Proxy_Connection:_Keep_Alive_r_n
mov edx, dword [ebp + 8]
mov ebx, str.User_Agent:
call fcn.100113e0
test eax, eax
jne 0x10015e32
cmp dword [edi + 0x4ac], eax
je 0x10015e32
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x328]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x324]
test ecx, ecx
jne 0x10015e44
mov ecx, 0x1004bccf
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x10015e50
mov eax, 0x1004bccf
mov edx, dword [ebp - 0x20]
push edx
mov edx, dword [ebp - 0x10]
push edx
push ecx
mov ecx, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
push esi
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
push ecx
call fcn.10012100
add esp, 0x20
cmp dword [ebp - 0x14], 0
mov ebx, eax
je 0x10015e85
mov edx, dword [ebp - 0x14]
push edx
call dword [0x100560ec]
add esp, 4
push esi
call dword [0x100560ec]
add esp, 4
test ebx, ebx
jne 0x10015ed9
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
push 1
push eax
mov ebx, esi
call fcn.10012570
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10015ed9
push 0x1004c63c
push esi
call fcn.10012100
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10015ed9
mov ebx, dword [ebp + 8]
push eax
lea ecx, [edi + 0x48a0]
push ecx
mov ecx, dword [ebp + 0xc]
push esi
call fcn.10011f50
add esp, 0xc
mov ebx, eax
mov dword [ebp - 0xc], 0
test ebx, ebx
je 0x10015ef2
push str.Failed_sending_CONNECT_to_proxy
push edi
call fcn.10022ce0
add esp, 8
mov esi, dword [ebp - 0xc]
call fcn.10011f30
test ebx, ebx
jne 0x100161e2
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [edx + eax*4 + 0x594], 1
xor edx, edx
push 1
push edx
mov ebx, edi
call fcn.100021c0
add esp, 8
test edx, edx
jl 0x10016561
jg 0x10015f34
test eax, eax
je 0x10016561
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
call fcn.100035c0
test eax, eax
je 0x100166aa
mov eax, dword [edi + 0x6dc]
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], eax
jmp 0x10015f67
mov edi, dword [ebp - 8]
cmp dword [ebp - 0xc], 0
je 0x1001642e
mov ecx, dword [ebp + 8]
push ecx
call fcn.10020d40
add esp, 4
test eax, eax
jne 0x1001657b
mov edx, dword [edi + 0x6dc]
add edx, 0x4000
cmp dword [ebp - 4], edx
jae 0x10016587
push 1
push eax
mov ebx, edi
call fcn.100021c0
mov ebx, edx
add esp, 8
mov dword [ebp - 0x48], eax
test ebx, ebx
jl 0x10016419
jg 0x10015fbe
test eax, eax
je 0x10016419
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x2c]
push eax
push ecx
push edx
mov edx, 1
call fcn.10023320
add esp, 0xc
cmp eax, 0x51
jne 0x10016029
test ebx, ebx
jg 0x10015ff5
jl 0x10015fee
cmp dword [ebp - 0x48], 0x3e8
jae 0x10015ff5
mov eax, dword [ebp - 0x48]
mov ecx, ebx
jmp 0x10015ffc
mov eax, 0x3e8
xor ecx, ecx
push ecx
push eax
mov eax, dword [ebp - 0x24]
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.10022380
add esp, 0x14
cmp eax, 0xffffffff
je 0x10016481
cmp dword [ebp - 0x14], 0x4000
jb 0x10015f67
jmp 0x10016431
test eax, eax
jne 0x10016431
cmp dword [ebp - 0x2c], eax
jle 0x10016498
mov eax, 1
add dword [ebp - 0x14], eax
cmp dword [ebp - 0xc], eax
jle 0x100160d7
mov ecx, dword [ebp - 0x40]
mov eax, dword [edi + 0x6dc]
mov edx, ecx
or edx, dword [ebp - 0x3c]
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], eax
je 0x10016088
add ecx, 0xffffffff
adc dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x40], ecx
js 0x10016431
jg 0x10015f67
test ecx, ecx
je 0x10016431
jmp 0x10015f67
lea ecx, [ebp - 0x30]
push ecx
push eax
mov ecx, 1
mov edi, esi
mov dword [ebp - 0x30], 0
call fcn.10015230
add esp, 8
cmp eax, 0xffffffff
jne 0x10015f64
mov edx, dword [ebp - 8]
push str.chunk_reading_DONE_n
push edx
call fcn.10022c60
mov eax, dword [ebp + 0xc]
add esp, 8
mov dword [ebp - 0xc], 0
mov dword [esi + eax*4 + 0x594], 2
jmp 0x10015f64
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 4]
inc ebx
cmp byte [ecx], 0xa
mov dword [ebp - 0x20], ebx
je 0x100160ee
inc dword [ebp - 4]
jmp 0x10016017
cmp dword [edi + 0x3c4], 0
je 0x1001610d
mov edx, esi
mov esi, dword [ebp - 0x10]
push edx
push ebx
push esi
push 1
mov ecx, edi
call fcn.100234c0
add esp, 0x10
jmp 0x10016110
mov esi, dword [ebp - 0x10]
cmp dword [edi + 0x558], 0
jne 0x10016145
cmp dword [edi + 0x3ac], 0
mov eax, 2
je 0x1001612c
mov eax, 3
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
mov eax, esi
call fcn.100232b0
add esp, 8
test eax, eax
jne 0x100166ac
add dword [edi + 0x489c], ebx
add dword [edi + 0x80], ebx
mov al, byte [esi]
cmp al, 0xd
je 0x10016348
cmp al, 0xa
je 0x10016348
push 0x11
push esi
push str.WWW_Authenticate:
mov byte [ebx + esi], 0
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x10016188
mov eax, dword [edi + 0xc8]
cmp eax, 0x191
je 0x100161a9
push 0x13
push esi
push str.Proxy_authenticate:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x100161eb
mov eax, dword [edi + 0xc8]
cmp eax, 0x197
jne 0x100161eb
xor ebx, ebx
cmp eax, 0x197
mov eax, esi
sete bl
call fcn.10011440
mov esi, eax
test esi, esi
je 0x10016555
mov ecx, dword [ebp + 8]
push ebx
push ecx
call fcn.10011c50
push esi
mov ebx, eax
call dword [0x100560ec]
add esp, 0xc
test ebx, ebx
je 0x1001632d
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xf
push esi
push str.Content_Length:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x1001624a
mov ecx, dword [edi + 0xc8]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jne 0x1001622f
push ecx
push str.Ignoring_Content_Length_in_CONNECT__03d_response_n
push edi
call fcn.10022c60
add esp, 0xc
jmp 0x1001632d
push 0xa
push 0
add esi, 0xf
push esi
call fcn.10036a7f
add esp, 0xc
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
jmp 0x1001632d
push str.close
mov ecx, str.Connection:
mov eax, esi
call fcn.10012230
add esp, 4
test eax, eax
je 0x1001626e
mov dword [ebp - 0x18], 1
jmp 0x1001632d
push 0x12
push esi
push str.Transfer_Encoding:
call sym.libcurl.dll_curl_strnequal
add esp, 0xc
test eax, eax
je 0x100162e6
mov ecx, dword [edi + 0xc8]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jne 0x100162af
push ecx
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
push edi
call fcn.10022c60
add esp, 0xc
jmp 0x1001632d
push str.chunked
mov ecx, str.Transfer_Encoding:
mov eax, esi
call fcn.10012230
add esp, 4
test eax, eax
je 0x1001632d
push str.CONNECT_responded_chunked_n
push edi
call fcn.10022c60
mov eax, dword [ebp + 8]
add esp, 8
mov dword [ebp - 0x28], 1
call fcn.10015220
jmp 0x1001632d
push str.close
mov ecx, str.Proxy_Connection:
mov eax, esi
call fcn.10012230
add esp, 4
test eax, eax
je 0x10016307
mov dword [ebp - 0x18], 1
jmp 0x1001632d
lea ebx, [edi + 0xc8]
push ebx
lea ecx, [ebp - 0x34]
push ecx
push str.HTTP_1._d__d
push esi
call fcn.100360ab
add esp, 0x10
cmp eax, 2
jne 0x1001632d
mov edx, dword [ebx]
mov dword [edi + 0x488c], edx
mov eax, dword [edi + 0x6dc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
jmp 0x10016017
mov eax, dword [edi + 0x6dc]
xor edx, edx
cmp dword [edi + 0xc8], 0x197
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], eax
jne 0x10016414
cmp dword [edi + 0x47b4], edx
jne 0x10016414
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov ebx, eax
or ebx, ecx
mov dword [ebp - 0xc], 2
je 0x10016397
push ecx
push eax
push str.Ignore__I64d_bytes_of_response_body_n
push edi
call fcn.10022c60
add esp, 0x10
jmp 0x100163fe
cmp dword [ebp - 0x28], edx
je 0x10016414
push str.Ignore_chunked_response_body_n
push edi
call fcn.10022c60
mov ecx, 1
add esp, 8
mov dword [edi + 0x100], ecx
cmp byte [esi + 1], 0xa
jne 0x100163bf
inc esi
mov dword [ebp - 0x10], esi
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x2c]
push edx
inc esi
push esi
call fcn.10015230
add esp, 8
cmp eax, 0xffffffff
jne 0x100163fb
mov eax, dword [ebp - 8]
push str.chunk_reading_DONE_n
push eax
call fcn.10022c60
mov ecx, dword [ebp + 0xc]
add esp, 8
mov dword [ebp - 0xc], 0
mov dword [edi + ecx*4 + 0x594], 2
mov edi, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [eax + edx*4 + 0x594], 2
jmp 0x10015f67
mov dword [ebp - 0xc], edx
jmp 0x100163fe
push str.Proxy_CONNECT_aborted_due_to_timeout
push edi
call fcn.10022ce0
add esp, 8
mov dword [ebp - 0x1c], 2
mov esi, dword [ebp + 8]
push esi
call fcn.10020d40
add esp, 4
test eax, eax
jne 0x1001657b
cmp dword [ebp - 0x1c], eax
jne 0x1001656f
cmp dword [edi + 0x488c], 0xc8
je 0x100164e1
mov edi, esi
call fcn.10011820
test eax, eax
jne 0x100166ac
mov edi, dword [ebp - 8]
mov ebx, dword [ebp + 0xc]
cmp dword [esi + 0x26c], eax
je 0x100164e4
mov dword [ebp - 0x18], 1
jmp 0x100164ea
push str.Proxy_CONNECT_aborted_due_to_select_poll_error
push edi
mov dword [ebp - 0x1c], 1
call fcn.10022ce0
add esp, 8
jmp 0x10016431
cmp dword [edi + 0x158], 0
je 0x100164c7
cmp dword [edi + 0x47a4], 0
je 0x100164c7
push str.Proxy_CONNECT_connection_closed_n
push edi
mov dword [esi + 0x2d0], 1
call fcn.10022c60
add esp, 8
jmp 0x10016431
push str.Proxy_CONNECT_aborted
push edi
mov dword [ebp - 0x1c], 1
call fcn.10022ce0
add esp, 8
jmp 0x10016431
mov ebx, dword [ebp + 0xc]
cmp dword [ebp - 0x18], 0
je 0x100164f7
cmp dword [edi + 0x10c], 0
jne 0x100165a1
cmp dword [edi + 0x10c], 0
je 0x100165b8
cmp dword [esi + ebx*4 + 0x594], 2
jne 0x10016529
push 0
push str.TUNNEL_STATE_switched_to:__d_n
push edi
mov dword [esi + ebx*4 + 0x594], 0
call fcn.10022c60
add esp, 0xc
cmp dword [edi + 0x10c], 0
je 0x100165b8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
xor edx, edx
jmp 0x10015cc0
push esi
call dword [0x100560ec]
add esp, 4
mov esi, dword [ebp - 0xc]
call fcn.10011f30
mov eax, 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Proxy_CONNECT_aborted_due_to_timeout
push edi
call fcn.10022ce0
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x2a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.CONNECT_response_too_large_
push edi
call fcn.10022ce0
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + ebx*4 + 0x190]
call fcn.10003450
mov dword [esi + ebx*4 + 0x190], 0xffffffff
cmp dword [edi + 0xc8], 0xc8
je 0x10016663
cmp dword [ebp - 0x18], 0
je 0x100165f1
cmp dword [edi + 0x10c], 0
je 0x100165f1
push str.Connect_me_again_please_n
push edi
mov dword [esi + 0x2d0], 1
call fcn.10022c60
add esp, 8
jmp 0x1001662e
mov ecx, dword [edi + 0x10c]
push ecx
call dword [0x100560ec]
add esp, 4
mov eax, 2
mov edx, esi
mov dword [edi + 0x10c], 0
call fcn.10003570
mov eax, dword [esi + ebx*4 + 0x190]
call fcn.10003450
mov dword [esi + ebx*4 + 0x190], 0xffffffff
mov dword [esi + ebx*4 + 0x594], 0
cmp dword [esi + 0x2d0], 0
jne 0x100166aa
mov edx, dword [edi + 0xc8]
push edx
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push edi
call fcn.10022ce0
add esp, 0xc
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esi + ebx*4 + 0x594], 2
mov eax, dword [esi + 0x324]
push eax
call dword [0x100560ec]
add esp, 4
xor ebx, ebx
push str.Proxy_replied_OK_to_CONNECT_request_n
mov dword [esi + 0x324], ebx
push edi
mov dword [edi + 0x47a8], 1
call fcn.10022c60
mov dword [edi + 0x100], ebx
add esp, 8
mov dword [esi + 0x2b4], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret