Function at 0x1400c3378
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.140102390
mov rcx, rax
mov rdx, r12
test rax, rax
je 0x1400c3cf8
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.1400a97b0
xor r15d, r15d
test eax, eax
jne 0x1400c347a
cmp dword [rsi + 0x144], r15d
jne 0x1400c3492
mov rcx, r13
call fcn.1400a97f4
mov rcx, r13
mov rbx, rax
call fcn.1400a97fc
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c44b4
lea ebx, [r15 + 2]
cmp eax, ebx
jne 0x1400c3497
mov edx, ebx
mov rcx, r14
call fcn.1400b5138
cmp byte [rsi + 0xaf1], r15b
je 0x1400c3d6c
mov byte [rsi + 0x1c1], r15b
cmp qword [rdi], r15
je 0x1400c3bb5
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.1400a97fc
mov r12, rax
cmp byte [rax], 0xa
je 0x1400c37ba
cmp byte [rax], 0xd
je 0x1400c37ba
mov edx, dword [rsi + 0x144]
mov r15d, ebx
lea ecx, [rdx + 1]
mov dword [rsi + 0x144], ecx
test edx, edx
jne 0x1400c36c3
mov rax, qword [r14 + 0x3e8]
mov ecx, dword [rax + 0x84]
test cl, 3
je 0x1400c365b
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.1400a8620
mov ebx, eax
cmp eax, 1
jne 0x1400c355c
cmp dword [rbp - 0x28], 2
jl 0x1400c355c
mov r9, rdi
lea r8, [rbp - 0x24]
lea rdx, str._HTTP__1_23___d
mov rcx, r12
call fcn.1400a8620
cmp eax, 2
jne 0x1400c355c
mov byte [r14 + 0x813], r15b
lea ebx, [rax + 2]
mov byte [rbp - 0x30], 0x20
jmp 0x1400c3581
mov al, byte [rbp + 0x40]
sub al, 0x30
cmp al, 9
jbe 0x1400c3c0f
cmp ebx, 4
jl 0x1400c35ed
cmp dword [rdi], 0x64
jl 0x1400c3c0f
cmp byte [rbp - 0x30], 0x20
jne 0x1400c3c03
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 0x1400c35a3
cmp ecx, 1
jne 0x1400c3bd2
mov byte [r14 + 0x813], r9b
cmp dword [rsi + 0x174], 3
jne 0x1400c35c8
cmp r9b, 0x14
je 0x1400c35c8
lea rdx, str.Lying_server__not_serving_HTTP_2
mov rcx, rsi
call fcn.1400b40e8
cmp byte [r14 + 0x813], 0x14
jae 0x1400c3651
mov rax, qword [r14 + 0x7d0]
lea rdx, str.Mark_bundle_as_not_supporting_multiuse
mov rcx, rsi
or dword [rax], 0xffffffff
call fcn.1400b40e8
jmp 0x1400c3651
test ebx, ebx
jne 0x1400c3c03
mov r8, rdi
lea rdx, str._HTTP__3d
mov rcx, r12
call fcn.1400a8620
mov byte [r14 + 0x813], 0xa
test eax, eax
jne 0x1400c36ac
mov rcx, r13
call fcn.1400a97f4
mov rcx, r13
mov rbx, rax
call fcn.1400a97fc
mov rdx, rax
mov r8, rbx
mov rcx, rsi
call fcn.1400c43bc
cmp eax, 1
jne 0x1400c3c1e
mov dword [rdi], 0xc8
mov ebx, eax
mov byte [r14 + 0x813], 0xa
test ebx, ebx
je 0x1400c3c1e
jmp 0x1400c36ac
bt ecx, 0x12
jae 0x1400c3c1b
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.1400a8620
cmp eax, 4
jne 0x1400c3c1b
cmp byte [rbp - 0x2f], 0x20
jne 0x1400c3c1b
mov byte [r14 + 0x813], 0xb
mov rdx, r14
mov rcx, rsi
call fcn.1400c3f5c
test eax, eax
jne 0x1400c347a
lea r15d, [rax + 6]
mov rcx, r13
call fcn.1400a97fc
mov rcx, r13
mov rbx, rax
call fcn.1400a97f4
mov r8, rax
xor edx, edx
mov rcx, rbx
mov rdi, rax
call fcn.140102390
test rax, rax
jne 0x1400c3c33
mov ecx, dword [rsi + 0x144]
cmp ecx, 2
jl 0x1400c3722
cmp byte [rbx], 0x20
je 0x1400c3704
cmp byte [rbx], 9
jne 0x1400c3709
cmp ecx, 2
jg 0x1400c3722
mov r8, rdi
mov edx, 0x3a
mov rcx, rbx
call fcn.140102390
test rax, rax
je 0x1400c3c2a
mov r8, r12
mov rdx, r14
mov rcx, rsi
call fcn.1400c2324
xor ecx, ecx
test eax, eax
jne 0x1400c347a
mov ebx, dword [rsi + 0x158]
mov edi, r15d
or edi, 1
cmp byte [rsi + 0xad1], cl
mov rcx, r13
cmove edi, r15d
call fcn.1400a97f4
mov r9, rax
mov r8, r12
mov edx, 1
mov rcx, rsi
call fcn.1400b3f38
mov rcx, r13
call fcn.1400a97f4
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.1400b3f30
test eax, eax
jne 0x1400c347a
mov rcx, r13
call fcn.1400a97f4
add qword [rsi + 0x1388], rax
mov rcx, r13
call fcn.1400a97f4
add qword [rsi + 0x108], rax
jmp 0x1400c3b84
mov ecx, dword [rsi + 0x158]
lea eax, [rcx - 0x64]
cmp eax, 0x63
ja 0x1400c383a
sub ecx, 0x64
je 0x1400c37fd
cmp ecx, 1
je 0x1400c37e5
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
jmp 0x1400c382e
cmp dword [rsi + 0x174], ebx
je 0x1400c3c4c
lea rdi, [rsi + 0x1c1]
mov byte [rdi], r15b
jmp 0x1400c382e
lea rdi, [rsi + 0x1c1]
mov dword [rsi + 0x144], r15d
mov byte [rdi], 1
cmp dword [rsi + 0x170], r15d
jle 0x1400c382e
or dword [rsi + 0x15c], ebx
xor edx, edx
mov rcx, rsi
mov dword [rsi + 0x170], r15d
call fcn.1400a2454
mov rbx, rdi
lea r12, [rsi + 0xe8]
jmp 0x1400c38a9
lea rdi, [rsi + 0x1c1]
lea r12, [rsi + 0xe8]
mov byte [rdi], r15b
cmp qword [r12], 0xffffffffffffffff
mov rbx, rdi
jne 0x1400c38ae
cmp byte [rsi + 0x1c6], r15b
jne 0x1400c38ae
cmp byte [r14 + 0x3aa], r15b
jne 0x1400c38ae
cmp byte [r14 + 0x813], 0xb
jne 0x1400c38ae
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
jne 0x1400c38ae
cmp byte [rsi + 0x11e8], 5
je 0x1400c38ae
lea rdx, str.no_chunk__no_close__no_size._Assume_close_to_signal_end
mov rcx, rsi
call fcn.1400b40e8
mov edx, 2
mov rcx, r14
call fcn.1400b5138
cmp byte [rbx], r15b
jne 0x1400c38be
mov rcx, rsi
call fcn.1400c3ee0
test eax, eax
jne 0x1400c347a
mov al, byte [r14 + 0x3aa]
mov ebx, 0x191
test al, al
je 0x1400c3955
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c38e6
cmp dword [r14 + 0x4b0], 2
je 0x1400c38f7
cmp eax, 0x197
jne 0x1400c3918
cmp dword [r14 + 0x4b4], 2
jne 0x1400c3918
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b40e8
mov byte [rsi + 0x130d], 1
mov al, byte [r14 + 0x3aa]
test al, al
je 0x1400c3955
mov eax, dword [rsi + 0x158]
cmp eax, ebx
jne 0x1400c392e
cmp dword [r14 + 0x5a8], 1
je 0x1400c393f
jmp 0x1400c3955
cmp eax, 0x197
jne 0x1400c3955
cmp dword [r14 + 0x5ac], 1
jne 0x1400c3955
lea rdx, str.Connection_closure_while_negotiating_auth__HTTP_1.0__
mov rcx, rsi
call fcn.1400b40e8
mov byte [rsi + 0x130d], 1
cmp dword [r14 + 0x5a8], 3
jne 0x1400c3972
cmp dword [rsi + 0x158], ebx
je 0x1400c3972
mov dword [r14 + 0x5a8], 4
cmp dword [r14 + 0x5ac], 3
jne 0x1400c3993
cmp dword [rsi + 0x158], 0x197
je 0x1400c3993
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.1400a97f4
mov rcx, r13
mov r15, rax
call fcn.1400a97fc
mov r8, rax
mov r9, r15
mov edx, ebx
mov rcx, rsi
call fcn.1400b3f30
xor ebx, ebx
test eax, eax
jne 0x1400c347a
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.1400c49b4
test al, al
jne 0x1400c3ce2
lea eax, [r8 - 0x64]
cmp eax, 0x63
cmova r9, rbx
mov qword [rsi + 0x110], r9
call fcn.1400c138c
test eax, eax
jne 0x1400c347a
cmp dword [rsi + 0x158], 0x12c
jl 0x1400c3b7c
cmp byte [r14 + 0x3b4], bl
jne 0x1400c3b5d
cmp byte [r14 + 0x3aa], bl
jne 0x1400c3b5d
cmp byte [r14 + 0x3b5], bl
jne 0x1400c3b66
movzx ecx, byte [rsi + 0x11e8]
sub ecx, 1
je 0x1400c3a89
sub ecx, 1
je 0x1400c3a89
sub ecx, 1
je 0x1400c3a89
cmp ecx, 1
jne 0x1400c3b5d
xor edx, edx
mov rcx, rsi
call fcn.1400a2454
cmp byte [rsi + 0x1c3], bl
jne 0x1400c3b5d
cmp dword [rsi + 0x158], 0x1a1
jne 0x1400c3aea
cmp byte [rsi + 0x130f], bl
je 0x1400c3aea
lea rdx, str.Got_417_while_waiting_for_a_100
mov rcx, rsi
call fcn.1400b40e8
mov rcx, qword [rsi + 0x11f0]
mov byte [rsi + 0x1310], 1
call qword [fcn.14014b538]
mov rdx, r12
mov rcx, rsi
mov qword [rsi + 0x198], rax
call fcn.1400ba9e4
jmp 0x1400c3b5d
mov rcx, rsi
cmp byte [rsi + 0xacd], bl
je 0x1400c3b18
lea rdx, str.HTTP_error_before_end_of_send__keep_sending
call fcn.1400b40e8
cmp dword [rsi + 0x170], ebx
jle 0x1400c3b5d
or dword [rsi + 0x15c], 2
mov dword [rsi + 0x170], ebx
jmp 0x1400c3b5d
lea rdx, str.HTTP_error_before_end_of_send__stop_sending
call fcn.1400b40e8
mov edx, 2
mov rcx, r14
call fcn.1400b5138
mov rdx, r12
mov rcx, rsi
call fcn.1400ba9e4
test eax, eax
jne 0x1400c347a
mov byte [rsi + 0x1c3], 1
cmp byte [rsi + 0x130f], bl
je 0x1400c3b5d
mov dword [rsi + 0x170], 3
cmp byte [r14 + 0x3b5], bl
je 0x1400c3b7c
lea rdx, str.Keep_sending_data_to_get_tossed_away
mov rcx, rsi
call fcn.1400b40e8
or dword [rsi + 0x15c], 2
cmp byte [rdi], bl
je 0x1400c3c78
mov rcx, r13
call fcn.1400a9800
mov rbx, qword [rsi + 0x148]
xor eax, eax
cmp byte [rbx], al
je 0x1400c3478
mov r15, qword [rbp + 0x50]
mov r12, rbx
mov rcx, rbx
mov r15, qword [r15]
mov rdi, r15
mov r8, r15
jmp 0x1400c33c7
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 0x1400c3478
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.1400b4014
jmp 0x1400c3d7b
lea rdx, str.Unsupported_HTTP_version_in_response
jmp 0x1400c3d73
lea rdx, str.Unsupported_response_code_in_HTTP_response
jmp 0x1400c3d73
xor r15d, r15d
mov byte [rsi + 0x1c1], r15b
jmp 0x1400c3478
lea rdx, str.Header_without_colon
jmp 0x1400c3c3a
lea rdx, str.Nul_byte_in_header
mov rcx, rsi
call fcn.1400b4014
mov eax, 8
jmp 0x1400c347a
lea rdx, str.Received_101__Switching_to_HTTP_2
mov rcx, rsi
call fcn.1400b40e8
mov dword [rsi + 0x174], 3
mov byte [rsi + 0x1c1], 1
mov dword [rsi + 0x144], r15d
jmp 0x1400c3d7b
cmp byte [rsi + 0xad4], bl
jne 0x1400c3ca3
mov rax, qword [r14 + 0x3e8]
test dword [rax + 0x84], 0x40000
je 0x1400c3cac
cmp dword [rsi + 0xa20], 2
jne 0x1400c3cac
cmp qword [r12], 0xffffffffffffffff
jg 0x1400c3cac
mov rax, qword [rbp + 0x58]
mov byte [rax], 1
jmp 0x1400c3cb0
mov rax, qword [rbp + 0x58]
cmp qword [rsi + 0xf0], rbx
jne 0x1400c3cbe
mov byte [rax], 1
jmp 0x1400c3cc2
cmp byte [rax], bl
je 0x1400c3cc9
and dword [rsi + 0x15c], 0xfffffffe
mov r8, qword [rbp + 0x40]
mov r9, r15
mov edx, 1
mov rcx, rsi
call fcn.1400b3f38
jmp 0x1400c3478
lea rdx, str.The_requested_URL_returned_error:__d
call fcn.1400b4014
mov eax, 0x16
jmp 0x1400c347a
mov r8, rdi
mov rcx, r13
call fcn.1400a97b0
xor edi, edi
test eax, eax
jne 0x1400c347a
cmp dword [rsi + 0x144], edi
jne 0x1400c3478
mov rcx, r13
call fcn.1400a97f4
mov rcx, r13
mov rbx, rax
call fcn.1400a97fc
mov r8, rax
mov r9, rbx
mov rdx, r14
mov rcx, rsi
call fcn.1400c44b4
lea ecx, [rdi + 2]
cmp eax, ecx
jne 0x1400c3478
mov dword [rsi + 0x140], ecx
mov edx, ecx
mov rcx, r14
mov byte [rsi + 0x1c1], dil
call fcn.1400b5138
cmp byte [rsi + 0xaf1], dil
jne 0x1400c3478
lea rdx, str.Received_HTTP_0.9_when_not_allowed
mov rcx, rsi
call fcn.1400b4014
mov eax, 1
jmp 0x1400c347a