Function at 0x140022b10
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x140022e04
cmp ecx, 0x7c
je 0x140022e04
cmp ecx, 0x29
jne 0x140022b66
cmp dword [rbx + 0x1c], 0
jne 0x140022e04
cmp ecx, ecx
jne 0x140022b66
test dword [rbx + 0x80], 0x10000000
je 0x140022e19
jmp 0x140022dae
cmp ecx, 0x2e
jne 0x140022b7e
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.140028cc0
jmp 0x140022de6
cmp ecx, 0x5c
jne 0x140022bf3
mov rcx, rbx
call fcn.140028db0
test byte [rbx + 0x80], 0x80
je 0x140022be6
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x140022bb9
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.140028cc0
mov rcx, rbx
call fcn.140028db0
jmp 0x140022df6
cmp ax, 0x42
jne 0x140022be6
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.140028cc0
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
add rax, 0xc
call fcn.140028db0
jmp 0x140022df6
mov rcx, rbx
call fcn.140023090
jmp 0x140022dee
cmp ecx, 0x5b
jne 0x140022c1a
mov rcx, rbx
call fcn.140028db0
mov rcx, rbx
call fcn.140023c00
cmp dword [rbx + 0x7c], 0x5d
mov rcx, rbx
jne 0x140022e27
jmp 0x140022de9
cmp ecx, 0x28
jne 0x140022d53
mov rcx, rbx
call fcn.140028db0
inc dword [rbx + 0x1c]
mov eax, dword [rbx + 0x80]
bt eax, 0x1b
jb 0x140022c44
cmp dword [rbx + 0x7c], 0x29
je 0x140022e40
test al, 0x20
je 0x140022ca5
cmp dword [rbx + 0x7c], 0x3f
jne 0x140022ca5
mov rcx, rbx
call fcn.140028db0
mov edi, dword [rbx + 0x7c]
mov rcx, rbx
call fcn.140028db0
mov rcx, rbx
cmp edi, 0x3a
jne 0x140022c73
call fcn.140026c50
jmp 0x140022d2d
cmp edi, 0x21
jne 0x140022c8a
mov dl, 1
call fcn.1400257b0
dec dword [rbx + 0x1c]
xor dil, dil
jmp 0x140022d33
cmp edi, 0x3d
jne 0x140022e4e
xor edx, edx
call fcn.1400257b0
dec dword [rbx + 0x1c]
xor dil, dil
jmp 0x140022d33
test dword [rbx + 0x70], 0x200
lea rcx, [rbx + 0x40]
je 0x140022cd5
mov edx, 8
call fcn.140028cc0
mov rcx, rbx
mov rdi, rax
call fcn.140025480
mov rdx, rdi
lea rcx, [rbx + 0x40]
call fcn.140027a00
jmp 0x140022d2d
inc dword [rbx + 0x18]
mov edx, dword [rbx + 0x18]
call fcn.1400233f0
mov rcx, rbx
mov rsi, rax
call fcn.140025480
mov rdx, rsi
lea rcx, [rbx + 0x40]
call fcn.140027a00
mov eax, dword [rbx + 0x18]
lea rdi, [rbx + 0x20]
inc eax
xor r8d, r8d
movsxd rdx, eax
mov rcx, rdi
call fcn.14002c570
mov r8d, dword [rsi + 0x20]
mov rax, qword [rdi]
mov ecx, r8d
shr rcx, 5
and r8d, 0x1f
lea rdx, [rax + rcx*4]
mov eax, dword [rax + rcx*4]
bts eax, r8d
mov dword [rdx], eax
dec dword [rbx + 0x1c]
mov dil, 1
cmp dword [rbx + 0x7c], 0x29
mov rcx, rbx
jne 0x140022e59
call fcn.140028db0
test dil, dil
je 0x140022df6
jmp 0x140022dee
cmp ecx, 0x5e
jne 0x140022d73
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.140028cc0
mov rcx, rbx
call fcn.140028db0
jmp 0x140022df6
cmp ecx, 0x24
jne 0x140022d90
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.140028cc0
mov rcx, rbx
call fcn.140028db0
jmp 0x140022df6
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x140022e72
cmp ecx, 0x3f
je 0x140022e72
cmp ecx, 0x7b
je 0x140022e72
mov eax, dword [rbx + 0x7c]
cmp eax, 0x7d
jne 0x140022dc4
test dword [rbx + 0x80], 0x10000000
je 0x140022e32
jmp 0x140022dd9
cmp eax, 0x5d
jne 0x140022dd9
test dword [rbx + 0x80], 0x10000000
je 0x140022e64
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.140020f20
mov rcx, rbx
call fcn.140028db0
mov rcx, rbx
call fcn.1400291a0
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x140022b35
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov edx, 5
mov rcx, rbx
call fcn.140027ba0
int3
mov edx, 4
call fcn.140027ba0
int3
mov edx, 6
mov rcx, rbx
call fcn.140027ba0
int3
mov edx, 5
mov rcx, rbx
call fcn.140027ba0
int3
mov edx, 0xe
call fcn.140027ba0
int3
mov edx, 5
call fcn.140027ba0
int3
mov edx, 4
mov rcx, rbx
call fcn.140027ba0
int3
mov edx, 0xa
mov rcx, rbx
call fcn.140027ba0
int3