Function at 0x140008a86
Capabilities:
Parse credit card information

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rdi, qword [rcx + 0xa0]
mov rax, qword [rcx + 0xb0]
lea rcx, [rax + 1]
mov qword [rsi + 0xb0], rcx
mov bl, byte [rax]
mov rcx, qword [rsi + 0xc0]
mov edx, ebx
mov r8b, 0x20
call method.std::ctype_char_.narrow_char__char__const
movsx edx, al
mov rcx, rdi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x140008bda
cmp bl, 0x5c
jne 0x140008b2e
mov rax, qword [rsi + 0xb0]
cmp rax, qword [rsi + 0xb8]
jne 0x140008af6
lea rdx, str.Unexpected_end_of_regex_when_escaping.
mov ecx, 2
call method.std.__throw_regex_error_std::regex_constants::error_type__char_const_
movzx eax, word [rsi + 0x8c]
test ax, 0x120
je 0x140008c04
mov rax, qword [rsi + 0xb0]
mov cl, byte [rax]
lea edx, [rcx - 0x28]
cmp dl, 2
jb 0x140008b21
cmp cl, 0x7b
jne 0x140008c04
lea rcx, [rax + 1]
mov qword [rsi + 0xb0], rcx
mov bl, byte [rax]
cmp bl, 0x7d
je 0x140008bda
cmp bl, 0x29
je 0x140008caf
cmp bl, 0x5b
je 0x140008c2b
cmp bl, 0x5d
je 0x140008bda
cmp bl, 0x7b
je 0x140008c6b
cmp bl, 0x28
jne 0x140008c84
mov ecx, dword [rsi + 0x8c]
test cl, 0x10
je 0x140008cbe
mov rax, qword [rsi + 0xb0]
cmp byte [rax], 0x3f
jne 0x140008cbe
inc rax
mov qword [rsi + 0xb0], rax
cmp rax, qword [rsi + 0xb8]
jne 0x140008bae
lea rdx, str.Unexpected_end_of_regex_when_in_an_open_parenthesis.
mov ecx, 5
call method.std.__throw_regex_error_std::regex_constants::error_type__char_const_
mov rax, qword [rsi + 0xb0]
mov cl, byte [rax]
cmp cl, 0x21
je 0x140008cfd
cmp cl, 0x3d
je 0x140008d28
cmp cl, 0x3a
jne 0x140008d53
inc rax
mov qword [rsi + 0xb0], rax
jmp 0x140008cee
mov dword [rsi + 0x90], 1
add rsi, 0xc8
mov edx, 1
mov rcx, rsi
mov r8d, ebx
call fcn.1400017f0
nop
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rax, qword [rsi + 0xe8]
add rsi, qword [rsi + 0xf0]
test al, 1
je 0x140008c1e
mov rcx, qword [rsi]
mov rax, qword [rcx + rax - 1]
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp rax
mov dword [rsi + 0x88], 2
mov byte [rsi + 0xa8], 1
mov rax, qword [rsi + 0xb0]
cmp rax, qword [rsi + 0xb8]
je 0x140008cd2
cmp byte [rax], 0x5e
jne 0x140008cd2
mov dword [rsi + 0x90], 0xa
inc rax
mov qword [rsi + 0xb0], rax
jmp 0x140008bfb
mov dword [rsi + 0x88], 1
mov dword [rsi + 0x90], 0xc
jmp 0x140008bfb
mov rcx, qword [rsi + 0xc0]
mov edx, ebx
xor r8d, r8d
call method.std::ctype_char_.narrow_char__char__const
lea rcx, [rsi + 4]
jmp 0x140008ca3
cmp dl, al
je 0x140008ce1
add rcx, 8
mov dl, byte [rcx - 4]
test dl, dl
jne 0x140008c9b
jmp 0x140008bfb
mov dword [rsi + 0x90], 8
jmp 0x140008bfb
test cl, 2
jne 0x140008cee
mov dword [rsi + 0x90], 5
jmp 0x140008bfb
mov dword [rsi + 0x90], 9
jmp 0x140008bfb
mov eax, dword [rcx]
mov dword [rsi + 0x90], eax
jmp 0x140008bfb
mov dword [rsi + 0x90], 6
jmp 0x140008bfb
inc rax
mov qword [rsi + 0xb0], rax
mov dword [rsi + 0x90], 7
add rsi, 0xc8
mov edx, 1
mov rcx, rsi
mov r8b, 0x6e
jmp 0x140008bf6
inc rax
mov qword [rsi + 0xb0], rax
mov dword [rsi + 0x90], 7
add rsi, 0xc8
mov edx, 1
mov rcx, rsi
mov r8b, 0x70
jmp 0x140008bf6
lea rdx, str.Invalid_special_open_parenthesis.
mov ecx, 5
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp method.std.__throw_regex_error_std::regex_constants::error_type__char_const_