Function at 0x14013caec
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 [0x1402b1790]
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 [0x1402b1790], rsi
cmp cl, r8b
jg 0x14013cd78
je 0x14013d2a9
test cl, cl
je 0x14013cd5a
cmp cl, 0x2f
jle 0x14013ce8d
cmp cl, 0x31
jle 0x14013cc1e
cmp cl, 0x39
jg 0x14013ce8d
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.140138934
cmp qword [rsp + 0x20], r15
je 0x14013cbef
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.140138514
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp - 0x20]
call fcn.140138b68
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 0x14013ccd9
lea rcx, [rbp + 0x30]
call fcn.14013e4d8
mov dl, 0x3c
mov qword [rbp - 0x80], r15
lea rcx, [rbp - 0x80]
mov dword [rbp - 0x78], r15d
mov rbx, rax
call fcn.140139f48
mov r8, rbx
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x80]
call fcn.140138b68
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140138cac
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14013cc94
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140047660.0]
cmp al, 0x3e
jne 0x14013cc94
mov dl, 0x20
lea rcx, [rsp + 0x30]
call fcn.140138cf0
mov dl, 0x3e
lea rcx, [rsp + 0x30]
call fcn.140138cf0
mov ebx, 1
test r14, r14
je 0x14013ccad
mov byte [r14], bl
mov rsi, qword [0x1402b1790]
cmp byte [rsi], r15b
jne 0x14013ccca
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
mov eax, dword [rsp + 0x38]
jmp 0x14013cbfb
add rsi, rbx
mov rbx, qword [rsp + 0x30]
mov qword [0x1402b1790], rsi
xor r8d, r8d
lea rcx, [rbp + 0x40]
xor edx, edx
call fcn.14013f608
mov rcx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rsp + 0x20], rcx
mov dword [rsp + 0x28], eax
mov qword [0x1402b1790], rsi
test rcx, rcx
je 0x14013cd3d
cmp byte [rsi - 1], 0x31
jne 0x14013cd3d
mov dl, 0x7e
mov qword [rbp - 0x70], r15
lea rcx, [rbp - 0x70]
mov dword [rbp - 0x68], r15d
call fcn.140139f48
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x70]
call fcn.140138b68
mov rax, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov eax, dword [rbp - 0x48]
mov dword [rsp + 0x28], eax
test rbx, rbx
je 0x14013cbef
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.140138cac
jmp 0x14013cbef
lea rax, [rsi - 1]
mov qword [0x1402b1790], rax
lea rax, [0x1402459f0]
mov qword [rdi], rax
mov dword [rdi + 8], r15d
jmp 0x14013cbfe
cmp cl, 0x42
je 0x14013d2a4
jle 0x14013ce8d
cmp cl, 0x5a
jle 0x14013d2a9
cmp cl, 0x5f
jne 0x14013ce8d
movsx ecx, byte [rsi]
inc rsi
mov qword [0x1402b1790], rsi
cmp ecx, 0x4f
jg 0x14013cec0
cmp ecx, 0x44
jge 0x14013d28c
cmp ecx, 0x39
jg 0x14013ce46
je 0x14013ce0f
test ecx, ecx
je 0x14013cd5a
cmp ecx, 0x2f
jle 0x14013ce8d
cmp ecx, 0x36
jle 0x14013ce03
cmp ecx, 0x38
jg 0x14013ce8d
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.140138514
jmp 0x14013cbfe
movsx eax, byte [rsi - 1]
sub eax, 0xe
jmp 0x14013cb7e
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.140138514
mov ecx, dword [rbp - 0x38]
mov rax, qword [rbp - 0x40]
bts ecx, 0xf
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x14013cbfe
cmp ecx, 0x3f
je 0x14013ce75
cmp ecx, 0x40
jle 0x14013ce8d
cmp ecx, 0x42
jle 0x14013d28c
xor edx, edx
lea rcx, [rbp - 0x30]
lea r8d, [rdx + 1]
call fcn.14013e378
mov ecx, dword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
bts ecx, 0xc
jmp 0x14013ce3b
mov al, byte [rsi]
inc rsi
mov qword [0x1402b1790], rsi
test al, al
je 0x14013cd5a
cmp al, 0x30
je 0x14013ce9d
mov dword [rdi + 8], r15d
mov byte [rdi + 8], 2
mov qword [rdi], r15
jmp 0x14013cbfe
xor r8d, r8d
lea rcx, [rsp + 0x40]
lea edx, [r8 + 1]
call fcn.14013e378
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
bts ecx, 0xc
jmp 0x14013ce3b
cmp ecx, 0x54
jg 0x14013d104
cmp ecx, 0x53
jge 0x14013d28c
sub ecx, 0x50
je 0x14013d0ac
sub ecx, 1
je 0x14013cb99
cmp ecx, 1
jne 0x14013ce8d
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.140138934
mov rax, qword [0x1402b1790]
movsx ecx, byte [rax]
test cl, cl
jne 0x14013cf31
mov r8d, 1
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.140138bec
jmp 0x14013cbfe
mov eax, ecx
add eax, 0xffffffd0
js 0x14013ce8d
cmp eax, 5
jae 0x14013ce8d
lfence
movsxd rdx, eax
lea rcx, [rsp + 0x50]
shl rdx, 4
lea rax, str._Type_Descriptor
add rdx, rax
call fcn.140138934
mov rax, qword [0x1402b1790]
mov cl, byte [rax]
inc rax
mov qword [0x1402b1790], rax
cmp cl, 0x30
je 0x14013d065
cmp cl, 0x31
je 0x14013cf97
jle 0x14013cf8f
cmp cl, 0x34
jle 0x14013d0fd
dec rax
jmp 0x14013cd5e
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.140138b68
lea rcx, [rbp + 0x50]
call fcn.14013e0d4
mov r8b, 0x2c
lea rdx, [rbp + 0x60]
mov rcx, rax
call fcn.140138b94
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140138cac
lea rcx, [rbp + 0x70]
call fcn.14013e0d4
mov r8b, 0x2c
lea rdx, [rbp + 0x80]
mov rcx, rax
call fcn.140138b94
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140138cac
lea rcx, [rbp + 0x90]
call fcn.14013e0d4
mov r8b, 0x2c
lea rdx, [rbp + 0xa0]
mov rcx, rax
call fcn.140138b94
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140138cac
xor edx, edx
lea rcx, [rbp + 0xb0]
call fcn.14013bb0c
mov r8b, 0x29
lea rdx, [rbp + 0xc0]
mov rcx, rax
call fcn.140138b94
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140138cac
mov r8b, 0x27
lea rcx, [rsp + 0x60]
mov rdx, rdi
call fcn.140138b94
jmp 0x14013cbfe
xor edx, edx
lea rcx, [rbp]
call fcn.14013b708
mov r8b, 0x20
lea rdx, [rbp + 0xd0]
lea rcx, [rbp]
call fcn.140138b94
lea r8, [rsp + 0x20]
mov rcx, rax
lea rdx, [rbp + 0xe0]
call fcn.140138b68
mov rcx, rax
mov rdx, rdi
lea r8, [rsp + 0x50]
call fcn.140138b68
jmp 0x14013cbfe
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.140138934
xor r8d, r8d
lea rcx, [rbp + 0xf0]
xor edx, edx
call fcn.14013caec
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], edx
test rcx, rcx
je 0x14013d0fd
bt edx, 0xa
jb 0x14013ce8d
lea rcx, [rsp + 0x20]
jmp 0x14013d09a
cmp ecx, 0x56
jle 0x14013d298
cmp ecx, 0x57
jle 0x14013ce8d
cmp ecx, 0x59
jle 0x14013d28c
cmp ecx, 0x5f
jne 0x14013ce8d
mov al, byte [rsi]
inc rsi
mov qword [0x1402b1790], rsi
cmp al, r8b
jl 0x14013ce8d
cmp al, 0x44
jle 0x14013d15e
cmp al, 0x46
jle 0x14013d1d7
cmp al, 0x4a
jle 0x14013d15e
cmp al, 0x4b
je 0x14013d16a
sub al, 0x4c
lea ebx, [rcx - 0x5e]
cmp al, bl
ja 0x14013ce8d
movsx eax, byte [rsi - 1]
add eax, 4
jmp 0x14013cde5
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.140138514
mov ebx, 1
jmp 0x14013d1ac
cmp cl, 0x40
je 0x14013d1be
add rax, rbx
mov dl, cl
lea rcx, [rbp - 0x60]
mov qword [0x1402b1790], rax
call fcn.140138cf0
mov rax, qword [0x1402b1790]
mov cl, byte [rax]
test cl, cl
jne 0x14013d192
cmp cl, 0x40
jne 0x14013d1c8
add rax, rbx
mov qword [0x1402b1790], rax
mov rax, qword [rbp - 0x60]
mov qword [rdi], rax
mov eax, dword [rbp - 0x58]
jmp 0x14013cbfb
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.140138514
mov rax, qword [0x1402b1790]
cmp byte [rax], 0x3f
jne 0x14013d236
lea rcx, [rbp + 0x100]
call fcn.14013b81c
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140138cac
mov rax, qword [0x1402b1790]
cmp byte [rax], 0x40
jne 0x14013d24f
inc rax
mov qword [0x1402b1790], rax
jmp 0x14013d24f
lea rcx, [rbp + 0x110]
call fcn.14013e48c
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140138cac
lea rax, [0x140245520]
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.140138c30
mov rax, qword [rsp + 0x70]
mov qword [rdi], rax
mov eax, dword [rsp + 0x78]
jmp 0x14013cbfb
movsx eax, byte [rsi - 1]
sub eax, 0x15
jmp 0x14013cde5
movsx eax, byte [rsi - 1]
sub eax, 0x15
jmp 0x14013cb7e
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.140138934
test ebx, ebx
je 0x14013cb99
cmp qword [rsp + 0x20], r15
je 0x14013cbef
bts dword [rsp + 0x28], 9
jmp 0x14013cbef