Function at 0x1400c21f0
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [r8]
mov rsi, rcx
mov rcx, qword [rcx + 0x148]
mov r14, rdx
mov qword [rbp - 0x18], rax
mov rbx, rcx
mov qword [rbp - 0x10], rcx
mov r12, rcx
lea r13, [rsi + 0xcb8]
mov r15, rax
mov rdi, rax
mov r8, rax
mov edx, 0xa
mov qword [rbp + 0x40], r12
call fcn.140101210
mov rcx, rax
mov rdx, r12
test rax, rax
je 0x1400c2b70
mov rdi, qword [rbp + 0x50]
lea r8, [rcx + 1]
sub rbx, rax
mov rcx, r13
lea rax, [r15 - 1]
add rax, rbx
mov qword [rdi], rax
mov qword [rsi + 0x148], r8
sub r8, r12
call fcn.1400a8628
xor r15d, r15d
test eax, eax
jne 0x1400c22f2
cmp dword [rsi + 0x144], r15d
jne 0x1400c230a
mov rcx, r13
call fcn.1400a866c
mov rcx, r13
mov rbx, rax
call fcn.1400a8674
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c332c
lea ebx, [r15 + 2]
cmp eax, ebx
jne 0x1400c230f
mov edx, ebx
mov rcx, r14
call fcn.1400b3fb0
cmp byte [rsi + 0xaf1], r15b
je 0x1400c2be4
mov byte [rsi + 0x1c1], r15b
cmp qword [rdi], r15
je 0x1400c2a2d
mov dword [rsi + 0x140], 1
xor eax, eax
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ebx, 2
mov rcx, r13
call fcn.1400a8674
mov r12, rax
cmp byte [rax], 0xa
je 0x1400c2632
cmp byte [rax], 0xd
je 0x1400c2632
mov edx, dword [rsi + 0x144]
mov r15d, ebx
lea ecx, [rdx + 1]
mov dword [rsi + 0x144], ecx
test edx, edx
jne 0x1400c253b
mov rax, qword [r14 + 0x3e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1400c24d3
lea rax, [rbp + 0x40]
xor r15d, r15d
mov qword [rsp + 0x30], rax
lea rdi, [rsi + 0x158]
lea rax, [rbp - 0x30]
mov qword [rsp + 0x28], rdi
lea r9, [rbp - 0x2c]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x28]
mov dword [rbp - 0x2c], r15d
lea rdx, str._HTTP__1d._1d_c_3d_c
mov byte [rbp + 0x40], r15b
mov rcx, r12
call fcn.1400a7498
mov ebx, eax
cmp eax, 1
jne 0x1400c23d4
cmp dword [rbp - 0x28], 2
jl 0x1400c23d4
mov r9, rdi
lea r8, [rbp - 0x24]
lea rdx, str._HTTP__1_23___d
mov rcx, r12
call fcn.1400a7498
cmp eax, 2
jne 0x1400c23d4
mov byte [r14 + 0x813], r15b
lea ebx, [rax + 2]
mov byte [rbp - 0x30], 0x20
jmp 0x1400c23f9
mov al, byte [rbp + 0x40]
sub al, 0x30
cmp al, 9
jbe 0x1400c2a87
cmp ebx, 4
jl 0x1400c2465
cmp dword [rdi], 0x64
jl 0x1400c2a87
cmp byte [rbp - 0x30], 0x20
jne 0x1400c2a7b
mov eax, dword [rbp - 0x28]
lea ecx, [rax + rax*4]
mov eax, dword [rbp - 0x2c]
lea r9d, [rax + rcx*2]
mov ecx, r9d
mov dword [rbp - 0x2c], r9d
sub ecx, 0xa
je 0x1400c241b
cmp ecx, 1
jne 0x1400c2a4a
mov byte [r14 + 0x813], r9b
cmp dword [rsi + 0x174], 3
jne 0x1400c2440
cmp r9b, 0x14
je 0x1400c2440
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rsi
call fcn.1400b2f60
cmp byte [r14 + 0x813], 0x14
jae 0x1400c24c9
mov rax, qword [r14 + 0x7d0]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rsi
or dword [rax], 0xffffffff
call fcn.1400b2f60
jmp 0x1400c24c9
test ebx, ebx
jne 0x1400c2a7b
mov r8, rdi
lea rdx, str._HTTP__3d
mov rcx, r12
call fcn.1400a7498
mov byte [r14 + 0x813], 0xa
test eax, eax
jne 0x1400c2524
mov rcx, r13
call fcn.1400a866c
mov rcx, r13
mov rbx, rax
call fcn.1400a8674
mov rdx, rax
mov r8, rbx
mov rcx, rsi
call fcn.1400c3234
cmp eax, 1
jne 0x1400c2a96
mov dword [rdi], 0xc8
mov ebx, eax
mov byte [r14 + 0x813], 0xa
test ebx, ebx
je 0x1400c2a96
jmp 0x1400c2524
bt ecx, 0x12
jae 0x1400c2a93
lea rax, [rsi + 0x158]
mov rcx, r12
mov qword [rsp + 0x28], rax
lea r9, [rbp - 0x20]
lea rax, [rbp - 0x2f]
lea r8, [rbp - 0x1c]
mov qword [rsp + 0x20], rax
lea rdx, str._RTSP__1d._1d_c_3d
call fcn.1400a7498
cmp eax, 4
jne 0x1400c2a93
cmp byte [rbp - 0x2f], 0x20
jne 0x1400c2a93
mov byte [r14 + 0x813], 0xb
mov rdx, r14
mov rcx, rsi
call fcn.1400c2dd4
test eax, eax
jne 0x1400c22f2
lea r15d, [rax + 6]
mov rcx, r13
call fcn.1400a8674
mov rcx, r13
mov rbx, rax
call fcn.1400a866c
mov r8, rax
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.140101210
test rax, rax
jne 0x1400c2aab
mov ecx, dword [rsi + 0x144]
cmp ecx, 2
jl 0x1400c259a
cmp byte [rbx], 0x20
je 0x1400c257c
cmp byte [rbx], 9
jne 0x1400c2581
cmp ecx, 2
jg 0x1400c259a
mov r8, rdi
mov edx, 0x3a
mov rcx, rbx
call fcn.140101210
test rax, rax
je 0x1400c2aa2
mov r8, r12
mov rdx, r14
mov rcx, rsi
call fcn.1400c119c
xor ecx, ecx
test eax, eax
jne 0x1400c22f2
mov ebx, dword [rsi + 0x158]
mov edi, r15d
or edi, 1
cmp byte [rsi + 0xad1], cl
mov rcx, r13
cmove edi, r15d
call fcn.1400a866c
mov r9, rax
mov r8, r12
mov edx, 1
mov rcx, rsi
call fcn.1400b2db0
mov rcx, r13
call fcn.1400a866c
mov edx, edi
mov r9, rax
or edx, 0x10
lea eax, [rbx - 0x64]
cmp eax, 0x64
mov r8, r12
mov rcx, rsi
cmovae edx, edi
call fcn.1400b2da8
test eax, eax
jne 0x1400c22f2
mov rcx, r13
call fcn.1400a866c
add qword [rsi + 0x1388], rax
mov rcx, r13
call fcn.1400a866c
add qword [rsi + 0x108], rax
jmp 0x1400c29fc
mov ecx, dword [rsi + 0x158]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1400c26b2
sub ecx, 0x64
je 0x1400c2675
cmp ecx, 1
je 0x1400c265d
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
jmp 0x1400c26a6
cmp dword [rsi + 0x174], ebx
je 0x1400c2ac4
lea rdi, [rsi + 0x1c1]
mov byte [rdi], r15b
jmp 0x1400c26a6
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
cmp dword [rsi + 0x170], r15d
jle 0x1400c26a6
or dword [rsi + 0x15c], ebx
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x170], r15d
call fcn.1400a12cc
mov rbx, rdi
lea r12, [rsi + 0xe8]
jmp 0x1400c2721
lea rdi, [rsi + 0x1c1]
lea r12, [rsi + 0xe8]
mov byte [rdi], r15b
cmp qword [r12], 0xffffffffffffffff
mov rbx, rdi
jne 0x1400c2726
cmp byte [rsi + 0x1c6], r15b
jne 0x1400c2726
cmp byte [r14 + 0x3aa], r15b
jne 0x1400c2726
cmp byte [r14 + 0x813], 0xb
jne 0x1400c2726
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
jne 0x1400c2726
cmp byte [rsi + 0x11e8], 5
je 0x1400c2726
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rsi
call fcn.1400b2f60
mov edx, 2
mov rcx, r14
call fcn.1400b3fb0
cmp byte [rbx], r15b
jne 0x1400c2736
mov rcx, rsi
call fcn.1400c2d58
test eax, eax
jne 0x1400c22f2
mov al, byte [r14 + 0x3aa]
mov ebx, 0x191
test al, al
je 0x1400c27cd
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c275e
cmp dword [r14 + 0x4b0], 2
je 0x1400c276f
cmp eax, 0x197
jne 0x1400c2790
cmp dword [r14 + 0x4b4], 2
jne 0x1400c2790
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b2f60
mov byte [rsi + 0x130d], 1
mov al, byte [r14 + 0x3aa]
test al, al
je 0x1400c27cd
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c27a6
cmp dword [r14 + 0x5a8], 1
je 0x1400c27b7
jmp 0x1400c27cd
cmp eax, 0x197
jne 0x1400c27cd
cmp dword [r14 + 0x5ac], 1
jne 0x1400c27cd
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b2f60
mov byte [rsi + 0x130d], 1
cmp dword [r14 + 0x5a8], 3
jne 0x1400c27ea
cmp dword [rsi + 0x158], ebx
je 0x1400c27ea
mov dword [r14 + 0x5a8], 4
cmp dword [r14 + 0x5ac], 3
jne 0x1400c280b
cmp dword [rsi + 0x158], 0x197
je 0x1400c280b
mov dword [r14 + 0x5ac], 4
mov eax, dword [rsi + 0x158]
sub eax, 0x64
cmp eax, 0x64
mov al, byte [rsi + 0xad1]
sbb ebx, ebx
and ebx, 0x10
neg al
sbb ecx, ecx
neg ecx
add ecx, 2
or ebx, ecx
mov rcx, r13
call fcn.1400a866c
mov rcx, r13
mov r15, rax
call fcn.1400a8674
mov r8, rax
mov r9, r15
mov edx, ebx
mov rcx, rsi
call fcn.1400b2da8
xor ebx, ebx
test eax, eax
jne 0x1400c22f2
mov r9, qword [rsi + 0x108]
movsxd rcx, r15d
add qword [rsi + 0x1388], rcx
add r9, rcx
mov qword [rsi + 0x108], r9
mov rcx, rsi
mov r8d, dword [rsi + 0x158]
call fcn.1400c382c
test al, al
jne 0x1400c2b5a
lea eax, [r8 - 0x64]
cmp eax, 0x63
cmova r9, rbx
mov qword [rsi + 0x110], r9
call fcn.1400c0204
test eax, eax
jne 0x1400c22f2
cmp dword [rsi + 0x158], 0x12c
jl 0x1400c29f4
cmp byte [r14 + 0x3b4], bl
jne 0x1400c29d5
cmp byte [r14 + 0x3aa], bl
jne 0x1400c29d5
cmp byte [r14 + 0x3b5], bl
jne 0x1400c29de
movzx ecx, byte [rsi + 0x11e8]
sub ecx, 1
je 0x1400c2901
sub ecx, 1
je 0x1400c2901
sub ecx, 1
je 0x1400c2901
cmp ecx, 1
jne 0x1400c29d5
xor edx, edx
mov rcx, rsi
call fcn.1400a12cc
cmp byte [rsi + 0x1c3], bl
jne 0x1400c29d5
cmp dword [rsi + 0x158], 0x1a1
jne 0x1400c2962
cmp byte [rsi + 0x130f], bl
je 0x1400c2962
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rsi
call fcn.1400b2f60
mov rcx, qword [rsi + 0x11f0]
mov byte [rsi + 0x1310], 1
call qword [fcn.14014a3b8]
mov rdx, r12
mov rcx, rsi
mov qword [rsi + 0x198], rax
call fcn.1400b985c
jmp 0x1400c29d5
mov rcx, rsi
cmp byte [rsi + 0xacd], bl
je 0x1400c2990
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1400b2f60
cmp dword [rsi + 0x170], ebx
jle 0x1400c29d5
or dword [rsi + 0x15c], 2
mov dword [rsi + 0x170], ebx
jmp 0x1400c29d5
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1400b2f60
mov edx, 2
mov rcx, r14
call fcn.1400b3fb0
mov rdx, r12
mov rcx, rsi
call fcn.1400b985c
test eax, eax
jne 0x1400c22f2
mov byte [rsi + 0x1c3], 1
cmp byte [rsi + 0x130f], bl
je 0x1400c29d5
mov dword [rsi + 0x170], 3
cmp byte [r14 + 0x3b5], bl
je 0x1400c29f4
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rsi
call fcn.1400b2f60
or dword [rsi + 0x15c], 2
cmp byte [rdi], bl
je 0x1400c2af0
mov rcx, r13
call fcn.1400a8678
mov rbx, qword [rsi + 0x148]
xor eax, eax
cmp byte [rbx], al
je 0x1400c22f0
mov r15, qword [rbp + 0x50]
mov r12, rbx
mov rcx, rbx
mov r15, qword [r15]
mov rdi, r15
mov r8, r15
jmp 0x1400c223f
mov rax, qword [rbp - 0x18]
mov dword [rsi + 0x140], ebx
mov qword [rdi], rax
mov rax, qword [rbp - 0x10]
mov qword [rsi + 0x148], rax
jmp 0x1400c22f0
mov eax, 0x66666667
imul r9d
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov r8d, edx
lea ecx, [rdx + rdx*4]
add ecx, ecx
lea rdx, str.Unsupported_HTTP_version___u._d__in_response
sub r9d, ecx
mov rcx, rsi
call fcn.1400b2e8c
jmp 0x1400c2bf3
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x1400c2beb
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x1400c2beb
xor r15d, r15d
mov byte [rsi + 0x1c1], r15b
jmp 0x1400c22f0
lea rdx, str.Header_without_colon
jmp 0x1400c2ab2
lea rdx, str.Nul_byte_in_header
mov rcx, rsi
call fcn.1400b2e8c
mov eax, 8
jmp 0x1400c22f2
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rsi
call fcn.1400b2f60
mov dword [rsi + 0x174], 3
mov byte [rsi + 0x1c1], 1
mov dword [rsi + 0x144], r15d
jmp 0x1400c2bf3
cmp byte [rsi + 0xad4], bl
jne 0x1400c2b1b
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
je 0x1400c2b24
cmp dword [rsi + 0xa20], 2
jne 0x1400c2b24
cmp qword [r12], 0xffffffffffffffff
jg 0x1400c2b24
mov rax, qword [rbp + 0x58]
mov byte [rax], 1
jmp 0x1400c2b28
mov rax, qword [rbp + 0x58]
cmp qword [rsi + 0xf0], rbx
jne 0x1400c2b36
mov byte [rax], 1
jmp 0x1400c2b3a
cmp byte [rax], bl
je 0x1400c2b41
and dword [rsi + 0x15c], 0xfffffffe
mov r8, qword [rbp + 0x40]
mov r9, r15
mov edx, 1
mov rcx, rsi
call fcn.1400b2db0
jmp 0x1400c22f0
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1400b2e8c
mov eax, 0x16
jmp 0x1400c22f2
mov r8, rdi
mov rcx, r13
call fcn.1400a8628
xor edi, edi
test eax, eax
jne 0x1400c22f2
cmp dword [rsi + 0x144], edi
jne 0x1400c22f0
mov rcx, r13
call fcn.1400a866c
mov rcx, r13
mov rbx, rax
call fcn.1400a8674
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c332c
lea ecx, [rdi + 2]
cmp eax, ecx
jne 0x1400c22f0
mov dword [rsi + 0x140], ecx
mov edx, ecx
mov rcx, r14
mov byte [rsi + 0x1c1], dil
call fcn.1400b3fb0
cmp byte [rsi + 0xaf1], dil
jne 0x1400c22f0
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rsi
call fcn.1400b2e8c
mov eax, 1
jmp 0x1400c22f2