Function at 0x1400072a2
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, 0x238
xor eax, eax
mov r10, rcx
mov rbx, rdx
test rcx, rcx
je 0x1400072c5
mov rax, qword [rcx]
cmp rax, r8
jle 0x1400072f5
mov dl, byte [r10 + r8 + 0x10]
lea ecx, [rdx - 0x2b]
and cl, 0xfd
jne 0x1400072f5
movsd xmm0, qword [0x14010b788]
cmp dl, 0x2d
je 0x1400072ec
movsd xmm0, qword [0x14010b780]
lea r9, [r8 + 1]
mov r13b, 1
jmp 0x140007303
movsd xmm0, qword [0x14010b780]
mov r9, r8
xor r13d, r13d
lea rcx, [r9 + 2]
cmp rcx, rax
jge 0x14000739f
mov dl, byte [r10 + r9 + 0x10]
and edx, 0xffffffdf
cmp dl, 0x4e
je 0x140007327
cmp dl, 0x49
jne 0x14000739f
jmp 0x1400073ad
mov dl, byte [r10 + r9 + 0x11]
xor r12d, r12d
and edx, 0xffffffdf
cmp dl, 0x41
jne 0x1400077b8
mov dl, byte [r10 + rcx + 0x10]
and edx, 0xffffffdf
cmp dl, 0x4e
jne 0x1400077b8
add r9, 3
cmp r9, rax
jge 0x14000737f
mov al, byte [r10 + r9 + 0x10]
mov edx, eax
and edx, 0xffffffdf
sub edx, 0x41
cmp dl, 0x19
jbe 0x1400077b8
lea edx, [rax - 0x30]
cmp dl, 9
jbe 0x1400077a4
cmp al, 0x5f
je 0x1400077a4
movsd xmm0, qword [0x14010b790]
xorps xmm1, xmm1
mulsd xmm0, xmm0
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm1
cvtss2sd xmm0, xmm0
jmp 0x140007685
or rdx, 0xffffffffffffffff
cmp r9, rax
jl 0x140007427
jmp 0x14000743f
mov dl, byte [r10 + r9 + 0x11]
xor r12d, r12d
and edx, 0xffffffdf
cmp dl, 0x4e
jne 0x1400077b8
mov dl, byte [r10 + rcx + 0x10]
and edx, 0xffffffdf
cmp dl, 0x46
jne 0x1400077b8
add r9, 3
cmp r9, rax
jge 0x140007405
mov al, byte [r10 + r9 + 0x10]
mov edx, eax
and edx, 0xffffffdf
sub edx, 0x41
cmp dl, 0x19
jbe 0x1400077b8
lea edx, [rax - 0x30]
cmp dl, 9
jbe 0x1400077a4
cmp al, 0x5f
je 0x1400077a4
movsd xmm1, qword [0x14010b780]
xorps xmm2, xmm2
divsd xmm1, xmm2
mulsd xmm1, xmm0
movsd qword [rbx], xmm1
sub r9, r8
mov r12, r9
jmp 0x1400077b8
movzx ecx, byte [r10 + r9 + 0x10]
or rdx, 0xffffffffffffffff
lea r11d, [rcx - 0x30]
cmp r11b, 9
ja 0x14000743f
lea rdx, [rcx - 0x30]
xor edi, edi
xor ecx, ecx
cmp r9, rax
jge 0x14000751c
movzx r11d, byte [r10 + r9 + 0x10]
lea esi, [r11 - 0x30]
cmp sil, 9
ja 0x14000747a
imul rcx, rcx, 0xa
inc rdi
lea rcx, [rcx + r11 - 0x30]
inc r9
cmp r9, rax
je 0x140007443
cmp byte [r10 + r9 + 0x10], 0x5f
je 0x140007468
jmp 0x140007443
cmp r11b, 0x2e
jne 0x14000751c
inc r9
test rdi, rdi
jne 0x1400074b8
xor r11d, r11d
mov r14, r11
cmp r9, rax
jge 0x1400074bb
cmp byte [r10 + r9 + 0x10], 0x30
jne 0x1400077a9
inc r11
inc r9
cmp r9, rax
je 0x14000748f
cmp byte [r10 + r9 + 0x10], 0x5f
je 0x1400074a6
jmp 0x14000748f
xor r14d, r14d
cmp rdx, 0xffffffffffffffff
jne 0x1400074de
cmp r9, rax
jge 0x1400074de
movzx r11d, byte [r10 + r9 + 0x10]
or rdx, 0xffffffffffffffff
lea esi, [r11 - 0x30]
cmp sil, 9
ja 0x1400074de
lea rdx, [r11 - 0x30]
xor r11d, r11d
lea rbp, [r14 + r11]
mov rsi, r11
cmp r9, rax
jge 0x140007520
movzx r12d, byte [r10 + r9 + 0x10]
lea r15d, [r12 - 0x30]
cmp r15b, 9
ja 0x140007520
imul rcx, rcx, 0xa
inc r11
lea rcx, [rcx + r12 - 0x30]
inc r9
cmp r9, rax
je 0x1400074e1
cmp byte [r10 + r9 + 0x10], 0x5f
je 0x14000750a
jmp 0x1400074e1
xor ebp, ebp
xor esi, esi
mov r12, rdi
add r12, rsi
jne 0x140007543
cmp r9, r8
je 0x1400077b8
lea r11, [r8 + 1]
cmp r11, r9
jne 0x140007543
test r13b, r13b
jne 0x1400077b8
lea r11, [r9 + 1]
cmp r11, rax
jge 0x1400075d1
mov r13b, byte [r10 + r9 + 0x10]
and r13d, 0xffffffdf
cmp r13b, 0x45
jne 0x1400075d1
mov r13b, byte [r10 + r11 + 0x10]
cmp r13b, 0x2b
je 0x140007576
cmp r13b, 0x2d
jne 0x140007582
or r13, 0xffffffffffffffff
jmp 0x14000757c
mov r13d, 1
add r9, 2
jmp 0x14000758b
mov r9, r11
mov r13d, 1
mov r15b, byte [r10 + r9 + 0x10]
lea r11d, [r15 - 0x30]
cmp r11b, 9
ja 0x1400077a4
xor r11d, r11d
cmp r9, rax
jge 0x1400075da
movzx r14d, byte [r10 + r9 + 0x10]
lea r15d, [r14 - 0x30]
cmp r15b, 9
ja 0x1400075da
imul r11, r11, 0xa
lea r11, [r11 + r14 - 0x30]
inc r9
cmp r9, rax
je 0x1400075a1
cmp byte [r10 + r9 + 0x10], 0x5f
je 0x1400075bf
jmp 0x1400075a1
mov r13d, 1
xor r11d, r11d
imul r11, r13
sub r11, rbp
mov rax, r11
neg rax
cmovs rax, r11
cmp rax, 0x3e7
jg 0x1400075fb
cmp r12, 0xf
jg 0x140007618
jmp 0x14000762c
xorps xmm1, xmm1
test r11, r11
js 0x140007612
movsd xmm1, qword [0x14010b780]
xorps xmm2, xmm2
divsd xmm1, xmm2
mulsd xmm0, xmm1
jmp 0x140007685
cmp r12, 0x10
jne 0x1400076db
cmp rdx, 9
je 0x1400076db
cmp rax, 0x16
jle 0x14000764b
mov edx, 0xf
sub rdx, rdi
sub rdx, rsi
lea rsi, [rdx + 0x16]
cmp rsi, rax
jge 0x14000768e
jmp 0x1400076db
test rcx, rcx
js 0x140007657
cvtsi2sd xmm1, rcx
jmp 0x14000766c
mov rdx, rcx
and ecx, 1
shr rdx, 1
or rdx, rcx
cvtsi2sd xmm1, rdx
addsd xmm1, xmm1
lea rdx, [0x14010b220]
mulsd xmm0, xmm1
movsd xmm1, qword [rdx + rax*8]
test r11, r11
jns 0x140007612
divsd xmm0, xmm1
movsd qword [rbx], xmm0
jmp 0x14000741c
test r11, r11
js 0x1400076db
sub r9, r8
mov r12, r9
test rcx, rcx
js 0x1400076a5
cvtsi2sd xmm1, rcx
jmp 0x1400076ba
mov r8, rcx
and ecx, 1
shr r8, 1
or r8, rcx
cvtsi2sd xmm1, r8
addsd xmm1, xmm1
lea rcx, [0x14010b220]
mulsd xmm1, xmm0
sub rax, rdx
mulsd xmm1, qword [rcx + rdx*8]
mulsd xmm1, qword [rcx + rax*8]
movsd qword [rbx], xmm1
jmp 0x1400077b8
lea r13, [rsp + 0x3c]
mov edx, 0x1f4
mov r12, r9
mov qword [rsp + 0x28], rax
mov rcx, r13
sub r12, r8
call sym.nimZeroMem
xor ecx, ecx
cmp r9, r8
mov rax, qword [rsp + 0x28]
jle 0x14000772d
cmp byte [r10 + r8 + 0x10], 0x2e
jne 0x14000770f
inc r8
xor ecx, ecx
cmp r9, r8
jle 0x14000772d
mov dl, byte [r10 + r8 + 0x10]
lea esi, [rdx - 0x2b]
and sil, 0xfd
je 0x140007778
lea esi, [rdx - 0x30]
cmp sil, 9
jbe 0x140007778
mov r8d, 0xa
cqo
sar r11, 0x3f
mov byte [rsp + rcx + 0x3c], 0x45
idiv r8
and r11d, 2
add r11d, 0x2b
mov byte [rsp + rcx + 0x3d], r11b
add edx, 0x30
mov byte [rsp + rcx + 0x40], dl
cqo
idiv r8
add edx, 0x30
add eax, 0x30
mov byte [rsp + rcx + 0x3f], dl
xor edx, edx
mov byte [rsp + rcx + 0x3e], al
mov rcx, r13
call sym.__strtod
movsd qword [rbx], xmm0
jmp 0x1400077b8
cmp rcx, 0x1ed
jg 0x140007788
mov byte [rsp + rcx + 0x3c], dl
inc rcx
inc r8
cmp r9, r8
je 0x140007711
mov dl, byte [r10 + r8 + 0x10]
cmp dl, 0x2e
je 0x140007788
cmp dl, 0x5f
je 0x140007788
jmp 0x140007711
xor r12d, r12d
jmp 0x1400077b8
cmp rdx, 0xffffffffffffffff
jne 0x1400074de
jmp 0x1400074c6
mov rax, r12
add rsp, 0x238
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret