Function at 0x1400c14d4
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.140100500
mov rcx, rax
mov rdx, r12
test rax, rax
je 0x1400c1e54
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.1400a790c
xor r15d, r15d
test eax, eax
jne 0x1400c15d6
cmp dword [rsi + 0x144], r15d
jne 0x1400c15ee
mov rcx, r13
call fcn.1400a7950
mov rcx, r13
mov rbx, rax
call fcn.1400a7958
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c2610
lea ebx, [r15 + 2]
cmp eax, ebx
jne 0x1400c15f3
mov edx, ebx
mov rcx, r14
call fcn.1400b3294
cmp byte [rsi + 0xaf1], r15b
je 0x1400c1ec8
mov byte [rsi + 0x1c1], r15b
cmp qword [rdi], r15
je 0x1400c1d11
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.1400a7958
mov r12, rax
cmp byte [rax], 0xa
je 0x1400c1916
cmp byte [rax], 0xd
je 0x1400c1916
mov edx, dword [rsi + 0x144]
mov r15d, ebx
lea ecx, [rdx + 1]
mov dword [rsi + 0x144], ecx
test edx, edx
jne 0x1400c181f
mov rax, qword [r14 + 0x3e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1400c17b7
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.1400a677c
mov ebx, eax
cmp eax, 1
jne 0x1400c16b8
cmp dword [rbp - 0x28], 2
jl 0x1400c16b8
mov r9, rdi
lea r8, [rbp - 0x24]
lea rdx, str._HTTP__1_23___d
mov rcx, r12
call fcn.1400a677c
cmp eax, 2
jne 0x1400c16b8
mov byte [r14 + 0x813], r15b
lea ebx, [rax + 2]
mov byte [rbp - 0x30], 0x20
jmp 0x1400c16dd
mov al, byte [rbp + 0x40]
sub al, 0x30
cmp al, 9
jbe 0x1400c1d6b
cmp ebx, 4
jl 0x1400c1749
cmp dword [rdi], 0x64
jl 0x1400c1d6b
cmp byte [rbp - 0x30], 0x20
jne 0x1400c1d5f
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 0x1400c16ff
cmp ecx, 1
jne 0x1400c1d2e
mov byte [r14 + 0x813], r9b
cmp dword [rsi + 0x174], 3
jne 0x1400c1724
cmp r9b, 0x14
je 0x1400c1724
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rsi
call fcn.1400b2244
cmp byte [r14 + 0x813], 0x14
jae 0x1400c17ad
mov rax, qword [r14 + 0x7d0]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rsi
or dword [rax], 0xffffffff
call fcn.1400b2244
jmp 0x1400c17ad
test ebx, ebx
jne 0x1400c1d5f
mov r8, rdi
lea rdx, str._HTTP__3d
mov rcx, r12
call fcn.1400a677c
mov byte [r14 + 0x813], 0xa
test eax, eax
jne 0x1400c1808
mov rcx, r13
call fcn.1400a7950
mov rcx, r13
mov rbx, rax
call fcn.1400a7958
mov rdx, rax
mov r8, rbx
mov rcx, rsi
call fcn.1400c2518
cmp eax, 1
jne 0x1400c1d7a
mov dword [rdi], 0xc8
mov ebx, eax
mov byte [r14 + 0x813], 0xa
test ebx, ebx
je 0x1400c1d7a
jmp 0x1400c1808
bt ecx, 0x12
jae 0x1400c1d77
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.1400a677c
cmp eax, 4
jne 0x1400c1d77
cmp byte [rbp - 0x2f], 0x20
jne 0x1400c1d77
mov byte [r14 + 0x813], 0xb
mov rdx, r14
mov rcx, rsi
call fcn.1400c20b8
test eax, eax
jne 0x1400c15d6
lea r15d, [rax + 6]
mov rcx, r13
call fcn.1400a7958
mov rcx, r13
mov rbx, rax
call fcn.1400a7950
mov r8, rax
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.140100500
test rax, rax
jne 0x1400c1d8f
mov ecx, dword [rsi + 0x144]
cmp ecx, 2
jl 0x1400c187e
cmp byte [rbx], 0x20
je 0x1400c1860
cmp byte [rbx], 9
jne 0x1400c1865
cmp ecx, 2
jg 0x1400c187e
mov r8, rdi
mov edx, 0x3a
mov rcx, rbx
call fcn.140100500
test rax, rax
je 0x1400c1d86
mov r8, r12
mov rdx, r14
mov rcx, rsi
call fcn.1400c0480
xor ecx, ecx
test eax, eax
jne 0x1400c15d6
mov ebx, dword [rsi + 0x158]
mov edi, r15d
or edi, 1
cmp byte [rsi + 0xad1], cl
mov rcx, r13
cmove edi, r15d
call fcn.1400a7950
mov r9, rax
mov r8, r12
mov edx, 1
mov rcx, rsi
call fcn.1400b2094
mov rcx, r13
call fcn.1400a7950
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.1400b208c
test eax, eax
jne 0x1400c15d6
mov rcx, r13
call fcn.1400a7950
add qword [rsi + 0x1388], rax
mov rcx, r13
call fcn.1400a7950
add qword [rsi + 0x108], rax
jmp 0x1400c1ce0
mov ecx, dword [rsi + 0x158]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1400c1996
sub ecx, 0x64
je 0x1400c1959
cmp ecx, 1
je 0x1400c1941
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
jmp 0x1400c198a
cmp dword [rsi + 0x174], ebx
je 0x1400c1da8
lea rdi, [rsi + 0x1c1]
mov byte [rdi], r15b
jmp 0x1400c198a
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
cmp dword [rsi + 0x170], r15d
jle 0x1400c198a
or dword [rsi + 0x15c], ebx
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x170], r15d
call fcn.1400a05b0
mov rbx, rdi
lea r12, [rsi + 0xe8]
jmp 0x1400c1a05
lea rdi, [rsi + 0x1c1]
lea r12, [rsi + 0xe8]
mov byte [rdi], r15b
cmp qword [r12], 0xffffffffffffffff
mov rbx, rdi
jne 0x1400c1a0a
cmp byte [rsi + 0x1c6], r15b
jne 0x1400c1a0a
cmp byte [r14 + 0x3aa], r15b
jne 0x1400c1a0a
cmp byte [r14 + 0x813], 0xb
jne 0x1400c1a0a
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
jne 0x1400c1a0a
cmp byte [rsi + 0x11e8], 5
je 0x1400c1a0a
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rsi
call fcn.1400b2244
mov edx, 2
mov rcx, r14
call fcn.1400b3294
cmp byte [rbx], r15b
jne 0x1400c1a1a
mov rcx, rsi
call fcn.1400c203c
test eax, eax
jne 0x1400c15d6
mov al, byte [r14 + 0x3aa]
mov ebx, 0x191
test al, al
je 0x1400c1ab1
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c1a42
cmp dword [r14 + 0x4b0], 2
je 0x1400c1a53
cmp eax, 0x197
jne 0x1400c1a74
cmp dword [r14 + 0x4b4], 2
jne 0x1400c1a74
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b2244
mov byte [rsi + 0x130d], 1
mov al, byte [r14 + 0x3aa]
test al, al
je 0x1400c1ab1
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c1a8a
cmp dword [r14 + 0x5a8], 1
je 0x1400c1a9b
jmp 0x1400c1ab1
cmp eax, 0x197
jne 0x1400c1ab1
cmp dword [r14 + 0x5ac], 1
jne 0x1400c1ab1
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b2244
mov byte [rsi + 0x130d], 1
cmp dword [r14 + 0x5a8], 3
jne 0x1400c1ace
cmp dword [rsi + 0x158], ebx
je 0x1400c1ace
mov dword [r14 + 0x5a8], 4
cmp dword [r14 + 0x5ac], 3
jne 0x1400c1aef
cmp dword [rsi + 0x158], 0x197
je 0x1400c1aef
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.1400a7950
mov rcx, r13
mov r15, rax
call fcn.1400a7958
mov r8, rax
mov r9, r15
mov edx, ebx
mov rcx, rsi
call fcn.1400b208c
xor ebx, ebx
test eax, eax
jne 0x1400c15d6
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.1400c2b10
test al, al
jne 0x1400c1e3e
lea eax, [r8 - 0x64]
cmp eax, 0x63
cmova r9, rbx
mov qword [rsi + 0x110], r9
call fcn.1400bf4e8
test eax, eax
jne 0x1400c15d6
cmp dword [rsi + 0x158], 0x12c
jl 0x1400c1cd8
cmp byte [r14 + 0x3b4], bl
jne 0x1400c1cb9
cmp byte [r14 + 0x3aa], bl
jne 0x1400c1cb9
cmp byte [r14 + 0x3b5], bl
jne 0x1400c1cc2
movzx ecx, byte [rsi + 0x11e8]
sub ecx, 1
je 0x1400c1be5
sub ecx, 1
je 0x1400c1be5
sub ecx, 1
je 0x1400c1be5
cmp ecx, 1
jne 0x1400c1cb9
xor edx, edx
mov rcx, rsi
call fcn.1400a05b0
cmp byte [rsi + 0x1c3], bl
jne 0x1400c1cb9
cmp dword [rsi + 0x158], 0x1a1
jne 0x1400c1c46
cmp byte [rsi + 0x130f], bl
je 0x1400c1c46
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rsi
call fcn.1400b2244
mov rcx, qword [rsi + 0x11f0]
mov byte [rsi + 0x1310], 1
call qword [fcn.1401496a8]
mov rdx, r12
mov rcx, rsi
mov qword [rsi + 0x198], rax
call fcn.1400b8b40
jmp 0x1400c1cb9
mov rcx, rsi
cmp byte [rsi + 0xacd], bl
je 0x1400c1c74
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1400b2244
cmp dword [rsi + 0x170], ebx
jle 0x1400c1cb9
or dword [rsi + 0x15c], 2
mov dword [rsi + 0x170], ebx
jmp 0x1400c1cb9
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1400b2244
mov edx, 2
mov rcx, r14
call fcn.1400b3294
mov rdx, r12
mov rcx, rsi
call fcn.1400b8b40
test eax, eax
jne 0x1400c15d6
mov byte [rsi + 0x1c3], 1
cmp byte [rsi + 0x130f], bl
je 0x1400c1cb9
mov dword [rsi + 0x170], 3
cmp byte [r14 + 0x3b5], bl
je 0x1400c1cd8
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rsi
call fcn.1400b2244
or dword [rsi + 0x15c], 2
cmp byte [rdi], bl
je 0x1400c1dd4
mov rcx, r13
call fcn.1400a795c
mov rbx, qword [rsi + 0x148]
xor eax, eax
cmp byte [rbx], al
je 0x1400c15d4
mov r15, qword [rbp + 0x50]
mov r12, rbx
mov rcx, rbx
mov r15, qword [r15]
mov rdi, r15
mov r8, r15
jmp 0x1400c1523
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 0x1400c15d4
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.1400b2170
jmp 0x1400c1ed7
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x1400c1ecf
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x1400c1ecf
xor r15d, r15d
mov byte [rsi + 0x1c1], r15b
jmp 0x1400c15d4
lea rdx, str.Header_without_colon
jmp 0x1400c1d96
lea rdx, str.Nul_byte_in_header
mov rcx, rsi
call fcn.1400b2170
mov eax, 8
jmp 0x1400c15d6
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rsi
call fcn.1400b2244
mov dword [rsi + 0x174], 3
mov byte [rsi + 0x1c1], 1
mov dword [rsi + 0x144], r15d
jmp 0x1400c1ed7
cmp byte [rsi + 0xad4], bl
jne 0x1400c1dff
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
je 0x1400c1e08
cmp dword [rsi + 0xa20], 2
jne 0x1400c1e08
cmp qword [r12], 0xffffffffffffffff
jg 0x1400c1e08
mov rax, qword [rbp + 0x58]
mov byte [rax], 1
jmp 0x1400c1e0c
mov rax, qword [rbp + 0x58]
cmp qword [rsi + 0xf0], rbx
jne 0x1400c1e1a
mov byte [rax], 1
jmp 0x1400c1e1e
cmp byte [rax], bl
je 0x1400c1e25
and dword [rsi + 0x15c], 0xfffffffe
mov r8, qword [rbp + 0x40]
mov r9, r15
mov edx, 1
mov rcx, rsi
call fcn.1400b2094
jmp 0x1400c15d4
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1400b2170
mov eax, 0x16
jmp 0x1400c15d6
mov r8, rdi
mov rcx, r13
call fcn.1400a790c
xor edi, edi
test eax, eax
jne 0x1400c15d6
cmp dword [rsi + 0x144], edi
jne 0x1400c15d4
mov rcx, r13
call fcn.1400a7950
mov rcx, r13
mov rbx, rax
call fcn.1400a7958
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c2610
lea ecx, [rdi + 2]
cmp eax, ecx
jne 0x1400c15d4
mov dword [rsi + 0x140], ecx
mov edx, ecx
mov rcx, r14
mov byte [rsi + 0x1c1], dil
call fcn.1400b3294
cmp byte [rsi + 0xaf1], dil
jne 0x1400c15d4
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rsi
call fcn.1400b2170
mov eax, 1
jmp 0x1400c15d6