Function at 0x1400ff3f0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
pxor xmm0, xmm0
mov rbx, qword [rdx]
mov r13, qword [rdx + 8]
movups xmmword [rsp + 0x30], xmm0
mov rdi, rcx
mov rsi, rdx
mov r12d, r8d
mov byte [rsp + 0x38], 0x20
movups xmmword [rsp + 0x40], xmm0
cmp r13, rbx
je 0x1400ff5d8
movzx eax, byte [rbx]
cmp al, 0x7d
je 0x1400ff5d8
cmp al, 0x7b
je 0x1400ff4d0
mov rdx, r13
sub rdx, rbx
cmp rdx, 1
jle 0x1400ff4b0
movzx edx, byte [rbx + 1]
cmp dl, 0x3e
je 0x1400ff660
cmp dl, 0x5e
je 0x1400ff8c0
cmp dl, 0x3c
jne 0x1400ff840
mov edx, 1
mov byte [rsp + 0x38], al
add rbx, 2
movzx eax, byte [rsp + 0x30]
and eax, 0xfffffffc
or eax, edx
mov byte [rsp + 0x30], al
cmp r13, rbx
je 0x1400ff48f
cmp byte [rbx], 0x7d
jne 0x1400ff4d0
movdqu xmm3, xmmword [rsp + 0x30]
movdqu xmm4, xmmword [rsp + 0x40]
movups xmmword [rdi], xmm3
movups xmmword [rdi + 0x10], xmm4
jmp 0x1400ff5eb
cmp al, 0x3e
je 0x1400ff8b8
cmp al, 0x5e
je 0x1400ff8d0
cmp al, 0x3c
je 0x1400ff854
nop dword [rax + rax]
lea rbp, [rsp + 0x30]
mov rdx, rbx
mov r9, rsi
mov r8, r13
mov rcx, rbp
call method.std::__format::_Spec_char_._M_parse_width_char_const__char_const__std::basic_format_parse_context_char__
mov rbx, rax
cmp rax, r13
je 0x1400ff868
movzx r14d, byte [rax]
cmp r14b, 0x7d
je 0x1400ff868
mov eax, r12d
and eax, 0x80
mov dword [rsp + 0x2c], eax
je 0x1400ff518
cmp r14b, 0x2e
je 0x1400ff8e0
cmp r14b, 0x4c
je 0x1400ff620
mov rsi, r13
mov edx, 0x7d
mov rcx, rbx
sub rsi, rbx
mov r8, rsi
call sym.memchr
mov rbp, rax
test rax, rax
je 0x1400ff980
mov r8, rax
sub r8, rbx
cmp r8, 0xffffffffffffffff
je 0x1400ff980
test r8, r8
je 0x1400ff578
mov edx, 0x7b
mov rcx, rbx
call sym.memchr
test rax, rax
je 0x1400ff578
sub rax, rbx
cmp rax, 0xffffffffffffffff
jne 0x1400ff9bf
lea r15, [rbx + 1]
cmp r14b, 0x25
jne 0x1400ff9d7
mov byte [rsp + 0x2b], 1
xor r13d, r13d
lea r14, [0x1402e89c4]
nop dword [rax]
xor edx, edx
cmp rbp, r15
je 0x1400ff880
movzx eax, byte [r15]
lea rsi, [r15 + 1]
cmp al, 0x7a
jg case.0x1400ff5d0.10
cmp al, 0x50
jle 0x1400ff7f8
sub eax, 0x51
cmp al, 0x29
ja case.0x1400ff5d0.10
movzx eax, al
movsxd rax, dword [r14 + rax*4]
add rax, r14
jmp rax
movdqu xmm1, xmmword [rsp + 0x30]
movdqu xmm2, xmmword [rsp + 0x40]
movups xmmword [rdi], xmm1
movups xmmword [rdi + 0x10], xmm2
mov rax, rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r13d, 0x10
cmp dl, 0x45
je 0x1400ff614
cmp dl, 0x4f
jne 0x1400ff6d0
lea rcx, str.chrono_format_error:_invalid__modifier_in_chrono_specs
call method.std.__throw_format_error_char_const_
lea rax, [rbx + 1]
or byte [rsp + 0x30], 0x20
cmp r13, rax
jne 0x1400ff938
movdqu xmm4, xmmword [rsp + 0x30]
movdqu xmm5, xmmword [rsp + 0x40]
mov rbx, rax
movups xmmword [rdi], xmm4
movups xmmword [rdi + 0x10], xmm5
jmp 0x1400ff5eb
cmp dl, 0x45
je 0x1400ff614
mov r13d, 0xf
jmp 0x1400ff6d0
mov edx, 2
jmp 0x1400ff46f
mov r13d, 2
jmp case.0x1400ff5d0.29
cmp dl, 0x45
je 0x1400ff614
mov r13d, 4
jmp 0x1400ff6d0
cmp dl, 0x45
je 0x1400ff614
mov r13d, 8
jmp 0x1400ff6d0
mov r13d, pe_nt_image_headers64
jmp case.0x1400ff5d0.29
cmp dl, 0x45
je 0x1400ff614
mov r13d, 0x10
nop word [rax + rax]
mov eax, r12d
not eax
test eax, r13d
jne 0x1400ff9b3
mov r8, rbp
sub r8, rsi
je 0x1400ff7e8
mov edx, 0x25
mov rcx, rsi
call sym.memchr
test rax, rax
je 0x1400ff7e8
sub rax, rsi
je 0x1400ff7d8
cmp rax, 0xffffffffffffffff
je 0x1400ff7e8
lea r15, [rsi + rax + 1]
jmp 0x1400ff598
cmp al, 0x42
je case.0x1400ff5d0.17
cmp al, 0x43
jne 0x1400ff918
mov r13d, 1
cmp dl, 0x45
jne 0x1400ff60b
jmp 0x1400ff6d0
mov r13d, 0x10
cmp dl, 0x45
jne 0x1400ff60b
jmp 0x1400ff6d0
mov r13d, 0xf
cmp dl, 0x45
jne 0x1400ff60b
jmp 0x1400ff6d0
mov r13d, 0x1f
cmp dl, 0x45
jne 0x1400ff60b
jmp 0x1400ff6d0
mov eax, dword [rsp + 0x2c]
test eax, eax
mov eax, 0xf
cmove r13d, eax
jmp case.0x1400ff5d0.29
mov r13d, 0x20
cmp dl, 0x45
jne 0x1400ff60b
jmp 0x1400ff6d0
cmp dl, 0x45
je 0x1400ff614
mov r13d, 2
jmp 0x1400ff6d0
add r15, 2
jmp 0x1400ff598
mov byte [rsp + 0x2b], 0
mov r15, rbp
jmp 0x1400ff598
je case.0x1400ff5d0.10
cmp al, 0x43
jle 0x1400ff720
lea ecx, [rax - 0x44]
mov r8d, 1
shl r8, cl
test r8b, 0xd
jne case.0x1400ff5d0.22
test r8d, 0x230
jne case.0x1400ff5d0.2
test r8d, 0x802
jne 0x1400ff990
lea rcx, str.chrono_format_error:_invalid__specifier_in_chrono_specs
call method.std.__throw_format_error_char_const_
nop
cmp al, 0x3e
je 0x1400ff8b8
cmp al, 0x5e
je 0x1400ff8d0
cmp al, 0x3c
jne 0x1400ff48a
mov edx, 1
add rbx, 1
jmp 0x1400ff477
movdqu xmm5, xmmword [rsp + 0x30]
movups xmmword [rdi], xmm5
movdqu xmm5, xmmword [rsp + 0x40]
movups xmmword [rdi + 0x10], xmm5
jmp 0x1400ff5eb
test dl, dl
jne 0x1400ff9cb
cmp byte [rsp + 0x2b], 0
jne 0x1400ff9cb
movdqu xmm3, xmmword [rsp + 0x30]
mov rax, rbp
mov qword [rdi + 0x18], rbx
sub rax, rbx
mov rbx, rbp
mov qword [rdi + 0x10], rax
movups xmmword [rdi], xmm3
jmp 0x1400ff5eb
mov edx, 2
jmp 0x1400ff859
mov edx, 3
jmp 0x1400ff46f
mov edx, 3
jmp 0x1400ff859
mov rdx, rbx
mov r9, rsi
mov r8, r13
mov rcx, rbp
call method.std::__format::_Spec_char_._M_parse_precision_char_const__char_const__std::basic_format_parse_context_char____clone_.part.0_
mov rbx, rax
cmp r13, rax
jne 0x1400ff9a0
movdqu xmm4, xmmword [rsp + 0x30]
movdqu xmm1, xmmword [rsp + 0x40]
movups xmmword [rdi], xmm4
movups xmmword [rdi + 0x10], xmm1
jmp 0x1400ff5eb
cmp al, 0x25
je case.0x1400ff5d0.29
cmp al, 0x41
jne case.0x1400ff5d0.10
mov r13d, 8
jmp case.0x1400ff5d0.29
movzx r14d, byte [rbx + 1]
cmp r14b, 0x7d
je 0x1400ff632
mov rbx, rax
jmp 0x1400ff522
mov r13d, 0xf
jmp case.0x1400ff5d0.29
mov r13d, 0x20
jmp 0x1400ff6d0
mov r13d, 1
jmp 0x1400ff6d0
mov rbp, r13
mov r8, rsi
jmp 0x1400ff559
mov r15, rsi
mov edx, eax
jmp 0x1400ff59a
movzx r14d, byte [rax]
cmp r14b, 0x7d
je 0x1400ff8fd
jmp 0x1400ff518
lea rcx, str.chrono_format_error:_format_argument_does_not_contain_the_information_required_by_the_chrono_specs
call method.std.__throw_format_error_char_const_
lea rcx, str.chrono_format_error:__in_chrono_specs
call method.std.__throw_format_error_char_const_
lea rcx, str.chrono_format_error:_unescaped___in_chrono_specs
call method.std.__throw_format_error_char_const_
lea rcx, str.chrono_format_error:_no___at_start_of_chrono_specs
call method.std.__throw_format_error_char_const_
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop