Function at 0x1401b5b40
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 0x1401b5b72
mov byte [r9], 1
xor r15d, r15d
jmp 0x1401b6841
test rdx, rdx
je 0x1401b5b9b
test byte [rdx + 0xa0e], 0x20
je 0x1401b5b9b
mov rax, qword [rcx]
cmp dword [rax + 0xc], 0
jle 0x1401b5b9b
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 0x1401b6841
cmp byte [r12], 0
je 0x1401b5b6a
mov byte [r12], 0
mov r13, qword [rdi + 0x18]
test rsi, rsi
jne 0x1401b5cd4
mov rax, qword [r13 + 0x2b0]
test byte [rax + 0x8d], 0x40
je 0x1401b5c00
mov r8, qword [rax]
lea rdx, str._s_cannot_be_done_over_CONNECT
mov rcx, rbx
mov r15d, 1
call sym.Curl_failf
jmp 0x1401b6841
mov rcx, rbx
call sym.Curl_get_upload_buffer
mov r15d, eax
test eax, eax
jne 0x1401b6841
mov edx, 0x120
mov rax, qword [0x140297b90]
mov ecx, 1
mov r15d, 0x1b
call qword [rax]
mov rsi, rax
test rax, rax
je 0x1401b6841
test rbx, rbx
je 0x1401b5c55
test byte [rbx + 0xa0e], 0x20
je 0x1401b5c55
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 0x1401b67b1
cmp eax, 5
je 0x1401b6836
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 0x1401b5d25
lea rdx, str.Proxy_CONNECT_aborted_due_to_timeout
mov rcx, rbx
mov r15d, 0x1c
call sym.Curl_failf
jmp 0x1401b6798
mov eax, dword [rsi + 0x118]
cmp eax, 2
je 0x1401b5f6a
ja 0x1401b5d40
test eax, eax
jne 0x1401b5e5c
jmp 0x1401b5d4e
cmp eax, 3
je 0x1401b661d
jmp 0x1401b66ef
test rbx, rbx
je 0x1401b5d77
test byte [rbx + 0xa0e], 0x20
je 0x1401b5d77
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401b5d77
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 [0x140297ba0]
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 0x1401b5e1f
test byte [rbx + 0xa0e], 0x20
je 0x1401b5dd5
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 0x1401b5e2e
lea rdx, str.Failed_sending_CONNECT_to_proxy
mov rcx, rbx
call sym.Curl_failf
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401b5e3d
call sym.Curl_http_req_free
test r15d, r15d
jne 0x1401b6798
mov r9, rbx
mov r8d, 1
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
jmp 0x1401b5e61
test rbx, rbx
je 0x1401b5e85
test byte [rbx + 0xa0e], 0x20
je 0x1401b5e85
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401b5e85
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 0x1401b5f0e
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 0x1401b5efa
cmp dword [rsp + 0x68], 0x51
jne 0x1401b5f0e
xor r15d, r15d
mov dword [rsp + 0x68], r15d
jmp 0x1401b5f0e
add qword [rsi + 0xb0], rax
mov edx, 2
mov rcx, rbx
call sym.Curl_debug
cmp dword [rsp + 0x68], 0
je 0x1401b5f24
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 0x1401b5f3c
xor eax, eax
cmp qword [rsi + 0xb0], r14
setae al
mov byte [rsp + 0x5e], al
and byte [rsp + 0x5e], 1
test r15d, r15d
jne 0x1401b6798
test eax, eax
je 0x1401b67b1
mov r9, rbx
mov r8d, 2
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
test rbx, rbx
je 0x1401b5f93
test byte [rbx + 0xa0e], 0x20
je 0x1401b5f93
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401b5f93
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 0x1401b6043
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsi + 0x70]
mov qword [rsp + 0x30], rax
jmp 0x1401b600c
cmp qword [rsp + 0x60], 0
jle 0x1401b6071
cmp dword [rsi + 0x108], 2
jne 0x1401b6168
mov rax, qword [rsi + 0x110]
test rax, rax
je 0x1401b60e4
dec rax
mov qword [rsi + 0x110], rax
test rax, rax
jle 0x1401b609d
cmp dword [rsi + 0x108], 0
je 0x1401b60a7
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 0x1401b604b
xor r15d, r15d
jmp 0x1401b65e5
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x1401b659c
test r15d, r15d
je 0x1401b5fd0
xor ebp, ebp
mov dword [rsi + 0x108], ebp
jmp 0x1401b65ac
cmp dword [rbx + 0x1f8], 0
je 0x1401b60c0
cmp dword [rbx + 0xd50], 0
je 0x1401b60c0
cmp qword [rbx + 0x1238], 0
je 0x1401b60c0
or byte [rsi + 0x11c], 2
test byte [rbx + 0xa0e], 0x20
jne 0x1401b60af
xor r11d, r11d
mov dword [rsi + 0x108], r11d
xor r15d, r15d
jmp 0x1401b65ac
lea rdx, str.Proxy_CONNECT_connection_closed
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b609d
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 0x1401b65ac
test byte [rsi + 0x11c], 1
je 0x1401b600c
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 0x1401b65e5
mov rdx, rbp
mov rcx, rbx
call sym.Curl_httpchunk_is_done
test al, al
je 0x1401b600c
test rbx, rbx
je 0x1401b62ca
test byte [rbx + 0xa0e], 0x20
je 0x1401b62ca
lea rdx, str.chunk_reading_DONE
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b62ca
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov r8d, 1
call sym.Curl_dyn_addn
test eax, eax
je 0x1401b619b
lea rdx, str.CONNECT_response_too_large
mov rcx, rbx
mov r15d, 0x38
call sym.Curl_failf
jmp 0x1401b65e5
cmp byte [rsp + 0x5f], 0xa
jne 0x1401b600c
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 0x1401b65e5
mov r8d, 1
mov rdx, r14
mov rcx, rbx
call sym.Curl_bump_headersize
mov r15d, eax
test eax, eax
jne 0x1401b65e5
mov al, byte [rbp]
cmp al, 0xd
je 0x1401b6232
cmp al, 0xa
jne 0x1401b62d9
cmp dword [rbx + 0x140], 0x197
jne 0x1401b62ca
test byte [rbx + 0x12ac], 0x20
jne 0x1401b62ca
mov al, byte [rbx + 0xa0e]
mov r8, qword [rsi + 0x110]
mov dword [rsi + 0x108], 2
and eax, 0x20
test r8, r8
je 0x1401b6286
test al, al
je 0x1401b600c
lea rdx, str.Ignore__lld_bytes_of_response_body
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b600c
test byte [rsi + 0x11c], 1
je 0x1401b62ab
test al, al
je 0x1401b600c
lea rdx, str.Ignore_chunked_response_body
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b600c
test al, al
je 0x1401b62ca
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401b62ca
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 0x1401b600c
mov r8d, 0x11
lea rdx, str.WWW_Authenticate:
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x1401b6321
cmp dword [rbx + 0x140], 0x191
jne 0x1401b6321
cmp dword [rbx + 0x140], 0x197
mov rcx, rbp
sete r15b
call sym.Curl_copy_header_value
mov r14, rax
test rax, rax
jne 0x1401b6348
jmp 0x1401b65a4
mov r8d, 0x13
lea rdx, str.Proxy_authenticate:
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x1401b639b
cmp dword [rbx + 0x140], 0x197
jne 0x1401b639b
jmp 0x1401b62fe
test byte [rbx + 0xa0e], 0x20
je 0x1401b636f
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401b636f
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 [0x140297ba0]
call qword [rax]
test r15d, r15d
je 0x1401b658d
jmp 0x1401b65e5
mov r8d, 0xf
lea rdx, str.Content_Length:
mov rcx, rbp
call sym.curl_strnequal
test eax, eax
je 0x1401b63fd
mov r8d, dword [rbx + 0x140]
lea eax, [r8 - 0xc8]
cmp eax, 0x63
ja 0x1401b63e0
lea rdx, str.Ignoring_Content_Length_in_CONNECT__03d_response
test byte [rbx + 0xa0e], 0x20
je 0x1401b658d
jmp 0x1401b6471
lea rcx, [rbp + 0xf]
lea r9, [rsi + 0x110]
mov r8d, 0xa
xor edx, edx
call sym.curlx_strtoofft
jmp 0x1401b658d
lea r9, [0x140293a00]
mov r8d, 0xb
mov rcx, rbp
mov qword [rsp + 0x20], 5
lea rdx, str.Connection:
call sym.Curl_compareheader
test al, al
jne 0x1401b6509
lea r14, str.Transfer_Encoding:
mov r8d, 0x12
mov rcx, rbp
mov rdx, r14
call sym.curl_strnequal
test eax, eax
je 0x1401b64e0
mov r8d, dword [rbx + 0x140]
lea eax, [r8 - 0xc8]
cmp eax, 0x63
ja 0x1401b647e
test byte [rbx + 0xa0e], 0x20
je 0x1401b658d
lea rdx, str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b658d
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 0x1401b658d
test byte [rbx + 0xa0e], 0x20
je 0x1401b64bf
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 0x1401b658d
lea r9, [0x140293a00]
mov r8d, 0x11
mov rcx, rbp
mov qword [rsp + 0x20], 5
lea rdx, str.Proxy_Connection:
call sym.Curl_compareheader
test al, al
je 0x1401b6512
or byte [rsi + 0x11c], 2
jmp 0x1401b658d
mov r8d, 7
lea rdx, str.HTTP_1.
mov rcx, rbp
call sym.strncmp
test eax, eax
jne 0x1401b658d
mov al, byte [rbp + 7]
sub eax, 0x30
cmp al, 1
ja 0x1401b658d
cmp byte [rbp + 8], 0x20
jne 0x1401b658d
movsx eax, byte [rbp + 9]
lea edx, [rax - 0x30]
cmp dl, 9
ja 0x1401b658d
movsx edx, byte [rbp + 0xa]
lea ecx, [rdx - 0x30]
cmp cl, 9
ja 0x1401b658d
movsx ecx, byte [rbp + 0xb]
lea r8d, [rcx - 0x30]
cmp r8b, 9
ja 0x1401b658d
mov r8b, byte [rbp + 0xc]
sub r8d, 0x30
cmp r8b, 9
jbe 0x1401b658d
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 0x1401b600c
mov r15d, 0x2a
jmp 0x1401b65e5
mov r15d, 0x1b
jmp 0x1401b65e5
mov eax, dword [rsi + 0x108]
test eax, eax
sete byte [rsp + 0x5e]
test r15d, r15d
jne 0x1401b65e5
test eax, eax
jne 0x1401b6043
mov eax, dword [rbx + 0x12b4]
sub eax, 0xc8
cmp eax, 0x63
jbe 0x1401b6043
mov rcx, rbx
call sym.Curl_http_auth_act
mov r15d, eax
mov rcx, rbx
call sym.Curl_pgrsUpdate
test eax, eax
jne 0x1401b6792
test r15d, r15d
jne 0x1401b6798
cmp byte [rsp + 0x5e], 0
je 0x1401b67b1
mov r9, rbx
mov r8d, 3
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
test rbx, rbx
je 0x1401b6646
test byte [rbx + 0xa0e], 0x20
je 0x1401b6646
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jle 0x1401b6646
lea r8, str.CONNECT_response
mov rdx, rdi
mov rcx, rbx
call sym.Curl_trc_cf_infof
cmp qword [rbx + 0x180], 0
je 0x1401b66ef
test byte [rsi + 0x11c], 2
jne 0x1401b6667
test byte [r13 + 0x2a8], 0x40
je 0x1401b66de
test byte [rbx + 0xa0e], 0x20
je 0x1401b66a5
mov rax, qword [rdi]
cmp dword [rax + 0xc], 0
jg 0x1401b668a
lea rdx, str.Connect_me_again_please
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b66a5
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 0x1401b6679
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 0x1401b6798
jmp 0x1401b67b1
mov r9, rbx
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
cmp qword [rbx + 0x180], 0
jne 0x1401b5cf6
mov eax, dword [rbx + 0x12b4]
sub eax, 0xc8
cmp eax, 0x63
jbe 0x1401b675d
mov rax, qword [0x140297ba0]
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 0x1401b6836
mov r9, rbx
mov r8d, 4
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
test byte [rbx + 0xa0e], 0x20
je 0x1401b67b1
mov r8d, dword [rbx + 0x12b4]
lea rdx, str.CONNECT_tunnel_established__response__d
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401b67b1
mov r15d, 0x2a
mov r9, rbx
mov r8d, 5
mov rdx, rsi
mov rcx, rdi
call sym.h1_tunnel_go_state
jmp 0x1401b683c
mov rax, qword [0x140297ba0]
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 0x1401b67dc
cmp dword [rax + 0x118], 4
je 0x1401b67e6
mov byte [r12], 0
jmp 0x1401b5b6a
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 0x1401b5b6a
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