Function at 0x1400d5c20
Capabilities:
Parse credit card information

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rcx, [rax + 1]
mov rdx, qword [rbp + 0x10]
mov qword [rdx + 0xb0], rcx
movzx eax, byte [rax]
mov byte [rbp - 1], al
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xc0]
movsx edx, byte [rbp - 1]
mov r8d, 0x20
mov rcx, rax
call dbg.std::ctype<char>::narrow(char, char) const
movsx edx, al
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xa0]
mov rcx, rax
call sym.strchr
test rax, rax
sete al
test al, al
je 0x1400d5cba
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 1
mov rax, qword [rbp + 0x10]
add rax, 0xc8
movsx edx, byte [rbp - 1]
mov r8d, edx
mov edx, 1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.assign_unsigned_long_long__char_
jmp 0x1400d6183
cmp byte [rbp - 1], 0x5c
jne 0x1400d5dd8
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 0xb0]
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb8]
cmp rdx, rax
jne 0x1400d5cf3
lea rax, str.Invalid_escape_at_end_of_regular_expression
mov rdx, rax
mov ecx, 2
call dbg.std::__throw_regex_error(std::regex_constants::error_type, char const*)
mov rax, qword [rbp + 0x10]
mov rcx, rax
call dbg.std::__detail::_ScannerBase::_M_is_basic() const
xor eax, 1
test al, al
jne 0x1400d5d3c
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x28
je 0x1400d5d43
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x29
je 0x1400d5d43
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x7b
je 0x1400d5d43
mov eax, 1
jmp 0x1400d5d48
mov eax, 0
test al, al
je 0x1400d5db8
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xe8]
and eax, 1
test rax, rax
je 0x1400d5d8e
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xf0]
mov rdx, rax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov rdx, qword [rax]
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xe8]
sub rax, 1
add rax, rdx
mov rax, qword [rax]
jmp 0x1400d5d99
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xe8]
mov rdx, qword [rbp + 0x10]
mov rdx, qword [rdx + 0xf0]
mov rcx, rdx
mov rdx, qword [rbp + 0x10]
add rdx, rcx
mov rcx, rdx
call rax
jmp 0x1400d6183
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rcx, [rax + 1]
mov rdx, qword [rbp + 0x10]
mov qword [rdx + 0xb0], rcx
movzx eax, byte [rax]
mov byte [rbp - 1], al
cmp byte [rbp - 1], 0x28
jne 0x1400d5fac
mov rax, qword [rbp + 0x10]
mov rcx, rax
call dbg.std::__detail::_ScannerBase::_M_is_ecma() const
test al, al
je 0x1400d5e0b
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x3f
jne 0x1400d5e0b
mov eax, 1
jmp 0x1400d5e10
mov eax, 0
test al, al
je 0x1400d5f67
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rdx, [rax + 1]
mov rax, qword [rbp + 0x10]
mov qword [rax + 0xb0], rdx
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 0xb0]
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb8]
cmp rdx, rax
sete al
test al, al
je 0x1400d5e5c
mov ecx, 5
call method.std.__throw_regex_error_std::regex_constants::error_type_
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x3a
jne 0x1400d5e9b
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rdx, [rax + 1]
mov rax, qword [rbp + 0x10]
mov qword [rax + 0xb0], rdx
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 6
jmp 0x1400d6183
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x3d
jne 0x1400d5ef7
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rdx, [rax + 1]
mov rax, qword [rbp + 0x10]
mov qword [rax + 0xb0], rdx
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 7
mov rax, qword [rbp + 0x10]
add rax, 0xc8
mov r8d, 0x70
mov edx, 1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.assign_unsigned_long_long__char_
jmp 0x1400d6183
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x21
jne 0x1400d5f53
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rdx, [rax + 1]
mov rax, qword [rbp + 0x10]
mov qword [rax + 0xb0], rdx
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 7
mov rax, qword [rbp + 0x10]
add rax, 0xc8
mov r8d, 0x6e
mov edx, 1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.assign_unsigned_long_long__char_
jmp 0x1400d6183
lea rax, str.Invalid___...__zero_width_assertion_in_regular_expression
mov rdx, rax
mov ecx, 5
call dbg.std::__throw_regex_error(std::regex_constants::error_type, char const*)
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x8c]
mov edx, 2
mov ecx, eax
call dbg.std::regex_constants::operator&(std::regex_constants::syntax_option_type, std::regex_constants::syntax_option_type)
test eax, eax
setne al
test al, al
je 0x1400d5f99
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 6
jmp 0x1400d6183
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 5
jmp 0x1400d6183
cmp byte [rbp - 1], 0x29
jne 0x1400d5fc5
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 8
jmp 0x1400d6183
cmp byte [rbp - 1], 0x5b
jne 0x1400d6055
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x88], 2
mov rax, qword [rbp + 0x10]
mov byte [rax + 0xa8], 1
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax + 0xb0]
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb8]
cmp rdx, rax
je 0x1400d6042
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
movzx eax, byte [rax]
cmp al, 0x5e
jne 0x1400d6042
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 0xa
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xb0]
lea rdx, [rax + 1]
mov rax, qword [rbp + 0x10]
mov qword [rax + 0xb0], rdx
jmp 0x1400d6183
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 9
jmp 0x1400d6183
cmp byte [rbp - 1], 0x7b
jne 0x1400d607c
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x88], 1
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 0xc
jmp 0x1400d6183
cmp byte [rbp - 1], 0
sete al
movzx eax, al
test eax, eax
je 0x1400d60d8
mov rax, qword [rbp + 0x10]
mov rcx, rax
call dbg.std::__detail::_ScannerBase::_M_is_ecma() const
xor eax, 1
test al, al
je 0x1400d60a7
mov ecx, 0xd
call method.std.__throw_regex_error_std::regex_constants::error_type_
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 1
mov rax, qword [rbp + 0x10]
add rax, 0xc8
movsx edx, byte [rbp - 1]
mov r8d, edx
mov edx, 1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.assign_unsigned_long_long__char_
jmp 0x1400d6183
cmp byte [rbp - 1], 0x5d
je 0x1400d6156
cmp byte [rbp - 1], 0x7d
je 0x1400d6156
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0xc0]
movsx edx, byte [rbp - 1]
mov r8d, 0
mov rcx, rax
call dbg.std::ctype<char>::narrow(char, char) const
mov byte [rbp - 0x11], al
jmp 0x1400d6132
mov rax, qword [rbp - 0x10]
movzx eax, byte [rax]
cmp byte [rbp - 0x11], al
jne 0x1400d612d
mov rax, qword [rbp - 0x10]
mov edx, dword [rax + 4]
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], edx
jmp 0x1400d6183
add qword [rbp - 0x10], 8
mov rax, qword [rbp - 0x10]
movzx eax, byte [rax]
test al, al
jne 0x1400d610e
call dbg.__is_constant_evaluated
test al, al
je 0x1400d614d
mov eax, 1
jmp 0x1400d6152
mov eax, 0
test al, al
jmp 0x1400d6183
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x90], 1
mov rax, qword [rbp + 0x10]
add rax, 0xc8
movsx edx, byte [rbp - 1]
mov r8d, edx
mov edx, 1
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.assign_unsigned_long_long__char_
nop
add rsp, 0x40
pop rbp
ret