Function at 0x14012b6fc
Capabilities:
Parse credit card information

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x148]
sub rsp, 0x230
mov rax, qword [0x1401c5c00]
xor r15d, r15d
mov r14, r8
mov qword [rsp + 0x20], r15
mov rdi, rcx
mov dword [rsp + 0x28], r15d
mov r8b, 0x41
mov qword [rsp + 0x50], r15
mov cl, byte [rax]
lea rsi, [rax + 1]
mov dword [rsp + 0x58], r15d
mov ebx, r15d
mov qword [0x1401c5c00], rsi
cmp cl, r8b
jg 0x14012b988
je 0x14012beb9
test cl, cl
je 0x14012b96a
cmp cl, 0x2f
jle 0x14012ba9d
cmp cl, 0x31
jle 0x14012b82e
cmp cl, 0x39
jg 0x14012ba9d
movsx eax, byte [rsi - 1]
sub eax, 0x32
movsxd rdx, eax
lea rcx, [rsp + 0x20]
shl rdx, 4
lea rax, str._new
add rdx, rax
call fcn.140127b10
cmp qword [rsp + 0x20], r15
je 0x14012b7ff
lea rax, str.operator
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x20]
movaps xmm0, xmmword [rsp + 0x40]
lea rcx, [rbp + 0x120]
movdqa xmmword [rbp + 0x20], xmm0
call fcn.140127838
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp - 0x20]
call fcn.140127bac
mov rax, qword [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp - 0x18]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x20]
mov qword [rdi], rax
mov eax, dword [rsp + 0x28]
mov dword [rdi + 8], eax
lea r11, [rsp + 0x230]
mov rax, rdi
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], r15d
test dl, dl
je 0x14012b8e9
lea rcx, [rbp + 0x30]
call fcn.14012d008
mov dl, 0x3c
mov qword [rbp - 0x80], r15
lea rcx, [rbp - 0x80]
mov dword [rbp - 0x78], r15d
mov rbx, rax
call fcn.140128d9c
mov r8, rbx
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x80]
call fcn.140127bac
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140127cac
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14012b8a4
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400f8719.0]
cmp al, 0x3e
jne 0x14012b8a4
mov dl, 0x20
lea rcx, [rsp + 0x30]
call fcn.140127cf0
mov dl, 0x3e
lea rcx, [rsp + 0x30]
call fcn.140127cf0
mov ebx, 1
test r14, r14
je 0x14012b8bd
mov byte [r14], bl
mov rsi, qword [0x1401c5c00]
cmp byte [rsi], r15b
jne 0x14012b8da
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
mov eax, dword [rsp + 0x38]
jmp 0x14012b80b
add rsi, rbx
mov rbx, qword [rsp + 0x30]
mov qword [0x1401c5c00], rsi
xor r8d, r8d
lea rcx, [rbp + 0x40]
xor edx, edx
call fcn.14012e0e0
mov rcx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], eax
mov qword [0x1401c5c00], rsi
test rcx, rcx
je 0x14012b94d
cmp byte [rsi - 1], 0x31
jne 0x14012b94d
mov dl, 0x7e
mov qword [rbp - 0x70], r15
lea rcx, [rbp - 0x70]
mov dword [rbp - 0x68], r15d
call fcn.140128d9c
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.140127bac
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp - 0x48]
mov dword [rsp + 0x28], eax
test rbx, rbx
je 0x14012b7ff
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.140127cac
jmp 0x14012b7ff
lea rax, [rsi - 1]
mov qword [0x1401c5c00], rax
lea rax, [0x140175620]
mov qword [rdi], rax
mov dword [rdi + 8], r15d
jmp 0x14012b80e
cmp cl, 0x42
je 0x14012beb4
jle 0x14012ba9d
cmp cl, 0x5a
jle 0x14012beb9
cmp cl, 0x5f
jne 0x14012ba9d
movsx ecx, byte [rsi]
inc rsi
mov qword [0x1401c5c00], rsi
cmp ecx, 0x4f
jg 0x14012bad0
cmp ecx, 0x44
jge 0x14012be9c
cmp ecx, 0x39
jg 0x14012ba56
je 0x14012ba1f
test ecx, ecx
je 0x14012b96a
cmp ecx, 0x2f
jle 0x14012ba9d
cmp ecx, 0x36
jle 0x14012ba13
cmp ecx, 0x38
jg 0x14012ba9d
movsx eax, byte [rsi - 1]
sub eax, 0xe
movsxd rdx, eax
mov rcx, rdi
shl rdx, 4
lea rax, str._new
add rdx, rax
call fcn.140127838
jmp 0x14012b80e
movsx eax, byte [rsi - 1]
sub eax, 0xe
jmp 0x14012b78e
movsx eax, byte [rsi - 1]
lea rcx, [rbp - 0x40]
sub eax, 0xe
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140127838
mov ecx, dword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
bts ecx, 0xf
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x14012b80e
cmp ecx, 0x3f
je 0x14012ba85
cmp ecx, 0x40
jle 0x14012ba9d
cmp ecx, 0x42
jle 0x14012be9c
xor edx, edx
lea rcx, [rbp - 0x30]
lea r8d, [rdx + 1]
call fcn.14012ced8
mov ecx, dword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
bts ecx, 0xc
jmp 0x14012ba4b
mov al, byte [rsi]
inc rsi
mov qword [0x1401c5c00], rsi
test al, al
je 0x14012b96a
cmp al, 0x30
je 0x14012baad
mov dword [rdi + 8], r15d
mov byte [rdi + 8], 2
mov qword [rdi], r15
jmp 0x14012b80e
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 1]
call fcn.14012ced8
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
bts ecx, 0xc
jmp 0x14012ba4b
cmp ecx, 0x54
jg 0x14012bd14
cmp ecx, 0x53
jge 0x14012be9c
sub ecx, 0x50
je 0x14012bcbc
sub ecx, 1
je 0x14012b7a9
cmp ecx, 1
jne 0x14012ba9d
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x20]
sub eax, 0x15
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140127b10
mov rax, qword [0x1401c5c00]
movsx ecx, byte [rax]
test cl, cl
jne 0x14012bb41
mov r8d, 1
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.140127c04
jmp 0x14012b80e
mov eax, ecx
add eax, 0xffffffd0
js 0x14012ba9d
cmp eax, 5
jae 0x14012ba9d
lfence
movsxd rdx, eax
lea rcx, [rsp + 0x50]
shl rdx, 4
lea rax, str._Type_Descriptor
add rdx, rax
call fcn.140127b10
mov rax, qword [0x1401c5c00]
mov cl, byte [rax]
inc rax
mov qword [0x1401c5c00], rax
cmp cl, 0x30
je 0x14012bc75
cmp cl, 0x31
je 0x14012bba7
jle 0x14012bb9f
cmp cl, 0x34
jle 0x14012bd0d
dec rax
jmp 0x14012b96e
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.140127bac
lea rcx, [rbp + 0x50]
call fcn.14012cc90
mov r8b, 0x2c
lea rdx, [rbp + 0x60]
mov rcx, rax
call fcn.140127bd8
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140127cac
lea rcx, [rbp + 0x70]
call fcn.14012cc90
mov r8b, 0x2c
lea rdx, [rbp + 0x80]
mov rcx, rax
call fcn.140127bd8
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140127cac
lea rcx, [rbp + 0x90]
call fcn.14012cc90
mov r8b, 0x2c
lea rdx, [rbp + 0xa0]
mov rcx, rax
call fcn.140127bd8
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140127cac
xor edx, edx
lea rcx, [rbp + 0xb0]
call fcn.14012a788
mov r8b, 0x29
lea rdx, [rbp + 0xc0]
mov rcx, rax
call fcn.140127bd8
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140127cac
mov r8b, 0x27
lea rcx, [rsp + 0x60]
mov rdx, rdi
call fcn.140127bd8
jmp 0x14012b80e
xor edx, edx
lea rcx, [rbp]
call fcn.14012a384
mov r8b, 0x20
lea rdx, [rbp + 0xd0]
lea rcx, [rbp]
call fcn.140127bd8
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp + 0xe0]
call fcn.140127bac
mov rcx, rax
mov rdx, rdi
lea r8, [rsp + 0x50]
call fcn.140127bac
jmp 0x14012b80e
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x20]
sub eax, 0x15
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140127b10
xor r8d, r8d
lea rcx, [rbp + 0xf0]
xor edx, edx
call fcn.14012b6fc
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], edx
test rcx, rcx
je 0x14012bd0d
bt edx, 0xa
jb 0x14012ba9d
lea rcx, [rsp + 0x20]
jmp 0x14012bcaa
cmp ecx, 0x56
jle 0x14012bea8
cmp ecx, 0x57
jle 0x14012ba9d
cmp ecx, 0x59
jle 0x14012be9c
cmp ecx, 0x5f
jne 0x14012ba9d
mov al, byte [rsi]
inc rsi
mov qword [0x1401c5c00], rsi
cmp al, r8b
jl 0x14012ba9d
cmp al, 0x44
jle 0x14012bd6e
cmp al, 0x46
jle 0x14012bde7
cmp al, 0x4a
jle 0x14012bd6e
cmp al, 0x4b
je 0x14012bd7a
sub al, 0x4c
lea ebx, [rcx - 0x5e]
cmp al, bl
ja 0x14012ba9d
movsx eax, byte [rsi - 1]
add eax, 4
jmp 0x14012b9f5
movsx eax, byte [rsi - 1]
lea rcx, [rbp - 0x60]
add eax, 4
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140127838
mov ebx, 1
jmp 0x14012bdbc
cmp cl, 0x40
je 0x14012bdce
add rax, rbx
mov dl, cl
lea rcx, [rbp - 0x60]
mov qword [0x1401c5c00], rax
call fcn.140127cf0
mov rax, qword [0x1401c5c00]
mov cl, byte [rax]
test cl, cl
jne 0x14012bda2
cmp cl, 0x40
jne 0x14012bdd8
add rax, rbx
mov qword [0x1401c5c00], rax
mov rax, qword [rbp - 0x60]
mov qword [rdi], rax
mov eax, dword [rbp - 0x58]
jmp 0x14012b80b
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x70]
add eax, 4
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140127838
mov rax, qword [0x1401c5c00]
cmp byte [rax], 0x3f
jne 0x14012be46
lea rcx, [rbp + 0x100]
call fcn.14012a498
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140127cac
mov rax, qword [0x1401c5c00]
cmp byte [rax], 0x40
jne 0x14012be5f
inc rax
mov qword [0x1401c5c00], rax
jmp 0x14012be5f
lea rcx, [rbp + 0x110]
call fcn.14012cfbc
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140127cac
lea rax, [0x140175170]
mov dword [rsp + 0x48], 2
mov qword [rsp + 0x40], rax
lea rdx, [rbp + 0x10]
movaps xmm0, xmmword [rsp + 0x40]
lea rcx, [rsp + 0x70]
movdqa xmmword [rbp + 0x10], xmm0
call fcn.140127c30
mov rax, qword [rsp + 0x70]
mov qword [rdi], rax
mov eax, dword [rsp + 0x78]
jmp 0x14012b80b
movsx eax, byte [rsi - 1]
sub eax, 0x15
jmp 0x14012b9f5
movsx eax, byte [rsi - 1]
sub eax, 0x15
jmp 0x14012b78e
mov ebx, 1
movsx eax, byte [rsi - 1]
lea rcx, [rsp + 0x20]
sub eax, 0x39
movsxd rdx, eax
lea rax, str._new
shl rdx, 4
add rdx, rax
call fcn.140127b10
test ebx, ebx
je 0x14012b7a9
cmp qword [rsp + 0x20], r15
je 0x14012b7ff
bts dword [rsp + 0x28], 9
jmp 0x14012b7ff