Function at 0x14015ae10
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r12
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rbx, rcx
call fcn.14015ab20
mov qword [rcx + 0x128], rdx
mov qword [rcx + 0x130], rdx
lea rcx, [rdx + r8]
mov qword [rbx + 0x138], rcx
cmp rdx, rcx
jae 0x14015b142
mov r8, rdx
xor r12d, r12d
cmp byte [rdx], 0x3c
jne 0x14015b0da
lea rdx, [rbp - 0x20]
mov rcx, rbx
mov r15d, r12d
mov r14d, r12d
call fcn.14015b280
cmp eax, 0x43
je 0x14015b128
mov rcx, rbx
cmp eax, 0x44
jne 0x14015aea9
mov rdx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
add rdx, 9
sub r8, 3
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x18], r8
jmp 0x14015b120
lea rdx, [rbp - 0x20]
call fcn.14015b280
cmp eax, 0x2f
jne 0x14015aefa
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
cmp eax, 0x49
jne 0x14015b16c
mov rdx, qword [rbp - 0x20]
mov rcx, rbx
mov r8, qword [rbp - 0x18]
sub r8, rdx
call fcn.14015ac90
test eax, eax
jne 0x14015b186
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
mov edi, eax
jmp 0x14015b0b1
cmp eax, 0x21
jne 0x14015af13
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
mov r14d, 1
jmp 0x14015af2a
cmp eax, 0x3f
jne 0x14015af2a
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
mov r15d, 1
cmp eax, 0x49
jne 0x14015b1cf
mov rdx, qword [rbp - 0x20]
mov rcx, rbx
mov r8, qword [rbp - 0x18]
sub r8, rdx
mov dword [rbx + 4], r12d
call fcn.14015ab30
test eax, eax
jne 0x14015b186
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
mov edi, eax
cmp eax, 0x49
je 0x14015af77
cmp eax, 0x53
jne 0x14015b03e
test r14d, r14d
je 0x14015b066
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.14015b280
mov edi, eax
cmp eax, 0x3d
jne 0x14015b007
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.14015b280
cmp eax, 0x49
je 0x14015afa4
cmp eax, 0x53
jne 0x14015b18d
mov rsi, qword [rbp - 0x20]
mov rcx, rbx
mov rdi, qword [rbp - 0x18]
mov rdx, rsi
sub rdi, rsi
mov dword [rbx + 4], 1
mov r8, rdi
call fcn.14015ab30
test eax, eax
jne 0x14015b186
mov rdx, qword [rbp - 0x10]
mov rcx, rbx
mov r8, qword [rbp - 8]
sub r8, rdx
call fcn.14015b5a0
test eax, eax
jne 0x14015b186
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14015ac90
test eax, eax
je 0x14015af52
mov eax, 1
jmp 0x14015b1f2
cmp eax, 0x49
jne 0x14015b02e
mov rsi, qword [rbp - 0x20]
mov rcx, rbx
mov rdi, qword [rbp - 0x18]
mov rdx, rsi
sub rdi, rsi
mov dword [rbx + 4], 1
mov r8, rdi
call fcn.14015ab30
jmp 0x14015afdf
cmp eax, 0x53
jne 0x14015b03e
test r14d, r14d
jne 0x14015af52
jmp 0x14015b066
cmp edi, 0x2f
jne 0x14015b066
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14015ac90
test eax, eax
jne 0x14015b186
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
mov edi, eax
test r15d, r15d
je 0x14015b097
cmp edi, 0x3f
jne 0x14015b1ae
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14015ac90
test eax, eax
jne 0x14015b186
lea rdx, [rbp - 0x20]
mov rcx, rbx
call fcn.14015b280
mov edi, eax
test r14d, r14d
je 0x14015b0b1
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.14015ac90
test eax, eax
jne 0x14015b186
cmp edi, 0x3e
je 0x14015b128
mov ecx, edi
call fcn.14015a910
mov r8, rax
lea rcx, [rbx + 8]
lea rdx, str._s_unexpected____wanted_
call fcn.140029c40
mov eax, 1
jmp 0x14015b1f2
mov qword [rbp - 0x20], rdx
cmp rdx, rcx
jae 0x14015b0fe
mov rax, rdx
cmp byte [rax], 0x3c
je 0x14015b0fe
lea r8, [rax + 1]
mov qword [rbx + 0x130], r8
mov rax, r8
cmp r8, rcx
jb 0x14015b0e6
test byte [rbx], 2
mov qword [rbp - 0x18], r8
jne 0x14015b118
lea rcx, [rbp - 0x20]
call fcn.14015adb0
mov r8, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
cmp rdx, r8
je 0x14015b128
mov rcx, rbx
sub r8, rdx
call fcn.14015b5a0
mov rdx, qword [rbx + 0x130]
mov rcx, qword [rbx + 0x138]
mov r8, rdx
cmp rdx, rcx
jb 0x14015ae60
mov rax, qword [rbx + 0x118]
cmp byte [rax], 0
je 0x14015b1f0
lea rcx, [rbx + 8]
lea rdx, str.unexpected_END_OF_INPUT
call fcn.140029c40
mov eax, 1
jmp 0x14015b1f2
mov ecx, eax
call fcn.14015a910
mov r8, rax
lea rcx, [rbx + 8]
lea rdx, str._s_unexpected__ident_wanted_
call fcn.140029c40
mov eax, 1
jmp 0x14015b1f2
mov ecx, eax
call fcn.14015a910
mov r8, rax
lea rcx, [rbx + 8]
lea rdx, str._s_unexpected__ident_or_string_wanted_
call fcn.140029c40
mov eax, 1
jmp 0x14015b1f2
mov ecx, edi
call fcn.14015a910
mov r8, rax
lea rcx, [rbx + 8]
lea rdx, [0x140274d10]
call fcn.140029c40
mov eax, 1
jmp 0x14015b1f2
mov ecx, eax
call fcn.14015a910
mov r8, rax
lea rcx, [rbx + 8]
lea rdx, str._s_unexpected__ident_or___wanted_
call fcn.140029c40
mov eax, 1
jmp 0x14015b1f2
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
add rsp, 0x40
pop r15
pop r14
pop rbp
ret