Function at 0x1401a5910
Capabilities:
Check http status code

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xc0]
mov byte [rax], 0
mov qword [rsp + 0xa8], rdx
mov rbx, rcx
mov rdi, r8
mov rbp, r9
test byte [rcx + 0x1bc], 1
jne 0x1401a5953
xor r11d, r11d
mov qword [r9], r11
xor r12d, r12d
jmp 0x1401a6587
lea rax, [rcx + 0xf0]
xor r10d, r10d
mov rsi, qword [rcx + 0x20]
mov qword [rsp + 0x40], rax
lea rax, [rcx + 0xbe8]
mov qword [r9], r10
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0xa8]
mov r8, rdi
mov edx, 0xa
call sym.memchr
mov r13, rax
test rax, rax
jne 0x1401a5a2a
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x38]
mov r8, rdi
call sym.Curl_dyn_addn
mov r12d, eax
test eax, eax
jne 0x1401a6587
add qword [rbp], rdi
cmp dword [rbx + 0x134], 0
jne 0x1401a5ffb
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
call sym.Curl_dyn_ptr
mov rcx, qword [rbx + 0x6a8]
mov r8, qword [rsp + 0x40]
mov rdx, rax
call sym.checkhttpprefix.isra.0
cmp eax, 2
jne 0x1401a5ffb
and byte [rbx + 0x1bc], 0xfe
mov edx, 2
mov rcx, rsi
call sym.Curl_conncontrol
cmp byte [rbx + 0xa11], 0
js 0x1401a5ac0
lea rdx, str.Received_HTTP_0.9_when_not_allowed
jmp 0x1401a615b
sub r13, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x38]
inc r13
mov r8, r13
call sym.Curl_dyn_addn
mov r12d, eax
test eax, eax
jne 0x1401a6587
add qword [rsp + 0xa8], r13
sub rdi, r13
add qword [rbp], r13
cmp dword [rbx + 0x134], 0
jne 0x1401a5ac7
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x48], rax
call sym.Curl_dyn_ptr
mov rcx, qword [rbx + 0x6a8]
mov r8, qword [rsp + 0x48]
mov rdx, rax
call sym.checkhttpprefix.isra.0
cmp eax, 2
jne 0x1401a5ac7
mov edx, 2
mov rcx, rsi
call sym.Curl_conncontrol
cmp byte [rbx + 0xa11], 0
jns 0x1401a5a1e
and byte [rbx + 0x1bc], 0xfe
mov al, 1
jmp 0x1401a64f8
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_ptr
mov r13, rax
mov al, byte [rax]
cmp al, 0xa
sete r14b
cmp al, 0xd
sete al
or r14b, al
je 0x1401a6041
mov eax, dword [rbx + 0x140]
lea edx, [rax - 0x64]
cmp edx, 0x63
ja 0x1401a5bc7
cmp eax, 0x64
je 0x1401a5b0b
cmp eax, 0x65
je 0x1401a5b48
jmp 0x1401a5bb3
xor r9d, r9d
or byte [rbx + 0x1bc], 1
cmp dword [rbx + 0x158], 0
mov dword [rbx + 0x134], r9d
je 0x1401a5b40
xor r8d, r8d
or dword [rbx + 0x144], 2
xor edx, edx
mov rcx, rbx
mov dword [rbx + 0x158], r8d
call sym.Curl_expire_done
xor r14d, r14d
jmp 0x1401a5c63
cmp byte [rsi + 0x4cc], 0xb
jne 0x1401a5b99
cmp dword [rbx + 0x15c], 2
jne 0x1401a5b90
test byte [rbx + 0xa0e], 0x20
je 0x1401a5b72
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rbx
call sym.Curl_infof
xor ecx, ecx
or byte [rbx + 0x1bc], 1
mov dword [rbx + 0x15c], 3
mov dword [rbx + 0x134], ecx
jmp 0x1401a5c63
and byte [rbx + 0x1bc], 0xfe
jmp 0x1401a5b40
lea rdx, str.unexpected_101_response_code
mov rcx, rbx
call sym.Curl_failf
mov r12d, 8
jmp 0x1401a6587
xor edx, edx
or byte [rbx + 0x1bc], 1
mov dword [rbx + 0x134], edx
jmp 0x1401a5b40
cmp dword [rbx + 0x15c], 2
jne 0x1401a5bdc
mov rcx, qword [rbx + 0xd8]
call sym.Curl_multi_connchanged
and byte [rbx + 0x1bc], 0xfe
cmp qword [rbx + 0xf0], 0xffffffffffffffff
jne 0x1401a5b40
cmp byte [rbx + 0x1bc], 0
js 0x1401a5b40
test byte [rsi + 0x2a8], 0x40
jne 0x1401a5b40
cmp byte [rsi + 0x4cc], 0xb
jne 0x1401a5b40
mov rax, qword [rsi + 0x2b0]
test byte [rax + 0x86], 4
jne 0x1401a5b40
cmp byte [rbx + 0x12aa], 5
je 0x1401a5b40
test byte [rbx + 0xa0e], 0x20
je 0x1401a5c51
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rbx
call sym.Curl_infof
mov edx, 2
mov rcx, rsi
call sym.Curl_conncontrol
jmp 0x1401a5b40
test byte [rbx + 0x1bc], 1
je 0x1401a5c77
test byte [rsi + 0x2a8], 0x40
jne 0x1401a5c8b
jmp 0x1401a5cd0
mov rcx, rbx
call sym.Curl_http_size
mov r12d, eax
test eax, eax
je 0x1401a5c6c
jmp 0x1401a6587
mov eax, dword [rbx + 0x140]
cmp eax, 0x191
jne 0x1401a5ca1
cmp dword [rsi + 0x378], 1
jmp 0x1401a5caf
cmp eax, 0x197
jne 0x1401a5cd0
cmp dword [rsi + 0x37c], 1
jne 0x1401a5cd0
test byte [rbx + 0xa0e], 0x20
je 0x1401a5cc9
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rbx
call sym.Curl_infof
or byte [rbx + 0x12ac], 0x20
cmp dword [rsi + 0x378], 3
mov eax, dword [rbx + 0x140]
jne 0x1401a5cf0
cmp eax, 0x191
je 0x1401a5cf0
mov dword [rsi + 0x378], 4
cmp dword [rsi + 0x37c], 3
jne 0x1401a5d0a
cmp eax, 0x197
je 0x1401a5d18
mov dword [rsi + 0x37c], 4
sub eax, 0x64
mov r15d, 0x24
cmp eax, 0x63
jbe 0x1401a5d1e
mov r15d, 4
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov rcx, qword [rsp + 0x38]
mov r13, rax
call sym.Curl_dyn_ptr
mov r9, r13
mov edx, r15d
mov rcx, rbx
mov r8, rax
call sym.Curl_client_write
mov r12d, eax
test eax, eax
jne 0x1401a6587
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
call sym.Curl_bump_headersize
mov r12d, eax
test eax, eax
jne 0x1401a6587
mov rcx, rbx
call sym.http_should_fail
mov r8d, dword [rbx + 0x140]
test al, al
je 0x1401a5d94
lea rdx, str.The_requested_URL_returned_error:__d
mov r12d, 0x16
call sym.Curl_failf
jmp 0x1401a6587
sub r8d, 0x64
cmp r8d, 0x63
ja 0x1401a5da5
mov r12d, dword [rbx + 0x128]
mov dword [rbx + 0x130], r12d
mov rcx, rbx
call sym.Curl_http_auth_act
mov r12d, eax
test eax, eax
jne 0x1401a6587
cmp dword [rbx + 0x140], 0x12b
jle 0x1401a5f8e
mov al, byte [rbx + 0x12ae]
test dword [rsi + 0x2a8], 0x10040
jne 0x1401a5f61
test al, 4
je 0x1401a5dfc
cmp qword [rsi + 0x2d8], 0xffffffffffffffff
jne 0x1401a5f6f
jmp 0x1401a5f8e
movzx eax, byte [rbx + 0x12aa]
dec eax
cmp eax, 3
ja 0x1401a5f8e
xor edx, edx
mov rcx, rbx
call sym.Curl_expire_done
test byte [rbx + 0x1bc], 0x10
jne 0x1401a5f61
mov al, byte [rbx + 0xa0e]
and eax, 0x20
cmp dword [rbx + 0x140], 0x1a1
jne 0x1401a5ed9
cmp byte [rbx + 0x12ac], 0
jns 0x1401a5ed9
cmp qword [rbx + 0x108], 0
jne 0x1401a5e73
cmp dword [rbx + 0x158], 1
jne 0x1401a5e73
test al, al
je 0x1401a5ea9
lea rdx, str.Got_HTTP_failure_417_while_waiting_for_a_100
mov rcx, rbx
call sym.Curl_infof
jmp 0x1401a5ea9
test al, al
je 0x1401a5e86
lea rdx, str.Got_HTTP_failure_417_while_sending_data
mov rcx, rbx
call sym.Curl_infof
mov edx, 2
mov rcx, rsi
call sym.Curl_conncontrol
mov rdx, rsi
mov rcx, rbx
call sym.http_perhapsrewind
mov r12d, eax
test eax, eax
jne 0x1401a6587
mov rax, qword [0x140297bf0]
mov rcx, qword [rbx + 0x1150]
or byte [rbx + 0x12ad], 1
call qword [rax]
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
mov qword [rbx + 0x180], rax
call sym.Curl_done_sending
jmp 0x1401a5f61
test byte [rbx + 0xa0d], 0x20
je 0x1401a5f0f
test al, al
je 0x1401a5ef5
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
mov rcx, rbx
call sym.Curl_infof
cmp dword [rbx + 0x158], 0
je 0x1401a5f61
xor eax, eax
or dword [rbx + 0x144], 2
mov dword [rbx + 0x158], eax
jmp 0x1401a5f61
test al, al
je 0x1401a5f22
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
mov rcx, rbx
call sym.Curl_infof
mov edx, 2
mov rcx, rsi
call sym.Curl_conncontrol
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call sym.Curl_done_sending
mov r12d, eax
test eax, eax
jne 0x1401a6587
or byte [rbx + 0x1bc], 0x10
cmp byte [rbx + 0x12ac], 0
jns 0x1401a5f61
mov dword [rbx + 0x158], 3
test byte [rbx + 0x12ae], 4
je 0x1401a5f8e
jmp 0x1401a5de9
test byte [rbx + 0xa0e], 0x20
je 0x1401a5f87
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rbx
call sym.Curl_infof
or dword [rbx + 0x144], 2
mov al, byte [rbx + 0x1bc]
test al, 1
jne 0x1401a6002
test byte [rbx + 0x1bd], 0x10
je 0x1401a5faa
or eax, 4
mov byte [rbx + 0x1bc], al
cmp qword [rbx + 0xf8], 0
jne 0x1401a5fcd
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call sym.Curl_conn_is_http2
test al, al
jne 0x1401a5fcd
or byte [rbx + 0x1bc], 4
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
call sym.Curl_dyn_ptr
mov r9, qword [rsp + 0x40]
mov edx, 1
mov rcx, rbx
mov r8, rax
call sym.Curl_debug
xor eax, eax
jmp 0x1401a64f8
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_reset
test r14b, r14b
je 0x1401a64ea
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
mov r9, qword [rsp + 0xa8]
call sym.Curl_http2_upgrade
mov r12d, eax
test eax, eax
jne 0x1401a6587
add qword [rbp], rdi
jmp 0x1401a5ffb
mov eax, dword [rbx + 0x134]
lea edx, [rax + 1]
mov dword [rbx + 0x134], edx
test eax, eax
jne 0x1401a63c9
mov rax, qword [rsi + 0x2b0]
mov eax, dword [rax + 0x84]
test al, 3
je 0x1401a62c0
mov r14, r13
mov al, byte [r14]
test al, al
je 0x1401a6084
cmp al, 0x20
jne 0x1401a6080
inc r14
jmp 0x1401a6070
cmp al, 9
je 0x1401a607b
mov r8d, 5
lea rdx, str.HTTP_
mov rcx, r14
call sym.strncmp
test eax, eax
jne 0x1401a6275
movsx eax, byte [r14 + 5]
cmp al, 0x31
je 0x1401a60d1
lea edx, [rax - 0x32]
cmp dl, 1
ja 0x1401a61db
mov dl, byte [r14 + 6]
cmp dl, 0x20
je 0x1401a616e
cmp dl, 9
jne 0x1401a6275
jmp 0x1401a616e
cmp byte [r14 + 6], 0x2e
jne 0x1401a6154
movsx eax, byte [r14 + 7]
lea edx, [rax - 0x30]
cmp dl, 1
ja 0x1401a6154
mov dl, byte [r14 + 8]
cmp dl, 0x20
je 0x1401a60f3
cmp dl, 9
jne 0x1401a6154
movsx ecx, byte [r14 + 9]
lea edx, [rcx - 0x30]
cmp dl, 9
ja 0x1401a6154
movsx edx, byte [r14 + 0xa]
lea r8d, [rdx - 0x30]
cmp r8b, 9
ja 0x1401a6154
movsx r8d, byte [r14 + 0xb]
lea r9d, [r8 - 0x30]
cmp r9b, 9
ja 0x1401a6154
sub ecx, 0x30
sub edx, 0x30
imul edx, edx, 0xa
imul ecx, ecx, 0x64
add ecx, edx
lea edx, [rcx + r8 - 0x30]
mov dword [rbx + 0x140], edx
mov dl, byte [r14 + 0xc]
cmp dl, 0xd
jg 0x1401a614b
cmp dl, 8
jg 0x1401a61e7
jmp 0x1401a6154
cmp dl, 0x20
je 0x1401a61e7
lea rdx, str.Unsupported_HTTP_1_subversion_in_response
mov rcx, rbx
call sym.Curl_failf
mov r12d, 1
jmp 0x1401a6587
movsx ecx, byte [r14 + 7]
lea edx, [rcx - 0x30]
cmp dl, 9
ja 0x1401a6275
movsx edx, byte [r14 + 8]
lea r8d, [rdx - 0x30]
cmp r8b, 9
ja 0x1401a6275
movsx r8d, byte [r14 + 9]
lea r9d, [r8 - 0x30]
cmp r9b, 9
ja 0x1401a6275
sub ecx, 0x30
sub edx, 0x30
imul edx, edx, 0xa
imul ecx, ecx, 0x64
add ecx, edx
lea edx, [rcx + r8 - 0x30]
mov dword [rbx + 0x140], edx
mov dl, byte [r14 + 0xa]
lea ecx, [rdx - 9]
cmp cl, 4
jbe 0x1401a61d3
cmp dl, 0x20
jne 0x1401a6275
sub eax, 0x30
imul eax, eax, 0xa
jmp 0x1401a61ea
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x1401a615b
sub eax, 0x26
cmp dword [rbx + 0x140], 0x63
jg 0x1401a61ff
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x1401a615b
cmp eax, 0xb
jle 0x1401a6209
cmp eax, 0x14
jne 0x1401a621f
mov byte [rsi + 0x4cc], al
cmp dword [rbx + 0x15c], 3
jne 0x1401a6266
cmp eax, 0x14
je 0x1401a6266
jmp 0x1401a623c
xor r9d, r9d
mov r8d, 3
lea rdx, str.Unsupported_HTTP_version___u._d__in_response
mov rcx, rbx
call sym.Curl_failf
jmp 0x1401a6163
test byte [rbx + 0xa0e], 0x20
jne 0x1401a6257
mov rax, qword [rsi + 0x490]
mov dword [rax], 0xffffffff
jmp 0x1401a639f
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rbx
call sym.Curl_infof
cmp byte [rsi + 0x4cc], 0x13
ja 0x1401a639f
jmp 0x1401a6245
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x48], rax
call sym.Curl_dyn_ptr
mov rcx, qword [rbx + 0x6a8]
mov r8, qword [rsp + 0x48]
mov rdx, rax
call sym.checkhttpprefix.isra.0
dec eax
jne 0x1401a63bd
mov dword [rbx + 0x140], 0xc8
mov byte [rsi + 0x4cc], 0xa
jmp 0x1401a639f
bt eax, 0x12
jae 0x1401a63bd
mov r14, r13
mov al, byte [r14]
test al, al
je 0x1401a62e1
cmp al, 0x20
jne 0x1401a62dd
inc r14
jmp 0x1401a62cd
cmp al, 9
je 0x1401a62d8
mov r8d, 5
lea rdx, str.RTSP_
mov rcx, r14
call sym.strncmp
test eax, eax
jne 0x1401a63bd
mov al, byte [r14 + 5]
sub eax, 0x30
cmp al, 9
ja 0x1401a5ba8
cmp byte [r14 + 6], 0x2e
jne 0x1401a5ba8
mov al, byte [r14 + 7]
sub eax, 0x30
cmp al, 9
ja 0x1401a5ba8
mov al, byte [r14 + 8]
cmp al, 0x20
je 0x1401a6337
cmp al, 9
jne 0x1401a5ba8
movsx eax, byte [r14 + 9]
lea edx, [rax - 0x30]
cmp dl, 9
ja 0x1401a5ba8
movsx ecx, byte [r14 + 0xa]
lea edx, [rcx - 0x30]
cmp dl, 9
ja 0x1401a5ba8
movsx edx, byte [r14 + 0xb]
lea r8d, [rdx - 0x30]
cmp r8b, 9
ja 0x1401a5ba8
sub eax, 0x30
sub ecx, 0x30
imul eax, eax, 0x64
imul ecx, ecx, 0xa
add eax, ecx
lea eax, [rax + rdx - 0x30]
mov dword [rbx + 0x140], eax
mov al, byte [r14 + 0xc]
lea edx, [rax - 9]
cmp dl, 4
jbe 0x1401a6398
cmp al, 0x20
jne 0x1401a5ba8
mov byte [rsi + 0x4cc], 0xb
mov rdx, rsi
mov rcx, rbx
call sym.Curl_http_statusline
mov r12d, eax
test eax, eax
jne 0x1401a6587
mov r15d, 0xc
jmp 0x1401a63cf
and byte [rbx + 0x1bc], 0xfe
jmp 0x1401a5ffb
mov r15d, 4
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_ptr
mov rcx, qword [rsp + 0x38]
mov r14, rax
call sym.Curl_dyn_len
xor edx, edx
mov rcx, r14
mov r8, rax
mov qword [rsp + 0x48], rax
call sym.memchr
mov r8, qword [rsp + 0x48]
test rax, rax
je 0x1401a640e
lea rdx, str.Nul_byte_in_header
jmp 0x1401a5ba0
mov eax, dword [rbx + 0x134]
cmp eax, 1
jle 0x1401a644f
mov cl, byte [r14]
cmp cl, 0x20
sete dl
cmp cl, 9
sete cl
or dl, cl
je 0x1401a6431
cmp eax, 2
jne 0x1401a644f
mov edx, 0x3a
mov rcx, r14
call sym.memchr
test rax, rax
jne 0x1401a644f
lea rdx, str.Header_without_colon
jmp 0x1401a5ba0
mov r8, r13
mov rdx, rsi
mov rcx, rbx
call sym.Curl_http_header
mov r12d, eax
test eax, eax
jne 0x1401a6587
mov eax, dword [rbx + 0x140]
sub eax, 0x64
cmp eax, 0x63
ja 0x1401a647a
or r15d, 0x20
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov r8, r13
mov edx, 1
mov rcx, rbx
mov r9, rax
call sym.Curl_debug
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
mov r8, r13
mov edx, r15d
mov rcx, rbx
mov r9, rax
call sym.Curl_client_write
mov r12d, eax
test eax, eax
jne 0x1401a6587
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_len
xor r8d, r8d
mov rcx, rbx
mov rdx, rax
call sym.Curl_bump_headersize
mov r12d, eax
test eax, eax
jne 0x1401a6587
mov rcx, qword [rsp + 0x38]
call sym.Curl_dyn_reset
test rdi, rdi
jne 0x1401a5975
jmp 0x1401a5ffb
test byte [rbx + 0x1bc], 1
jne 0x1401a6511
test al, al
jne 0x1401a6511
lea rcx, [rbx + 0xbe8]
call sym.Curl_dyn_free
test byte [rbx + 0x1bc], 1
jne 0x1401a594b
mov rdx, qword [rbx + 0x20]
mov r8, qword [rsp + 0xc0]
mov rcx, rbx
lea rsi, [rbx + 0xbe8]
call sym.Curl_http_firstwrite
test byte [rbx + 0x1bd], 0x10
mov r12d, eax
jne 0x1401a657f
mov rcx, rsi
call sym.Curl_dyn_len
test rax, rax
je 0x1401a657f
mov rcx, rsi
call sym.Curl_dyn_len
mov rcx, rsi
mov qword [rsp + 0x38], rax
call sym.Curl_dyn_ptr
mov r9, qword [rsp + 0x38]
mov edx, 1
mov rcx, rbx
mov r8, rax
call sym.Curl_client_write
mov r12d, eax
mov rcx, rsi
call sym.Curl_dyn_free
mov eax, r12d
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret