Function at 0x1400092a0
Capabilities:
Parse credit card information
Validate payment card number using luhn algorithm

Disassembly:
push rsi
movzx edx, byte [rcx + 1]
lea rax, [rcx + 1]
mov rsi, rcx
cmp dl, 0x31
jne 0x1400092c7
movzx edx, byte [rax + 1]
inc rax
cmp dl, 0x35
jl 0x1400092c3
cmp dl, 0x39
jle 0x1400092dd
xor eax, eax
pop rsi
ret
cmp dl, 0x32
jne 0x1400092c3
movzx ecx, byte [rax + 1]
inc rax
cmp cl, 0x30
jl 0x1400092c3
cmp cl, 0x36
jg 0x1400092c3
movzx ecx, byte [rax + 1]
cmp cl, 0x30
je 0x1400092eb
cmp cl, 0x31
jne 0x1400092c3
movzx ecx, byte [rax + 2]
cmp cl, 0x30
jl 0x1400092c3
cmp cl, 0x39
jg 0x1400092c3
movzx ecx, byte [rsi + 5]
cmp cl, 0x31
je 0x14000931b
cmp cl, 0x32
je 0x14000931b
cmp cl, 0x35
je 0x14000931b
cmp cl, 0x36
je 0x14000931b
cmp cl, 0x37
je 0x14000931b
cmp cl, 0x39
jne 0x1400092c3
movzx ecx, byte [rsi + 6]
cmp cl, 0x30
je 0x14000932e
cmp cl, 0x32
je 0x14000932e
cmp cl, 0x34
jne 0x1400092c3
movzx ecx, byte [rsi + 7]
cmp cl, 0x30
jl 0x1400092c3
cmp cl, 0x39
jg 0x1400092c3
cmp cl, 0x38
je 0x1400092c3
cmp cl, 0x39
je 0x1400092c3
lea rcx, [rsi - 1]
xor r9d, r9d
mov qword [rsp + 0x10], rbx
mov rax, rcx
mov edx, r9d
nop dword [rax]
movzx r8d, byte [rax]
cmp r8b, 0x30
jl 0x14000937c
cmp r8b, 0x39
jg 0x14000937c
inc edx
dec rax
cmp edx, 0x14
jl 0x140009360
jmp 0x140009385
cmp edx, 0xc
jl 0x140009428
movzx edx, byte [rax]
cmp dl, 0x30
jl 0x140009396
cmp dl, 0x39
jle 0x140009428
lea r11, [rax + 1]
mov r8d, ecx
sub r8d, eax
movzx eax, byte [r11]
cmp al, 0x33
je 0x1400093ba
cmp al, 0x34
je 0x1400093ba
cmp al, 0x35
je 0x1400093ba
cmp al, 0x36
je 0x1400093ba
cmp r8d, 0x13
jbe 0x140009428
mov qword [rsp + 0x18], rdi
mov edi, r8d
mov ebx, r9d
and edi, 1
dec r8d
movsxd rax, r8d
js 0x140009405
lea r10, [rax + r11]
nop word [rax + rax]
movsx edx, byte [r10]
mov eax, r8d
and eax, 1
sub edx, 0x30
cmp eax, edi
jne 0x1400093f3
add edx, edx
cmp edx, 9
jle 0x1400093fb
sub edx, 9
add ebx, edx
dec r10
dec r8d
jns 0x1400093e0
mov rdi, qword [rsp + 0x18]
mov eax, 0x66666667
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
cmp ebx, eax
je 0x14000959a
cmp byte [rcx], 0x2f
jne 0x140009439
cmp byte [rcx - 1], 0x20
jne 0x140009464
sub rcx, 2
jmp 0x1400094ab
lea r8, [rcx - 0x28]
mov edx, r9d
cmp rcx, r8
je 0x140009464
movzx eax, byte [rcx]
cmp al, 0x41
jl 0x140009454
cmp al, 0x5a
jg 0x140009454
inc edx
jmp 0x14000945c
cmp al, 0x2f
je 0x14000946d
cmp al, 0x20
jne 0x140009464
dec rcx
cmp rcx, r8
jne 0x140009445
xor eax, eax
mov rbx, qword [rsp + 0x10]
pop rsi
ret
test edx, edx
je 0x140009464
dec rcx
mov edx, r9d
cmp rcx, r8
je 0x140009464
nop dword [rax]
movzx eax, byte [rcx]
cmp al, 0x41
jl 0x14000948f
cmp al, 0x5a
jg 0x14000948f
inc edx
jmp 0x140009493
cmp al, 0x20
jne 0x1400094a4
dec rcx
cmp rcx, r8
jne 0x140009480
xor eax, eax
mov rbx, qword [rsp + 0x10]
pop rsi
ret
test edx, edx
je 0x140009464
inc rcx
test rcx, rcx
je 0x140009464
movzx eax, byte [rcx - 1]
cmp al, 0x3a
jl 0x1400094bc
cmp al, 0x3f
jle 0x1400094c0
cmp al, 0x5e
jne 0x140009464
lea rdx, [rcx - 2]
mov eax, r9d
mov r8, rdx
nop word [rax + rax]
movzx ecx, byte [r8]
cmp cl, 0x30
jl 0x1400094ea
cmp cl, 0x39
jg 0x1400094ea
inc eax
dec r8
cmp eax, 0x14
jl 0x1400094d0
jmp 0x1400094f3
cmp eax, 0xc
jl 0x140009464
movzx eax, byte [r8]
cmp al, 0x30
jl 0x140009503
cmp al, 0x39
jle 0x140009464
movzx eax, byte [r8 + 1]
sub edx, r8d
cmp al, 0x33
je 0x140009524
cmp al, 0x34
je 0x140009524
cmp al, 0x35
je 0x140009524
cmp al, 0x36
je 0x140009524
cmp edx, 0x13
jbe 0x140009464
mov ebx, edx
mov r11d, r9d
and ebx, 1
dec edx
movsxd rax, edx
js 0x140009564
lea r10, [rax + r8 + 1]
nop dword [rax + rax]
movsx ecx, byte [r10]
mov eax, edx
and eax, 1
sub ecx, 0x30
cmp eax, ebx
jne 0x140009552
add ecx, ecx
cmp ecx, 9
jle 0x14000955a
sub ecx, 9
add r11d, ecx
dec r10
dec edx
jns 0x140009540
mov eax, 0x66666667
imul r11d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
cmp r11d, eax
jne 0x140009464
cmp byte [r8], 0x42
mov r11, r8
jne 0x140009464
test r8, r8
je 0x140009464
lea rax, [rsi + 8]
nop
movzx ecx, byte [rax]
cmp cl, 0x30
jl 0x1400095bb
cmp cl, 0x39
jg 0x1400095bb
inc r9d
inc rax
cmp r9d, 0x18
jb 0x1400095a0
jmp 0x1400095c5
cmp r9d, 4
jb 0x140009464
test rax, rax
je 0x140009464
mov rbx, qword [rsp + 0x10]
sub eax, r11d
mov dword [0x1400d3a8c], eax
mov rax, r11
pop rsi
ret