Function at 0x1401dedb0
Capabilities:
Check http status code

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rsi, qword [rcx + 0x10]
mov rdi, rcx
mov rbx, rdx
mov ebp, r8d
mov r12, r9
test byte [rcx + 0x24], 1
je 0x1401dede2
mov byte [r9], 1
xor r15d, r15d
jmp 0x1401dfab1
test rdx, rdx
je 0x1401dee0b
test byte [rdx + 0xa0e], 0x20
je 0x1401dee0b
mov rax, qword [rcx]
cmp dword [rax + 0xc], 0
jle 0x1401dee0b
mov rdx, rcx
lea r8, str.connect
mov rcx, rbx
call sym.Curl_trc_cf_infof
mov rcx, qword [rdi + 8]
mov r9, r12
movzx r8d, bpl
mov rdx, rbx
mov rax, qword [rcx]
call qword [rax + 0x18]
mov r15d, eax
test eax, eax
jne 0x1401dfab1
cmp byte [r12], 0
je 0x1401dedda
mov byte [r12], 0
mov r13, qword [rdi + 0x18]
test rsi, rsi
jne 0x1401def44
mov rax, qword [r13 + 0x2b0]
test byte [rax + 0x8d], 0x40
je 0x1401dee70
mov r8, qword [rax]
lea rdx, str._s_cannot_be_done_over_CONNECT
mov rcx, rbx
mov r15d, 1
call sym.Curl_failf
jmp 0x1401dfab1
mov rcx, rbx
call sym.Curl_get_upload_buffer
mov r15d, eax
test eax, eax
jne 0x1401dfab1
mov edx, 0x120
mov rax, qword [0x1402c1a90]
mov ecx, 1
mov r15d, 0x1b
call qword [rax]
mov rsi, rax
test rax, rax
je 0x1401dfab1
test rbx, rbx
je 0x1401deec5
test byte [rbx + 0xa0e], 0x20
je 0x1401deec5
lea rdx, str.allocate_connect_buffer
mov rcx, rbx
call sym.Curl_infof
lea r13, [rsi + 0x70]
mov edx, 0x4000
lea rbp, [rsi + 0x90]
mov rcx, r13
call sym.Curl_dyn_init
mov edx, 0x100000
mov rcx, rbp
call sym.Curl_dyn_init
mov r8d, 1
lea rdx, [rsi + 0xc0]
mov rcx, rbx
call sym.Curl_httpchunk_init
mov rcx, qword [rdi + 0x18]
xor edx, edx
call sym.Curl_conncontrol
mov rcx, r13
call sym.Curl_dyn_reset
mov rcx, rbp
call sym.Curl_dyn_reset
xor eax, eax
xor edx, edx
and byte [rsi + 0x11c], 0xfd
mov dword [rsi + 0x118], eax
mov r13, qword [rdi + 0x18]
mov dword [rsi + 0x108], 1
mov qword [rsi + 0x110], rdx
mov qword [rdi + 0x10], rsi
mov eax, dword [rsi + 0x118]
cmp eax, 4
je 0x1401dfa21
cmp eax, 5
je 0x1401dfaa6
lea rax, [rsp + 0x5f]
mov qword [rsp + 0x38], rax
xor edx, edx
mov r8d, 1
mov rcx, rbx
call sym.Curl_timeleft
test rax, rax
jg 0x1401def95
lea rdx, str.Proxy_CONNECT_aborted_due_to_timeout
mov rcx, rbx
mov r15d, 0x1c
call sym.Curl_failf
jmp 0x1401dfa08
mov eax, dword [rsi + 0x118]
cmp eax, 2
je 0x1401df1da
ja 0x1401defb0
test eax, eax
jne 0x1401df0cc
jmp 0x1401defbe
cmp eax, 3
je 0x1401df88d
jmp 0x1401df95f
test rbx, rbx
je 0x1401defe7
test byte [rbx + 0xa0e], 0x20
je 0x1401defe7
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401defe7
lea r8, str.CONNECT_start
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
xor eax, eax
mov rcx, qword [rbx + 0x180]
mov qword [rsp + 0x68], rax
mov rax, qword [0x1402c1aa0]
call qword [rax]
xor eax, eax
lea rcx, [rsp + 0x68]
mov r9d, 1
mov qword [rbx + 0x180], rax
mov r8, rbx
mov rdx, rdi
call sym.Curl_http_proxy_create_CONNECT
mov r15d, eax
test eax, eax
jne 0x1401df08f
test byte [rbx + 0xa0e], 0x20
je 0x1401df045
mov rax, qword [rsp + 0x68]
lea rdx, str.Establish_HTTP_proxy_tunnel_to__s
mov rcx, rbx
mov r8, qword [rax + 0x20]
call sym.Curl_infof
lea r8, [rsi + 0x90]
mov rcx, r8
mov qword [rsp + 0x30], r8
call sym.Curl_dyn_reset
xor eax, eax
xor edx, edx
mov r8, qword [rsp + 0x30]
mov qword [rsi + 0xb0], rax
mov rcx, qword [rsp + 0x68]
mov qword [rsi + 0xb8], rax
mov rax, qword [rdi + 0x18]
cmp byte [rax + 0xec], 1
setne dl
call sym.Curl_h1_req_write_head
mov r15d, eax
test eax, eax
je 0x1401df09e
lea rdx, str.Failed_sending_CONNECT_to_proxy
mov rcx, rbx
call sym.Curl_failf
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401df0ad
call sym.Curl_http_req_free
test r15d, r15d
jne 0x1401dfa08
mov r9, rbx
mov r8d, 1
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
jmp 0x1401df0d1
test rbx, rbx
je 0x1401df0f5
test byte [rbx + 0xa0e], 0x20
je 0x1401df0f5
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401df0f5
lea r8, str.CONNECT_send
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
lea r14, [rsi + 0x90]
mov rcx, r14
call sym.Curl_dyn_ptr
mov rcx, r14
mov rbp, rax
call sym.Curl_dyn_len
mov r14, rax
xor eax, eax
mov dword [rsp + 0x68], eax
mov rax, qword [rsi + 0xb0]
cmp rax, r14
jae 0x1401df17e
mov rcx, qword [rdi + 8]
lea r8, [rbp + rax]
lea rdx, [rsp + 0x68]
mov r9, r14
sub r9, rax
mov qword [rsp + 0x30], r8
mov r10, qword [rcx]
mov qword [rsp + 0x20], rdx
mov rdx, rbx
call qword [r10 + 0x40]
mov r8, qword [rsp + 0x30]
test rax, rax
mov r9, rax
jns 0x1401df16a
cmp dword [rsp + 0x68], 0x51
jne 0x1401df17e
xor r15d, r15d
mov dword [rsp + 0x68], r15d
jmp 0x1401df17e
add qword [rsi + 0xb0], rax
mov edx, 2
mov rcx, rbx
call sym.Curl_debug
cmp dword [rsp + 0x68], 0
je 0x1401df194
lea rdx, str.Failed_sending_CONNECT_to_proxy
mov rcx, rbx
call sym.Curl_failf
mov r15d, dword [rsp + 0x68]
xor eax, eax
test r15d, r15d
jne 0x1401df1ac
xor eax, eax
cmp qword [rsi + 0xb0], r14
setae al
mov byte [rsp + 0x5e], al
and byte [rsp + 0x5e], 1
test r15d, r15d
jne 0x1401dfa08
test eax, eax
je 0x1401dfa21
mov r9, rbx
mov r8d, 2
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
test rbx, rbx
je 0x1401df203
test byte [rbx + 0xa0e], 0x20
je 0x1401df203
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401df203
lea r8, str.CONNECT_receive
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
mov rdx, rbx
mov rcx, rdi
call sym.Curl_conn_cf_get_socket
mov edx, dword [rdi + 0x20]
mov rcx, rbx
mov byte [rsp + 0x5e], 0
mov qword [rsp + 0x40], rax
call sym.Curl_conn_data_pending
test al, al
je 0x1401df2b3
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x70]
mov qword [rsp + 0x30], rax
jmp 0x1401df27c
cmp qword [rsp + 0x60], 0
jle 0x1401df2e1
cmp dword [rsi + 0x108], 2
jne 0x1401df3d8
mov rax, qword [rsi + 0x110]
test rax, rax
je 0x1401df354
dec rax
mov qword [rsi + 0x110], rax
test rax, rax
jle 0x1401df30d
cmp dword [rsi + 0x108], 0
je 0x1401df317
mov rax, qword [rsp + 0x48]
mov r8, qword [rsp + 0x38]
mov r9d, 1
mov rcx, rbx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
call sym.Curl_read
mov r15d, eax
cmp eax, 0x51
jne 0x1401df2bb
xor r15d, r15d
jmp 0x1401df855
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x1401df80c
test r15d, r15d
je 0x1401df240
xor ebp, ebp
mov dword [rsi + 0x108], ebp
jmp 0x1401df81c
cmp dword [rbx + 0x1f8], 0
je 0x1401df330
cmp dword [rbx + 0xd50], 0
je 0x1401df330
cmp qword [rbx + 0x1238], 0
je 0x1401df330
or byte [rsi + 0x11c], 2
test byte [rbx + 0xa0e], 0x20
jne 0x1401df31f
xor r11d, r11d
mov dword [rsi + 0x108], r11d
xor r15d, r15d
jmp 0x1401df81c
lea rdx, str.Proxy_CONNECT_connection_closed
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401df30d
lea rdx, str.Proxy_CONNECT_aborted
mov rcx, rbx
mov r15d, 0x38
call sym.Curl_failf
xor r10d, r10d
mov dword [rsi + 0x108], r10d
jmp 0x1401df81c
test byte [rsi + 0x11c], 1
je 0x1401df27c
lea rax, [rsp + 0x68]
xor r9d, r9d
mov r8, qword [rsp + 0x38]
mov rcx, rbx
mov qword [rsp + 0x20], rax
lea rbp, [rsi + 0xc0]
mov qword [rsp + 0x68], r9
mov rdx, rbp
mov r9d, 1
call sym.Curl_httpchunk_read
mov r15d, eax
test eax, eax
jne 0x1401df855
mov rdx, rbp
mov rcx, rbx
call sym.Curl_httpchunk_is_done
test al, al
je 0x1401df27c
test rbx, rbx
je 0x1401df53a
test byte [rbx + 0xa0e], 0x20
je 0x1401df53a
lea rdx, str.chunk_reading_DONE
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401df53a
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov r8d, 1
call sym.Curl_dyn_addn
test eax, eax
je 0x1401df40b
lea rdx, str.CONNECT_response_too_large
mov rcx, rbx
mov r15d, 0x38
call sym.Curl_failf
jmp 0x1401df855
cmp byte [rsp + 0x5f], 0xa
jne 0x1401df27c
inc qword [rsi + 0xb8]
mov rcx, qword [rsp + 0x30]
call sym.Curl_dyn_ptr
mov rcx, qword [rsp + 0x30]
mov rbp, rax
call sym.Curl_dyn_len
mov r8, rbp
mov edx, 1
mov rcx, rbx
mov r9, rax
mov r14, rax
call sym.Curl_debug
xor edx, edx
mov r9, r14
mov r8, rbp
cmp qword [rsi + 0xb8], 1
mov rcx, rbx
sete dl
lea edx, [rdx*8 + 0x14]
call sym.Curl_client_write
mov r15d, eax
test eax, eax
jne 0x1401df855
mov r8d, 1
mov rdx, r14
mov rcx, rbx
call sym.Curl_bump_headersize
mov r15d, eax
test eax, eax
jne 0x1401df855
mov al, byte [rbp]
cmp al, 0xd
je 0x1401df4a2
cmp al, 0xa
jne 0x1401df549
cmp dword [rbx + 0x140], 0x197
jne 0x1401df53a
test byte [rbx + 0x12ac], 0x20
jne 0x1401df53a
mov al, byte [rbx + 0xa0e]
mov r8, qword [rsi + 0x110]
mov dword [rsi + 0x108], 2
and eax, 0x20
test r8, r8
je 0x1401df4f6
test al, al
je 0x1401df27c
lea rdx, str.Ignore__lld_bytes_of_response_body
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401df27c
test byte [rsi + 0x11c], 1
je 0x1401df51b
test al, al
je 0x1401df27c
lea rdx, str.Ignore_chunked_response_body
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401df27c
test al, al
je 0x1401df53a
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401df53a
lea r8, str.CONNECT:_no_content_length_or_chunked
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
xor r8d, r8d
mov dword [rsi + 0x108], r8d
jmp 0x1401df27c
mov r8d, 0x11
lea rdx, str.WWW_Authenticate:
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x1401df591
cmp dword [rbx + 0x140], 0x191
jne 0x1401df591
cmp dword [rbx + 0x140], 0x197
mov rcx, rbp
sete r15b
call sym.Curl_copy_header_value
mov r14, rax
test rax, rax
jne 0x1401df5b8
jmp 0x1401df814
mov r8d, 0x13
lea rdx, str.Proxy_authenticate:
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x1401df60b
cmp dword [rbx + 0x140], 0x197
jne 0x1401df60b
jmp 0x1401df56e
test byte [rbx + 0xa0e], 0x20
je 0x1401df5df
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401df5df
mov r9, rbp
lea r8, str.CONNECT:_fwd_auth_header__s
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
movzx edx, r15b
mov rcx, rbx
mov r8, r14
call sym.Curl_http_input_auth
mov rcx, r14
mov r15d, eax
mov rax, qword [0x1402c1aa0]
call qword [rax]
test r15d, r15d
je 0x1401df7fd
jmp 0x1401df855
mov r8d, 0xf
lea rdx, str.Content_Length:
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x1401df66d
mov r8d, dword [rbx + 0x140]
lea eax, [r8 - 0xc8]
cmp eax, 0x63
ja 0x1401df650
lea rdx, str.Ignoring_Content_Length_in_CONNECT__03d_response
test byte [rbx + 0xa0e], 0x20
je 0x1401df7fd
jmp 0x1401df6e1
lea rcx, [rbp + 0xf]
lea r9, [rsi + 0x110]
mov r8d, 0xa
xor edx, edx
call sym.curlx_strtoofft
jmp 0x1401df7fd
lea r9, [0x1402bd8f0]
mov r8d, 0xb
mov rcx, rbp
mov qword [rsp + 0x20], 5
lea rdx, str.Connection:
call sym.Curl_compareheader
test al, al
jne 0x1401df779
lea r14, str.Transfer_Encoding:
mov r8d, 0x12
mov rcx, rbp
mov rdx, r14
call sym.curl_strnequal
test eax, eax
je 0x1401df750
mov r8d, dword [rbx + 0x140]
lea eax, [r8 - 0xc8]
cmp eax, 0x63
ja 0x1401df6ee
test byte [rbx + 0xa0e], 0x20
je 0x1401df7fd
lea rdx, str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401df7fd
mov qword [rsp + 0x20], 7
lea r9, str.chunked
mov rdx, r14
mov rcx, rbp
mov r8d, 0x12
call sym.Curl_compareheader
test al, al
je 0x1401df7fd
test byte [rbx + 0xa0e], 0x20
je 0x1401df72f
lea rdx, str.CONNECT_responded_chunked
mov rcx, rbx
call sym.Curl_infof
or byte [rsi + 0x11c], 1
lea rdx, [rsi + 0xc0]
mov r8d, 1
mov rcx, rbx
call sym.Curl_httpchunk_reset
jmp 0x1401df7fd
lea r9, [0x1402bd8f0]
mov r8d, 0x11
mov rcx, rbp
mov qword [rsp + 0x20], 5
lea rdx, str.Proxy_Connection:
call sym.Curl_compareheader
test al, al
je 0x1401df782
or byte [rsi + 0x11c], 2
jmp 0x1401df7fd
mov r8d, 7
lea rdx, str.HTTP_1.
mov rcx, rbp
call sym.strncmp
test eax, eax
jne 0x1401df7fd
mov al, byte [rbp + 7]
sub eax, 0x30
cmp al, 1
ja 0x1401df7fd
cmp byte [rbp + 8], 0x20
jne 0x1401df7fd
movsx eax, byte [rbp + 9]
lea edx, [rax - 0x30]
cmp dl, 9
ja 0x1401df7fd
movsx edx, byte [rbp + 0xa]
lea ecx, [rdx - 0x30]
cmp cl, 9
ja 0x1401df7fd
movsx ecx, byte [rbp + 0xb]
lea r8d, [rcx - 0x30]
cmp r8b, 9
ja 0x1401df7fd
mov r8b, byte [rbp + 0xc]
sub r8d, 0x30
cmp r8b, 9
jbe 0x1401df7fd
sub eax, 0x30
sub edx, 0x30
imul eax, eax, 0x64
imul edx, edx, 0xa
add eax, edx
lea eax, [rax + rcx - 0x30]
mov dword [rbx + 0x140], eax
mov dword [rbx + 0x12b4], eax
mov rcx, qword [rsp + 0x30]
call sym.Curl_dyn_reset
jmp 0x1401df27c
mov r15d, 0x2a
jmp 0x1401df855
mov r15d, 0x1b
jmp 0x1401df855
mov eax, dword [rsi + 0x108]
test eax, eax
sete byte [rsp + 0x5e]
test r15d, r15d
jne 0x1401df855
test eax, eax
jne 0x1401df2b3
mov eax, dword [rbx + 0x12b4]
sub eax, 0xc8
cmp eax, 0x63
jbe 0x1401df2b3
mov rcx, rbx
call sym.Curl_http_auth_act
mov r15d, eax
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x1401dfa02
test r15d, r15d
jne 0x1401dfa08
cmp byte [rsp + 0x5e], 0
je 0x1401dfa21
mov r9, rbx
mov r8d, 3
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
test rbx, rbx
je 0x1401df8b6
test byte [rbx + 0xa0e], 0x20
je 0x1401df8b6
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401df8b6
lea r8, str.CONNECT_response
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
cmp qword [rbx + 0x180], 0
je 0x1401df95f
test byte [rsi + 0x11c], 2
jne 0x1401df8d7
test byte [r13 + 0x2a8], 0x40
je 0x1401df94e
test byte [rbx + 0xa0e], 0x20
je 0x1401df915
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jg 0x1401df8fa
lea rdx, str.Connect_me_again_please
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401df915
lea r8, str.CONNECT_need_to_closeopen
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
test byte [rbx + 0xa0e], 0x20
jne 0x1401df8e9
mov rdx, rbx
mov rcx, rdi
call sym.Curl_conn_cf_close
xor edx, edx
mov rcx, r13
call sym.Curl_conncontrol
mov rcx, qword [rdi + 8]
xor r8d, r8d
mov rdx, rbx
lea r9, [rsp + 0x5e]
call sym.Curl_conn_cf_connect
mov r15d, eax
test eax, eax
jne 0x1401dfa08
jmp 0x1401dfa21
mov r9, rbx
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
cmp qword [rbx + 0x180], 0
jne 0x1401def66
mov eax, dword [rbx + 0x12b4]
sub eax, 0xc8
cmp eax, 0x63
jbe 0x1401df9cd
mov rax, qword [0x1402c1aa0]
xor ecx, ecx
call qword [rax]
xor ecx, ecx
mov edx, 2
mov qword [rbx + 0x180], rcx
mov rcx, r13
call sym.Curl_conncontrol
mov rdx, rsi
mov rcx, rdi
mov r9, rbx
mov r8d, 5
call sym.h1_tunnel_go_state
mov r8d, dword [rbx + 0x140]
lea rdx, str.CONNECT_tunnel_failed__response__d
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401dfaa6
mov r9, rbx
mov r8d, 4
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
test byte [rbx + 0xa0e], 0x20
je 0x1401dfa21
mov r8d, dword [rbx + 0x12b4]
lea rdx, str.CONNECT_tunnel_established__response__d
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401dfa21
mov r15d, 0x2a
mov r9, rbx
mov r8d, 5
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
jmp 0x1401dfaac
mov rax, qword [0x1402c1aa0]
mov rcx, qword [rbx + 0x1238]
call qword [rax]
mov rax, qword [rdi + 0x10]
xor edx, edx
mov qword [rbx + 0x1238], rdx
test rax, rax
je 0x1401dfa4c
cmp dword [rax + 0x118], 4
je 0x1401dfa56
mov byte [r12], 0
jmp 0x1401dedda
xor eax, eax
mov byte [r12], 1
mov rcx, rbx
or byte [rdi + 0x24], 1
mov qword [rbx + 0x100], rax
mov al, byte [rbx + 0x1bc]
and eax, 0xffffffde
or eax, 1
mov byte [rbx + 0x1bc], al
call sym.Curl_client_cleanup
xor edx, edx
mov rcx, rbx
call sym.Curl_pgrsSetUploadCounter
xor edx, edx
mov rcx, rbx
call sym.Curl_pgrsSetDownloadCounter
mov rdx, rbx
mov rcx, rdi
call sym.tunnel_free
jmp 0x1401dedda
mov r15d, 0x38
mov byte [r12], 0
mov eax, r15d
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret