Function at 0x1400f1be0
Capabilities:
Parse credit card information

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rax, qword [rcx + 0xb0]
mov rdi, qword [rcx + 0xc0]
lea rdx, [rax + 1]
mov qword [rcx + 0xb0], rdx
movzx ebp, byte [rax]
mov rbx, rcx
movsx edx, byte [rdi + rbp + 0x139]
mov rsi, rbp
test dl, dl
jne 0x1400f1c40
mov rax, qword [rdi]
lea rcx, [method.std::ctype_char_.do_narrow_char__char__const]
movsx edx, bpl
mov r9, qword [rax + 0x40]
mov eax, ebp
cmp r9, rcx
jne 0x1400f1eb0
cmp al, 0x20
je 0x1400f1c40
mov byte [rdi + rbp + 0x139], al
mov rcx, qword [rbx + 0xa0]
call sym.strchr
test rax, rax
je 0x1400f1e70
cmp sil, 0x5c
je 0x1400f1d30
cmp sil, 0x28
je 0x1400f1d08
cmp sil, 0x29
je 0x1400f1e58
cmp sil, 0x5b
je 0x1400f1ec8
cmp sil, 0x7b
je 0x1400f1e08
test sil, sil
je 0x1400f1f60
mov eax, esi
and eax, 0xffffffdf
cmp al, 0x5d
je 0x1400f1e70
mov rbp, qword [rbx + 0xc0]
movzx r12d, sil
mov rdi, rbx
movzx eax, byte [rbp + r12 + 0x139]
test al, al
jne 0x1400f1cda
mov rax, qword [rbp]
lea rdx, [method.std::ctype_char_.do_narrow_char__char__const]
mov rax, qword [rax + 0x40]
cmp rax, rdx
jne 0x1400f1f20
mov byte [rbp + r12 + 0x139], sil
mov eax, esi
movzx edx, byte [rbx]
test dl, dl
jne 0x1400f1cf4
jmp 0x1400f1d23
movzx edx, byte [rdi + 8]
add rdi, 8
test dl, dl
je 0x1400f1d23
cmp dl, al
jne 0x1400f1ce8
mov eax, dword [rdi + 4]
mov dword [rbx + 0x90], eax
jmp 0x1400f1d23
mov eax, dword [rbx + 0x8c]
test al, 0x10
jne 0x1400f1d80
test al, 2
setne al
movzx eax, al
add eax, 5
mov dword [rbx + 0x90], eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rax, qword [rbx + 0xb0]
cmp rax, qword [rbx + 0xb8]
je 0x1400f1fec
test dword [rbx + 0x8c], 0x120
je 0x1400f1e28
movzx edx, byte [rax]
lea ecx, [rdx - 0x28]
cmp cl, 1
jbe 0x1400f1d68
cmp dl, 0x7b
jne 0x1400f1e28
lea rdx, [rax + 1]
mov qword [rbx + 0xb0], rdx
movzx esi, byte [rax]
jmp 0x1400f1c5f
mov rdx, qword [rbx + 0xb0]
cmp byte [rdx], 0x3f
jne 0x1400f1d12
lea rax, [rdx + 1]
mov qword [rbx + 0xb0], rax
cmp rax, qword [rbx + 0xb8]
je 0x1400f1fd8
movzx eax, byte [rdx + 1]
cmp al, 0x3a
je 0x1400f1f40
cmp al, 0x3d
je 0x1400f1f9b
cmp al, 0x21
jne 0x1400f1ffd
add rdx, 2
lea rcx, [rbx + 0xc8]
mov dword [rbx + 0x90], 7
mov r9d, 1
mov qword [rbx + 0xb0], rdx
xor edx, edx
mov dword [rsp + 0x20], 0x6e
mov r8, qword [rbx + 0xd0]
call fcn.140017af0
jmp 0x1400f1d23
mov dword [rbx + 0x88], 1
mov dword [rbx + 0x90], 0xc
jmp 0x1400f1d23
mov rax, qword [rbx + 0xe8]
add rbx, qword [rbx + 0xf0]
mov rcx, rbx
test al, 1
je 0x1400f1e45
mov rdx, qword [rbx]
mov rax, qword [rdx + rax - 1]
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp rax
mov dword [rbx + 0x90], 8
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
movsx esi, sil
lea rcx, [rbx + 0xc8]
mov r9d, 1
xor edx, edx
mov dword [rbx + 0x90], 1
mov dword [rsp + 0x20], esi
mov r8, qword [rbx + 0xd0]
call fcn.140017af0
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov r8d, 0x20
mov rcx, rdi
call r9
movsx edx, al
jmp 0x1400f1c35
mov byte [rbx + 0xa8], 1
mov rax, qword [rbx + 0xb0]
mov dword [rbx + 0x88], 2
cmp rax, qword [rbx + 0xb8]
je 0x1400f1eee
cmp byte [rax], 0x5e
je 0x1400f1f00
mov dword [rbx + 0x90], 9
jmp 0x1400f1d23
mov dword [rbx + 0x90], 0xa
add rax, 1
mov qword [rbx + 0xb0], rax
jmp 0x1400f1d23
xor r8d, r8d
movsx edx, sil
mov rcx, rbp
call rax
test al, al
je 0x1400f1cda
mov esi, eax
jmp 0x1400f1cd0
mov dword [rbx + 0x90], 6
add rdx, 2
mov qword [rbx + 0xb0], rdx
jmp 0x1400f1d23
test byte [rbx + 0x8c], 0x10
je 0x1400f1fe2
lea rcx, [rbx + 0xc8]
mov r9d, 1
xor edx, edx
mov dword [rbx + 0x90], 1
mov dword [rsp + 0x20], 0
mov r8, qword [rbx + 0xd0]
call fcn.140017af0
jmp 0x1400f1d23
add rdx, 2
lea rcx, [rbx + 0xc8]
mov dword [rbx + 0x90], 7
mov r9d, 1
mov qword [rbx + 0xb0], rdx
xor edx, edx
mov dword [rsp + 0x20], 0x70
mov r8, qword [rbx + 0xd0]
call fcn.140017af0
jmp 0x1400f1d23
mov ecx, 5
call sym.std::__throw_regex_error_std::regex_constants::error_type_
mov ecx, 0xd
call sym.std::__throw_regex_error_std::regex_constants::error_type_
lea rdx, str.Invalid_escape_at_end_of_regular_expression
mov ecx, 2
call method.std.__throw_regex_error_std::regex_constants::error_type__char_const_
lea rdx, str.Invalid___...__zero_width_assertion_in_regular_expression
mov ecx, 5
call method.std.__throw_regex_error_std::regex_constants::error_type__char_const_
nop
nop