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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
xor r13d, r13d
mov rbp, qword [rcx + 8]
mov rsi, qword [rcx]
test rbp, rbp
je 0x140006231
lea r13, [rbp + 8]
test rsi, rsi
jle 0x140006311
mov al, byte [r13]
cmp al, 0x2b
je 0x14000624e
mov r15d, 1
cmp al, 0x2d
jne 0x140006264
jmp 0x140006252
or r15, 0xffffffffffffffff
mov r14d, 1
cmp rsi, 1
je 0x140006311
jmp 0x14000626b
or r15, 0xffffffffffffffff
xor r14d, r14d
mov al, byte [r13 + r14]
xor ebx, ebx
sub eax, 0x30
cmp al, 9
ja 0x140006313
movabs r10, 0x7fffffffffffffd0
cmp rsi, r14
jle 0x1400062ec
movsx rcx, byte [r13 + r14]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x1400062ec
lea rax, [rcx + r10]
mov r11d, 0xa
cqo
idiv r11
cmp rax, rbx
jle 0x1400062cf
call fcn.1400061a8
lea rcx, [0x1400171e0]
call fcn.140010e10
movabs r10, 0x7fffffffffffffd0
cmp byte [rax], 0
je 0x1400062da
jmp 0x140006313
imul rbx, rbx, 0xa
sub rcx, 0x30
sub rbx, rcx
inc r14
cmp rsi, r14
jle 0x1400062ec
cmp byte [r13 + r14], 0x5f
je 0x1400062da
jmp 0x140006287
cmp r15, 0xffffffffffffffff
jne 0x140006301
movabs r13, 0x8000000000000000
cmp rbx, r13
je 0x140006307
imul rbx, r15
jmp 0x140006316
call fcn.1400061a8
mov rbx, r13
jmp 0x140006313
xor ebx, ebx
xor r14d, r14d
lea rcx, [0x1400171e0]
call fcn.140010e10
cmp byte [rax], 0
mov r13, rax
jne 0x1400064b7
test r14, r14
jne 0x140006337
or rbx, 0xffffffffffffffff
lea rax, [rsp + 0x68]
lea r14, [0x1400fd7e0]
xor r9d, r9d
xor r10d, r10d
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x28]
mov edx, 0x18
call fcn.140001bc4
movups xmm0, xmmword [r14]
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x58], r10
mov r15, qword [r14]
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x78], rax
mov rcx, qword [rsp + 0x38]
movups xmmword [rsp + 0x68], xmm0
movups xmm1, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x40], xmm1
call fcn.140005303
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
cmp r15, rbx
je 0x14000645a
xor edx, edx
xor eax, eax
cmp rax, r10
jge 0x140006473
cmp rsi, rdx
jle 0x140006436
mov cl, byte [r9 + rax + 8]
cmp cl, 0x2d
je 0x1400063dd
cmp cl, 0x5f
jne 0x1400063e0
inc rax
mov cl, byte [rbp + rdx + 8]
cmp cl, 0x2d
je 0x1400063f2
cmp cl, 0x5f
jne 0x1400064a9
inc rdx
cmp rax, r10
jge 0x14000642e
cmp rsi, rdx
jle 0x14000642e
mov r8b, byte [r9 + rax + 8]
lea ecx, [r8 - 0x41]
cmp cl, 0x19
ja 0x140006411
xor r8d, 0x20
cmp byte [r13], 0
jne 0x140006438
mov cl, byte [rbp + rdx + 8]
lea r11d, [rcx - 0x41]
cmp r11b, 0x19
ja 0x140006429
xor ecx, 0x20
cmp r8b, cl
jne 0x140006436
inc rax
inc rdx
jmp 0x1400063c0
xor edi, edi
cmp byte [r13], 0
jne 0x140006481
test dil, dil
jne 0x14000645a
add r14, 0x18
lea rax, [0x1400fe728]
cmp rax, r14
jne 0x140006362
jmp 0x1400064a2
mov r12d, r15d
test r9, r9
je 0x1400064b7
test byte [r9 + 7], 0x40
jne 0x1400064b7
mov rcx, r9
call fcn.140005277
jmp 0x1400064b7
sete dil
cmp rsi, rdx
sete al
and edi, eax
jmp 0x140006438
test r9, r9
je 0x1400064b7
test byte [r9 + 7], 0x40
jne 0x140006495
mov rcx, r9
call fcn.140005277
cmp byte [r13], 0
jne 0x1400064b7
or r12d, 0xffffffff
jmp 0x1400064b7
test r9, r9
je 0x14000649c
jmp 0x140006486
cmp rax, r10
jl 0x1400063ff
jmp 0x14000642e
mov eax, r12d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret