Function at 0x14008fb70
Capabilities:
Parse credit card information

Disassembly:
sub rsp, 0x148
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
mov al, r9b
and al, 1
mov byte [rsp + 0xa3], al
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x138], r8
mov rax, rdx
add rax, r8
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdx
test r9b, 1
jne 0x14008fbe2
mov byte [rsp + 0x5f], 0
jmp 0x14008fbf5
mov rax, qword [rsp + 0x30]
mov al, byte [rax + 0x114]
xor al, 0xff
and al, 1
mov byte [rsp + 0x5f], al
test byte [rsp + 0x5f], 1
jne 0x14008fc0a
mov rax, qword [rsp + 0x50]
cmp rax, qword [rsp + 0x48]
jne 0x14008fc4f
jmp 0x14008fc35
mov rcx, qword [rsp + 0x30]
mov edx, 0x20
call fcn.1400853f0
and al, 1
mov byte [rsp + 0x60], al
lea rcx, [rsp + 0x60]
call fcn.14007d920
test byte [rax], 1
je 0x14008fbfc
mov byte [rsp + 0x3f], 0
jmp 0x14008fc5b
mov rax, qword [rsp + 0x30]
mov byte [rax + 0x114], 0
mov byte [rax + 0x115], 0
mov byte [rsp + 0x3f], 1
jmp 0x14008fc5b
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x30
jae 0x14008fc73
jmp 0x14008fc6c
mov al, byte [rsp + 0x3f]
and al, 1
movzx eax, al
add rsp, 0x148
ret
mov byte [rsp + 0x78], 0
jmp 0x14008fc84
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x39
setbe al
and al, 1
mov byte [rsp + 0x78], al
test byte [rsp + 0x78], 1
jne 0x14008fc97
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x41
jae 0x14008fca5
jmp 0x14008fc9e
mov byte [rsp + 0x77], 1
jmp 0x14008fcc0
mov byte [rsp + 0x79], 0
jmp 0x14008fcb6
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x5a
setbe al
and al, 1
mov byte [rsp + 0x79], al
mov al, byte [rsp + 0x79]
and al, 1
mov byte [rsp + 0x77], al
test byte [rsp + 0x77], 1
jne 0x14008fcd3
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x61
jae 0x14008fce1
jmp 0x14008fcda
mov byte [rsp + 0x76], 1
jmp 0x14008fcfc
mov byte [rsp + 0x7a], 0
jmp 0x14008fcf2
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x7a
setbe al
and al, 1
mov byte [rsp + 0x7a], al
mov al, byte [rsp + 0x7a]
and al, 1
mov byte [rsp + 0x76], al
test byte [rsp + 0x76], 1
jne 0x14008fd16
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x5f
sete al
and al, 1
mov byte [rsp + 0x75], al
jmp 0x14008fd1b
mov byte [rsp + 0x75], 1
test byte [rsp + 0x75], 1
jne 0x14008fd35
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x2d
sete al
and al, 1
mov byte [rsp + 0x74], al
jmp 0x14008fd3a
mov byte [rsp + 0x74], 1
test byte [rsp + 0x74], 1
jne 0x14008fd54
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x3b
sete al
and al, 1
mov byte [rsp + 0x73], al
jmp 0x14008fd59
mov byte [rsp + 0x73], 1
test byte [rsp + 0x73], 1
jne 0x14008fd73
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x2f
sete al
and al, 1
mov byte [rsp + 0x72], al
jmp 0x14008fd78
mov byte [rsp + 0x72], 1
test byte [rsp + 0x72], 1
jne 0x14008fd92
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x3f
sete al
and al, 1
mov byte [rsp + 0x71], al
jmp 0x14008fd97
mov byte [rsp + 0x71], 1
test byte [rsp + 0x71], 1
jne 0x14008fdb1
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x3a
sete al
and al, 1
mov byte [rsp + 0x70], al
jmp 0x14008fdb6
mov byte [rsp + 0x70], 1
test byte [rsp + 0x70], 1
jne 0x14008fdd0
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x40
sete al
and al, 1
mov byte [rsp + 0x6f], al
jmp 0x14008fdd5
mov byte [rsp + 0x6f], 1
test byte [rsp + 0x6f], 1
jne 0x14008fdef
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x26
sete al
and al, 1
mov byte [rsp + 0x6e], al
jmp 0x14008fdf4
mov byte [rsp + 0x6e], 1
test byte [rsp + 0x6e], 1
jne 0x14008fe0e
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x3d
sete al
and al, 1
mov byte [rsp + 0x6d], al
jmp 0x14008fe13
mov byte [rsp + 0x6d], 1
test byte [rsp + 0x6d], 1
jne 0x14008fe2d
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x2b
sete al
and al, 1
mov byte [rsp + 0x6c], al
jmp 0x14008fe32
mov byte [rsp + 0x6c], 1
test byte [rsp + 0x6c], 1
jne 0x14008fe4c
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x24
sete al
and al, 1
mov byte [rsp + 0x6b], al
jmp 0x14008fe51
mov byte [rsp + 0x6b], 1
test byte [rsp + 0x6b], 1
jne 0x14008fe6b
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x2c
sete al
and al, 1
mov byte [rsp + 0x6a], al
jmp 0x14008fe70
mov byte [rsp + 0x6a], 1
test byte [rsp + 0x6a], 1
jne 0x14008fe8a
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x5f
sete al
and al, 1
mov byte [rsp + 0x69], al
jmp 0x14008fe8f
mov byte [rsp + 0x69], 1
test byte [rsp + 0x69], 1
jne 0x14008fea9
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x2e
sete al
and al, 1
mov byte [rsp + 0x68], al
jmp 0x14008feae
mov byte [rsp + 0x68], 1
test byte [rsp + 0x68], 1
jne 0x14008fec8
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x7e
sete al
and al, 1
mov byte [rsp + 0x67], al
jmp 0x14008fecd
mov byte [rsp + 0x67], 1
test byte [rsp + 0x67], 1
jne 0x14008fee7
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x2a
sete al
and al, 1
mov byte [rsp + 0x66], al
jmp 0x14008feec
mov byte [rsp + 0x66], 1
test byte [rsp + 0x66], 1
jne 0x14008ff06
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x27
sete al
and al, 1
mov byte [rsp + 0x65], al
jmp 0x14008ff0b
mov byte [rsp + 0x65], 1
test byte [rsp + 0x65], 1
jne 0x14008ff25
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x28
sete al
and al, 1
mov byte [rsp + 0x64], al
jmp 0x14008ff2a
mov byte [rsp + 0x64], 1
test byte [rsp + 0x64], 1
jne 0x14008ff44
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x29
sete al
and al, 1
mov byte [rsp + 0x63], al
jmp 0x14008ff49
mov byte [rsp + 0x63], 1
test byte [rsp + 0x63], 1
jne 0x14008ff63
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x5b
sete al
and al, 1
mov byte [rsp + 0x62], al
jmp 0x14008ff68
mov byte [rsp + 0x62], 1
test byte [rsp + 0x62], 1
jne 0x14008ff82
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0x5d
sete al
and al, 1
mov byte [rsp + 0x61], al
jmp 0x14008ff87
mov byte [rsp + 0x61], 1
test byte [rsp + 0x61], 1
jne 0x14008ffc1
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], rax
mov rax, qword [rsp + 0x128]
mov al, byte [rax]
and al, 0x80
cmp al, 0
je 0x14008ffee
jmp 0x14008fff8
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
call fcn.140085740
and al, 1
mov byte [rsp + 0x7b], al
lea rcx, [rsp + 0x7b]
call fcn.14007d920
test byte [rax], 1
jne 0x140090283
jmp 0x14008fbfc
mov dword [rsp + 0x7c], 1
jmp 0x14009002b
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x110]
mov al, byte [rax]
and al, 0xe0
cmp al, 0xc0
je 0x140090054
jmp 0x14009005e
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0xa4], eax
mov eax, dword [rsp + 0x7c]
dec eax
mov dword [rsp + 0x2c], eax
seto al
test al, 1
jne 0x140090102
jmp 0x1400900e4
mov dword [rsp + 0x7c], 2
jmp 0x14009002b
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0xf8]
mov al, byte [rax]
and al, 0xf0
cmp al, 0xe0
jne 0x140090099
mov dword [rsp + 0x7c], 3
jmp 0x14009002b
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xe0]
mov al, byte [rax]
and al, 0xf8
cmp al, 0xf0
jne 0x1400900d7
mov dword [rsp + 0x7c], 4
jmp 0x14009002b
mov dword [rsp + 0x7c], 0
jmp 0x14009002b
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2c]
mov dword [rsp + 0x7c], ecx
cmp eax, 0
setne al
xor al, 0xff
test al, 1
jne 0x14008fbfc
jmp 0x14009011c
lea rcx, str.attempt_to_subtract_with_overflowduplicate__TAG_directive
lea r8, str.C:UsersWei.cargo_registry_srcindex.crates.io_6f17d22bba15001funsafe_libyaml_0.2.9_srcemitter.rs
mov edx, 0x21
call fcn.140128580
ud2
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xa8], rax
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], 1
add rdx, 1
mov qword [rsp + 0xc8], rdx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x50], rdx
mov al, byte [rax]
mov byte [rsp + 0x27], al
mov byte [rsp + 0xb3], al
mov edx, 0x25
call fcn.1400853f0
and al, 1
mov byte [rsp + 0x83], al
lea rcx, [rsp + 0x83]
call fcn.14007d920
test byte [rax], 1
jne 0x1400901a8
mov al, byte [rsp + 0x27]
mov cl, al
shr cl, 4
mov byte [rsp + 0x26], cl
shr al, 4
cmp al, 0xa
jb 0x1400901bc
jmp 0x1400901b2
mov byte [rsp + 0x3f], 0
jmp 0x14008fc5b
mov byte [rsp + 0x85], 0x37
jmp 0x1400901c4
mov byte [rsp + 0x85], 0x30
mov rcx, qword [rsp + 0x30]
mov dl, byte [rsp + 0x26]
mov al, byte [rsp + 0x85]
mov byte [rsp + 0xb6], dl
mov byte [rsp + 0xb7], al
add dl, al
call fcn.1400853f0
and al, 1
mov byte [rsp + 0x84], al
lea rcx, [rsp + 0x84]
call fcn.14007d920
test byte [rax], 1
jne 0x140090219
mov al, byte [rsp + 0x27]
mov cl, al
and cl, 0xf
mov byte [rsp + 0x25], cl
and al, 0xf
cmp al, 0xa
jb 0x14009022d
jmp 0x140090223
mov byte [rsp + 0x3f], 0
jmp 0x14008fc5b
mov byte [rsp + 0x87], 0x37
jmp 0x140090235
mov byte [rsp + 0x87], 0x30
mov rcx, qword [rsp + 0x30]
mov dl, byte [rsp + 0x25]
mov al, byte [rsp + 0x87]
mov byte [rsp + 0xb4], dl
mov byte [rsp + 0xb5], al
add dl, al
call fcn.1400853f0
and al, 1
mov byte [rsp + 0x86], al
lea rcx, [rsp + 0x86]
call fcn.14007d920
test byte [rax], 1
je 0x14009002b
mov byte [rsp + 0x3f], 0
jmp 0x14008fc5b
mov byte [rsp + 0x3f], 0
jmp 0x14008fc5b