Function at 0x1400cc640
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rax, rcx
test r8, r8
je 0x1400cc794
mov cl, 1
cmp r8, 1
je 0x1400cc796
mov cl, 2
cmp r8, 2
je 0x1400cc796
mov cl, 3
cmp r8, 3
je 0x1400cc796
mov cl, 4
cmp r8, 4
je 0x1400cc796
mov cl, 5
cmp r8, 5
je 0x1400cc796
mov cl, 6
cmp r8, 6
je 0x1400cc796
mov cl, 7
cmp r8, 7
je 0x1400cc796
mov cl, 8
cmp r8, 8
je 0x1400cc796
mov cl, 9
cmp r8, 9
je 0x1400cc796
mov cl, 0xa
cmp r8, 0xa
je 0x1400cc796
mov cl, 0xb
cmp r8, 0xb
je 0x1400cc796
mov cl, 0xc
cmp r8, 0xc
je 0x1400cc796
mov cl, 0xd
cmp r8, 0xd
je 0x1400cc796
mov cl, 0xe
cmp r8, 0xe
je 0x1400cc796
mov cl, 0xf
cmp r8, 0xf
je 0x1400cc796
mov rsi, rax
movzx eax, byte [rdx]
mov byte [rsp + 0x36], al
movzx eax, byte [rdx + 1]
mov byte [rsp + 0x35], al
movzx eax, byte [rdx + 2]
mov byte [rsp + 0x34], al
movzx eax, byte [rdx + 3]
mov byte [rsp + 0x33], al
movzx eax, byte [rdx + 4]
mov byte [rsp + 0x32], al
movzx ecx, byte [rdx + 5]
movzx eax, cl
movzx ebp, byte [rdx + 6]
movzx r14d, byte [rdx + 7]
movzx r15d, byte [rdx + 8]
movzx r12d, byte [rdx + 9]
movzx r13d, byte [rdx + 0xa]
movzx r9d, byte [rdx + 0xb]
mov byte [rsp + 0x31], r9b
movzx r9d, byte [rdx + 0xc]
mov byte [rsp + 0x30], r9b
movzx r9d, byte [rdx + 0xd]
mov byte [rsp + 0x2f], r9b
movzx ebx, byte [rdx + 0xe]
movzx edi, byte [rdx + 0xf]
cmp eax, 1
je 0x1400cc7cd
cmp eax, 2
jne 0x1400cc81c
mov al, 1
jmp 0x1400cc7cf
xor ecx, ecx
mov qword [rax + 8], 1
mov byte [rax + 0x10], cl
mov byte [rax + 0x17], 0
mov word [rax + 0x15], 0
mov dword [rax + 0x11], 0
mov qword [rax], 1
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
cmp r8, 0x11
jb 0x1400cc7ee
mov r9, r8
and r9, 0xfffffffffffffffe
cmp r9, 0x10
jne 0x1400cc8ba
mov cx, 2
xor edx, edx
jmp 0x1400cc7f7
mov edx, 1
mov cx, 0x10
mov rax, rsi
mov qword [rsi + 8], rdx
mov word [rsi + 0x10], cx
mov word [rsi + 0x16], 0
mov dword [rsi + 0x12], 0
mov qword [rsi + 0x18], 1
jmp 0x1400cc8ae
mov byte [rsp + 0x37], cl
lea rax, [rsp + 0x37]
mov qword [rsp + 0x70], rax
lea rax, [sym.core::fmt::num::__impl_core::fmt::LowerHex_for_i8_::fmt::h34dfd63372e918bc]
mov qword [rsp + 0x78], rax
lea rax, str._b1e_
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xb8], 0
lea rax, [rsp + 0x70]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], 1
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x98]
call sym.alloc::fmt::format::format_inner::h0e07d0a0d4de9f27
mov rax, rsi
mov qword [rsi + 8], 5
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rsi + 0x10], xmm0
mov rcx, qword [rsp + 0x90]
mov qword [rsi + 0x20], rcx
mov qword [rsi], 1
jmp 0x1400cc7b9
movzx r10d, word [rdx + 0x10]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
mov dword [rsp + 0x54], r11d
cmp r8, 0x13
jb 0x1400cc913
cmp r9, 0x12
je 0x1400cc7e6
movzx r10d, word [rdx + 0x12]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
mov dword [rsp + 0x50], r11d
cmp r8, 0x15
jb 0x1400cc921
lea r10, [r8 - 0x14]
cmp r10, 4
jae 0x1400cc945
mov ecx, 4
xor edx, edx
jmp 0x1400cc92b
mov edx, 1
mov cx, 0x12
jmp 0x1400cc7f7
mov edx, 1
mov ecx, 0x14
mov rax, rsi
mov qword [rsi + 8], rdx
mov dword [rsi + 0x10], ecx
mov dword [rsi + 0x14], 0
mov qword [rsi + 0x18], r10
jmp 0x1400cc8ae
mov r10d, dword [rdx + 0x14]
mov r11d, r10d
bswap r11d
test al, al
cmove r11d, r10d
mov dword [rsp + 0x4c], r11d
cmp r8, 0x19
jb 0x1400cc9bd
lea r10, [r8 - 0x18]
cmp r10, 8
jb 0x1400cc9b4
mov r10, qword [rdx + 0x18]
mov r11, r10
bswap r11
test al, al
cmove r11, r10
mov qword [rsp + 0x68], r11
cmp r8, 0x21
jb 0x1400cc9d4
lea r10, [r8 - 0x20]
cmp r10, 8
jb 0x1400cc9b4
mov r10, qword [rdx + 0x20]
mov r11, r10
bswap r11
test al, al
cmove r11, r10
mov qword [rsp + 0x60], r11
cmp r8, 0x29
jb 0x1400cc9dd
lea r10, [r8 - 0x28]
cmp r10, 8
jae 0x1400cc9e6
movaps xmm0, xmmword [0x1401b2710]
jmp 0x1400cc9c4
movaps xmm0, xmmword [0x1401b2700]
mov rax, rsi
movups xmmword [rsi + 8], xmm0
mov qword [rsi + 0x18], r10
jmp 0x1400cc8ae
movaps xmm0, xmmword [0x1401b2720]
jmp 0x1400cc9c4
movaps xmm0, xmmword [0x1401b2730]
jmp 0x1400cc9c4
mov r10, qword [rdx + 0x28]
mov r11, r10
bswap r11
test al, al
cmove r11, r10
mov qword [rsp + 0x58], r11
cmp r8, 0x31
jb 0x1400ccbfe
lea r10, [r8 - 0x30]
cmp r10, 4
jb 0x1400cc90a
mov r10d, dword [rdx + 0x30]
mov r11d, r10d
bswap r11d
test al, al
cmove r11d, r10d
mov dword [rsp + 0x48], r11d
cmp r8, 0x35
jb 0x1400ccc0d
cmp r9, 0x34
je 0x1400cc7e6
movzx r10d, word [rdx + 0x34]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
mov dword [rsp + 0x44], r11d
cmp r8, 0x37
jb 0x1400ccc1b
cmp r9, 0x36
je 0x1400cc7e6
movzx r10d, word [rdx + 0x36]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
mov dword [rsp + 0x40], r11d
cmp r8, 0x39
jb 0x1400ccc29
cmp r9, 0x38
je 0x1400cc7e6
movzx r10d, word [rdx + 0x38]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
mov dword [rsp + 0x3c], r11d
cmp r8, 0x3b
jb 0x1400ccc37
cmp r9, 0x3a
je 0x1400cc7e6
movzx r10d, word [rdx + 0x3a]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
mov dword [rsp + 0x38], r11d
cmp r8, 0x3d
jb 0x1400ccc45
cmp r9, 0x3c
je 0x1400cc7e6
movzx r10d, word [rdx + 0x3c]
mov r11d, r10d
rol r11w, 8
test al, al
cmove r11d, r10d
cmp r8, 0x3f
jb 0x1400ccc53
cmp r9, 0x3e
je 0x1400cc7e6
movzx r8d, word [rdx + 0x3e]
mov edx, r8d
rol dx, 8
test al, al
cmove edx, r8d
mov rax, rsi
movzx r8d, byte [rsp + 0x36]
mov byte [rsi + 8], r8b
movzx r8d, byte [rsp + 0x35]
mov byte [rsi + 9], r8b
movzx r8d, byte [rsp + 0x34]
mov byte [rsi + 0xa], r8b
movzx r8d, byte [rsp + 0x33]
mov byte [rsi + 0xb], r8b
movzx r8d, byte [rsp + 0x32]
mov byte [rsi + 0xc], r8b
mov byte [rsi + 0xd], cl
mov byte [rsi + 0xe], bpl
mov byte [rsi + 0xf], r14b
mov byte [rsi + 0x10], r15b
mov byte [rsi + 0x11], r12b
mov byte [rsi + 0x12], r13b
movzx ecx, byte [rsp + 0x31]
mov byte [rsi + 0x13], cl
movzx ecx, byte [rsp + 0x30]
mov byte [rsi + 0x14], cl
movzx ecx, byte [rsp + 0x2f]
mov byte [rsi + 0x15], cl
mov byte [rsi + 0x16], bl
mov byte [rsi + 0x17], dil
mov ecx, dword [rsp + 0x54]
mov word [rsi + 0x18], cx
mov ecx, dword [rsp + 0x50]
mov word [rsi + 0x1a], cx
mov ecx, dword [rsp + 0x4c]
mov dword [rsi + 0x1c], ecx
mov rcx, qword [rsp + 0x68]
mov qword [rsi + 0x20], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsi + 0x28], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsi + 0x30], rcx
mov ecx, dword [rsp + 0x48]
mov dword [rsi + 0x38], ecx
mov ecx, dword [rsp + 0x44]
mov word [rsi + 0x3c], cx
mov ecx, dword [rsp + 0x40]
mov word [rsi + 0x3e], cx
mov ecx, dword [rsp + 0x3c]
mov word [rsi + 0x40], cx
mov ecx, dword [rsp + 0x38]
mov word [rsi + 0x42], cx
mov word [rsi + 0x44], r11w
mov word [rsi + 0x46], dx
mov qword [rsi], 0
jmp 0x1400cc7b9
mov edx, 1
mov ecx, 0x30
jmp 0x1400cc92b
mov edx, 1
mov cx, 0x34
jmp 0x1400cc7f7
mov edx, 1
mov cx, 0x36
jmp 0x1400cc7f7
mov edx, 1
mov cx, 0x38
jmp 0x1400cc7f7
mov cx, 0x3a
mov edx, 1
jmp 0x1400cc7f7
mov cx, 0x3c
mov edx, 1
jmp 0x1400cc7f7
mov cx, 0x3e
mov edx, 1
jmp 0x1400cc7f7