Function at 0x1400c1fd8
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.140101000
mov rcx, rax
mov rdx, r12
test rax, rax
je 0x1400c2958
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.1400a8410
xor r15d, r15d
test eax, eax
jne 0x1400c20da
cmp dword [rsi + 0x144], r15d
jne 0x1400c20f2
mov rcx, r13
call fcn.1400a8454
mov rcx, r13
mov rbx, rax
call fcn.1400a845c
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c3114
lea ebx, [r15 + 2]
cmp eax, ebx
jne 0x1400c20f7
mov edx, ebx
mov rcx, r14
call fcn.1400b3d98
cmp byte [rsi + 0xaf1], r15b
je 0x1400c29cc
mov byte [rsi + 0x1c1], r15b
cmp qword [rdi], r15
je 0x1400c2815
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.1400a845c
mov r12, rax
cmp byte [rax], 0xa
je 0x1400c241a
cmp byte [rax], 0xd
je 0x1400c241a
mov edx, dword [rsi + 0x144]
mov r15d, ebx
lea ecx, [rdx + 1]
mov dword [rsi + 0x144], ecx
test edx, edx
jne 0x1400c2323
mov rax, qword [r14 + 0x3e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1400c22bb
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.1400a7280
mov ebx, eax
cmp eax, 1
jne 0x1400c21bc
cmp dword [rbp - 0x28], 2
jl 0x1400c21bc
mov r9, rdi
lea r8, [rbp - 0x24]
lea rdx, str._HTTP__1_23___d
mov rcx, r12
call fcn.1400a7280
cmp eax, 2
jne 0x1400c21bc
mov byte [r14 + 0x813], r15b
lea ebx, [rax + 2]
mov byte [rbp - 0x30], 0x20
jmp 0x1400c21e1
mov al, byte [rbp + 0x40]
sub al, 0x30
cmp al, 9
jbe 0x1400c286f
cmp ebx, 4
jl 0x1400c224d
cmp dword [rdi], 0x64
jl 0x1400c286f
cmp byte [rbp - 0x30], 0x20
jne 0x1400c2863
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 0x1400c2203
cmp ecx, 1
jne 0x1400c2832
mov byte [r14 + 0x813], r9b
cmp dword [rsi + 0x174], 3
jne 0x1400c2228
cmp r9b, 0x14
je 0x1400c2228
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rsi
call fcn.1400b2d48
cmp byte [r14 + 0x813], 0x14
jae 0x1400c22b1
mov rax, qword [r14 + 0x7d0]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rsi
or dword [rax], 0xffffffff
call fcn.1400b2d48
jmp 0x1400c22b1
test ebx, ebx
jne 0x1400c2863
mov r8, rdi
lea rdx, str._HTTP__3d
mov rcx, r12
call fcn.1400a7280
mov byte [r14 + 0x813], 0xa
test eax, eax
jne 0x1400c230c
mov rcx, r13
call fcn.1400a8454
mov rcx, r13
mov rbx, rax
call fcn.1400a845c
mov rdx, rax
mov r8, rbx
mov rcx, rsi
call fcn.1400c301c
cmp eax, 1
jne 0x1400c287e
mov dword [rdi], 0xc8
mov ebx, eax
mov byte [r14 + 0x813], 0xa
test ebx, ebx
je 0x1400c287e
jmp 0x1400c230c
bt ecx, 0x12
jae 0x1400c287b
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.1400a7280
cmp eax, 4
jne 0x1400c287b
cmp byte [rbp - 0x2f], 0x20
jne 0x1400c287b
mov byte [r14 + 0x813], 0xb
mov rdx, r14
mov rcx, rsi
call fcn.1400c2bbc
test eax, eax
jne 0x1400c20da
lea r15d, [rax + 6]
mov rcx, r13
call fcn.1400a845c
mov rcx, r13
mov rbx, rax
call fcn.1400a8454
mov r8, rax
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.140101000
test rax, rax
jne 0x1400c2893
mov ecx, dword [rsi + 0x144]
cmp ecx, 2
jl 0x1400c2382
cmp byte [rbx], 0x20
je 0x1400c2364
cmp byte [rbx], 9
jne 0x1400c2369
cmp ecx, 2
jg 0x1400c2382
mov r8, rdi
mov edx, 0x3a
mov rcx, rbx
call fcn.140101000
test rax, rax
je 0x1400c288a
mov r8, r12
mov rdx, r14
mov rcx, rsi
call fcn.1400c0f84
xor ecx, ecx
test eax, eax
jne 0x1400c20da
mov ebx, dword [rsi + 0x158]
mov edi, r15d
or edi, 1
cmp byte [rsi + 0xad1], cl
mov rcx, r13
cmove edi, r15d
call fcn.1400a8454
mov r9, rax
mov r8, r12
mov edx, 1
mov rcx, rsi
call fcn.1400b2b98
mov rcx, r13
call fcn.1400a8454
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.1400b2b90
test eax, eax
jne 0x1400c20da
mov rcx, r13
call fcn.1400a8454
add qword [rsi + 0x1388], rax
mov rcx, r13
call fcn.1400a8454
add qword [rsi + 0x108], rax
jmp 0x1400c27e4
mov ecx, dword [rsi + 0x158]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1400c249a
sub ecx, 0x64
je 0x1400c245d
cmp ecx, 1
je 0x1400c2445
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
jmp 0x1400c248e
cmp dword [rsi + 0x174], ebx
je 0x1400c28ac
lea rdi, [rsi + 0x1c1]
mov byte [rdi], r15b
jmp 0x1400c248e
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
cmp dword [rsi + 0x170], r15d
jle 0x1400c248e
or dword [rsi + 0x15c], ebx
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x170], r15d
call fcn.1400a10b4
mov rbx, rdi
lea r12, [rsi + 0xe8]
jmp 0x1400c2509
lea rdi, [rsi + 0x1c1]
lea r12, [rsi + 0xe8]
mov byte [rdi], r15b
cmp qword [r12], 0xffffffffffffffff
mov rbx, rdi
jne 0x1400c250e
cmp byte [rsi + 0x1c6], r15b
jne 0x1400c250e
cmp byte [r14 + 0x3aa], r15b
jne 0x1400c250e
cmp byte [r14 + 0x813], 0xb
jne 0x1400c250e
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
jne 0x1400c250e
cmp byte [rsi + 0x11e8], 5
je 0x1400c250e
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rsi
call fcn.1400b2d48
mov edx, 2
mov rcx, r14
call fcn.1400b3d98
cmp byte [rbx], r15b
jne 0x1400c251e
mov rcx, rsi
call fcn.1400c2b40
test eax, eax
jne 0x1400c20da
mov al, byte [r14 + 0x3aa]
mov ebx, 0x191
test al, al
je 0x1400c25b5
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c2546
cmp dword [r14 + 0x4b0], 2
je 0x1400c2557
cmp eax, 0x197
jne 0x1400c2578
cmp dword [r14 + 0x4b4], 2
jne 0x1400c2578
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b2d48
mov byte [rsi + 0x130d], 1
mov al, byte [r14 + 0x3aa]
test al, al
je 0x1400c25b5
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c258e
cmp dword [r14 + 0x5a8], 1
je 0x1400c259f
jmp 0x1400c25b5
cmp eax, 0x197
jne 0x1400c25b5
cmp dword [r14 + 0x5ac], 1
jne 0x1400c25b5
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b2d48
mov byte [rsi + 0x130d], 1
cmp dword [r14 + 0x5a8], 3
jne 0x1400c25d2
cmp dword [rsi + 0x158], ebx
je 0x1400c25d2
mov dword [r14 + 0x5a8], 4
cmp dword [r14 + 0x5ac], 3
jne 0x1400c25f3
cmp dword [rsi + 0x158], 0x197
je 0x1400c25f3
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.1400a8454
mov rcx, r13
mov r15, rax
call fcn.1400a845c
mov r8, rax
mov r9, r15
mov edx, ebx
mov rcx, rsi
call fcn.1400b2b90
xor ebx, ebx
test eax, eax
jne 0x1400c20da
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.1400c3614
test al, al
jne 0x1400c2942
lea eax, [r8 - 0x64]
cmp eax, 0x63
cmova r9, rbx
mov qword [rsi + 0x110], r9
call fcn.1400bffec
test eax, eax
jne 0x1400c20da
cmp dword [rsi + 0x158], 0x12c
jl 0x1400c27dc
cmp byte [r14 + 0x3b4], bl
jne 0x1400c27bd
cmp byte [r14 + 0x3aa], bl
jne 0x1400c27bd
cmp byte [r14 + 0x3b5], bl
jne 0x1400c27c6
movzx ecx, byte [rsi + 0x11e8]
sub ecx, 1
je 0x1400c26e9
sub ecx, 1
je 0x1400c26e9
sub ecx, 1
je 0x1400c26e9
cmp ecx, 1
jne 0x1400c27bd
xor edx, edx
mov rcx, rsi
call fcn.1400a10b4
cmp byte [rsi + 0x1c3], bl
jne 0x1400c27bd
cmp dword [rsi + 0x158], 0x1a1
jne 0x1400c274a
cmp byte [rsi + 0x130f], bl
je 0x1400c274a
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rsi
call fcn.1400b2d48
mov rcx, qword [rsi + 0x11f0]
mov byte [rsi + 0x1310], 1
call qword [fcn.14014a1a8]
mov rdx, r12
mov rcx, rsi
mov qword [rsi + 0x198], rax
call fcn.1400b9644
jmp 0x1400c27bd
mov rcx, rsi
cmp byte [rsi + 0xacd], bl
je 0x1400c2778
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1400b2d48
cmp dword [rsi + 0x170], ebx
jle 0x1400c27bd
or dword [rsi + 0x15c], 2
mov dword [rsi + 0x170], ebx
jmp 0x1400c27bd
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1400b2d48
mov edx, 2
mov rcx, r14
call fcn.1400b3d98
mov rdx, r12
mov rcx, rsi
call fcn.1400b9644
test eax, eax
jne 0x1400c20da
mov byte [rsi + 0x1c3], 1
cmp byte [rsi + 0x130f], bl
je 0x1400c27bd
mov dword [rsi + 0x170], 3
cmp byte [r14 + 0x3b5], bl
je 0x1400c27dc
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rsi
call fcn.1400b2d48
or dword [rsi + 0x15c], 2
cmp byte [rdi], bl
je 0x1400c28d8
mov rcx, r13
call fcn.1400a8460
mov rbx, qword [rsi + 0x148]
xor eax, eax
cmp byte [rbx], al
je 0x1400c20d8
mov r15, qword [rbp + 0x50]
mov r12, rbx
mov rcx, rbx
mov r15, qword [r15]
mov rdi, r15
mov r8, r15
jmp 0x1400c2027
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 0x1400c20d8
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.1400b2c74
jmp 0x1400c29db
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x1400c29d3
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x1400c29d3
xor r15d, r15d
mov byte [rsi + 0x1c1], r15b
jmp 0x1400c20d8
lea rdx, str.Header_without_colon
jmp 0x1400c289a
lea rdx, str.Nul_byte_in_header
mov rcx, rsi
call fcn.1400b2c74
mov eax, 8
jmp 0x1400c20da
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rsi
call fcn.1400b2d48
mov dword [rsi + 0x174], 3
mov byte [rsi + 0x1c1], 1
mov dword [rsi + 0x144], r15d
jmp 0x1400c29db
cmp byte [rsi + 0xad4], bl
jne 0x1400c2903
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
je 0x1400c290c
cmp dword [rsi + 0xa20], 2
jne 0x1400c290c
cmp qword [r12], 0xffffffffffffffff
jg 0x1400c290c
mov rax, qword [rbp + 0x58]
mov byte [rax], 1
jmp 0x1400c2910
mov rax, qword [rbp + 0x58]
cmp qword [rsi + 0xf0], rbx
jne 0x1400c291e
mov byte [rax], 1
jmp 0x1400c2922
cmp byte [rax], bl
je 0x1400c2929
and dword [rsi + 0x15c], 0xfffffffe
mov r8, qword [rbp + 0x40]
mov r9, r15
mov edx, 1
mov rcx, rsi
call fcn.1400b2b98
jmp 0x1400c20d8
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1400b2c74
mov eax, 0x16
jmp 0x1400c20da
mov r8, rdi
mov rcx, r13
call fcn.1400a8410
xor edi, edi
test eax, eax
jne 0x1400c20da
cmp dword [rsi + 0x144], edi
jne 0x1400c20d8
mov rcx, r13
call fcn.1400a8454
mov rcx, r13
mov rbx, rax
call fcn.1400a845c
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c3114
lea ecx, [rdi + 2]
cmp eax, ecx
jne 0x1400c20d8
mov dword [rsi + 0x140], ecx
mov edx, ecx
mov rcx, r14
mov byte [rsi + 0x1c1], dil
call fcn.1400b3d98
cmp byte [rsi + 0xaf1], dil
jne 0x1400c20d8
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rsi
call fcn.1400b2c74
mov eax, 1
jmp 0x1400c20da