Function at 0x140021de0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x14002216f
mov dil, 8
mov edx, 0x10000000
cmp ecx, 0x7c
je 0x14002216f
cmp ecx, 0x29
jne 0x140021e2b
cmp dword [rbx + 0x1c], 0
jne 0x14002216f
cmp ecx, ecx
jne 0x140021e2b
test dword [rbx + 0x80], edx
je 0x14002217a
cmp ecx, 0x2e
jne 0x140021e43
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.1400222b8
jmp 0x140021f48
cmp ecx, 0x5c
jne 0x140021ee1
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x140021e90
cmp byte [rcx], 0x5c
jne 0x140021e89
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x140021e89
mov r8d, dword [rbx + 0x80]
test dil, r8b
jne 0x140021e78
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140021e86
test r8b, 0x10
jne 0x140021e89
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140021e89
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.14001ff88
test byte [rbx + 0x80], 0x80
je 0x140021ed4
mov al, byte [rbx + 0x78]
cmp al, 0x62
jne 0x140021eb2
mov edx, 4
jmp 0x140022063
cmp al, 0x42
jne 0x140021ed4
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.1400222b8
mov rax, qword [rbx + 0x48]
add rax, 0xc
xor dword [rax], 1
jmp 0x14002206c
mov rcx, rbx
call fcn.140023764
jmp 0x14002215d
cmp ecx, 0x5b
jne 0x140021f99
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x140021f2e
cmp byte [rcx], 0x5c
jne 0x140021f27
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x140021f27
mov r8d, dword [rbx + 0x80]
test dil, r8b
jne 0x140021f16
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140021f24
test r8b, 0x10
jne 0x140021f27
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140021f27
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.14001ff88
mov rcx, rbx
call fcn.140023544
cmp dword [rbx + 0x7c], 0x5d
jne 0x140022185
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x140021f8c
cmp byte [rcx], 0x5c
jne 0x140021f85
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x140021f85
mov r8d, dword [rbx + 0x80]
test dil, r8b
jne 0x140021f74
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140021f82
test r8b, 0x10
jne 0x140021f85
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140021f85
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.14001ff88
jmp 0x14002215d
cmp ecx, 0x28
jne 0x140022051
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x140021fe6
cmp byte [rcx], 0x5c
jne 0x140021fdf
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x140021fdf
mov r8d, dword [rbx + 0x80]
test dil, r8b
jne 0x140021fce
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140021fdc
test r8b, 0x10
jne 0x140021fdf
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140021fdf
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.14001ff88
mov rcx, rbx
call fcn.1400238e0
cmp dword [rbx + 0x7c], 0x29
mov dil, al
jne 0x140022190
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x140022150
cmp byte [rcx], 0x5c
jne 0x140022045
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x140022045
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x140022034
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140022042
test r8b, 0x10
jne 0x140022045
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140022045
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
jmp 0x140022150
cmp ecx, 0x5e
jne 0x14002205b
lea edx, [rcx - 0x5c]
jmp 0x140022063
cmp ecx, 0x24
jne 0x1400220bd
lea edx, [rcx - 0x21]
lea rcx, [rbx + 0x40]
call fcn.1400222b8
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x1400220b0
cmp byte [rcx], 0x5c
jne 0x1400220a9
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x1400220a9
mov r8d, dword [rbx + 0x80]
test dil, r8b
jne 0x140022098
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x1400220a6
test r8b, 0x10
jne 0x1400220a9
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x1400220a9
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov rcx, rbx
call fcn.14001ff88
jmp 0x140022165
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x1400221b1
cmp ecx, 0x3f
je 0x1400221b1
cmp ecx, 0x7b
je 0x1400221b1
cmp ecx, 0x7d
jne 0x1400220ec
test dword [rbx + 0x80], edx
je 0x14002219b
cmp ecx, 0x5d
jne 0x1400220fd
test dword [rbx + 0x80], edx
je 0x1400221a6
mov dl, byte [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.140023cb0
mov rcx, qword [rbx]
cmp rcx, qword [rbx + 0x10]
je 0x14002214d
cmp byte [rcx], 0x5c
jne 0x140022146
lea rdx, [rcx + 1]
cmp rdx, qword [rbx + 0x10]
je 0x140022146
mov r8d, dword [rbx + 0x80]
test dil, r8b
jne 0x140022135
mov al, byte [rdx]
sub al, 0x28
cmp al, 1
jbe 0x140022143
test r8b, 0x10
jne 0x140022146
mov al, byte [rdx]
sub al, 0x7b
test al, 0xfd
jne 0x140022146
mov rcx, rdx
lea rax, [rcx + 1]
mov qword [rbx], rax
mov dil, 1
mov rcx, rbx
call fcn.14001ff88
test dil, dil
je 0x140022165
mov rcx, rbx
call fcn.140023a60
mov ecx, dword [rbx + 0x7c]
mov al, 1
jmp 0x140021df2
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov edx, 5
call fcn.14001ff74
int3
mov edx, 4
call fcn.14001ff74
int3
mov edx, 5
call fcn.14001ff74
int3
mov edx, 6
call fcn.14001ff74
int3
mov edx, 4
call fcn.14001ff74
int3
mov edx, 0xa
call fcn.14001ff74
int3