Function at 0x14009d860
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov byte [rsp + 0x20], 0
mov byte [rsp + 0x21], 1
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0xffff
je 0x14009d8a2
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x7c
je 0x14009d8a2
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x29
jne 0x14009d8b1
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x1c], 0
je 0x14009d8b1
movzx eax, byte [rsp + 0x20]
jmp 0x14009dba0
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x29
jne 0x14009d8dc
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x64]
and eax, 0x10000000
test eax, eax
jne 0x14009d8dc
mov ecx, 5
call fcn.14021a578
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x2e
jne 0x14009d90c
mov rax, qword [rsp + 0x60]
add rax, 0x28
mov edx, 5
mov rcx, rax
call fcn.14009e110
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x5c
jne 0x14009d9e3
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x64]
and eax, 0x80
test eax, eax
je 0x14009d96b
mov rax, qword [rsp + 0x60]
movzx eax, word [rax + 0x5e]
cmp eax, 0x62
jne 0x14009d96b
mov rax, qword [rsp + 0x60]
add rax, 0x28
mov edx, 4
mov rcx, rax
call fcn.14009e110
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov byte [rsp + 0x21], 0
jmp 0x14009d9de
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x64]
and eax, 0x80
test eax, eax
je 0x14009d9d4
mov rax, qword [rsp + 0x60]
movzx eax, word [rax + 0x5e]
cmp eax, 0x42
jne 0x14009d9d4
mov rax, qword [rsp + 0x60]
add rax, 0x28
mov edx, 4
mov rcx, rax
call fcn.14009e110
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x30]
add rax, 0xc
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax]
xor eax, 1
mov rcx, qword [rsp + 0x28]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov byte [rsp + 0x21], 0
jmp 0x14009d9de
mov rcx, qword [rsp + 0x60]
call fcn.1400a0670
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x5b
jne 0x14009da26
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov rcx, qword [rsp + 0x60]
call fcn.1400a0570
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x5d
je 0x14009da17
mov ecx, 4
call fcn.14021a578
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x28
jne 0x14009da6d
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov rcx, qword [rsp + 0x60]
call fcn.1400a0850
mov byte [rsp + 0x21], al
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x29
je 0x14009da5e
mov ecx, 5
call fcn.14021a578
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x5e
jne 0x14009daa2
mov rax, qword [rsp + 0x60]
add rax, 0x28
mov edx, 2
mov rcx, rax
call fcn.14009e110
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov byte [rsp + 0x21], 0
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x24
jne 0x14009dad7
mov rax, qword [rsp + 0x60]
add rax, 0x28
mov edx, 3
mov rcx, rax
call fcn.14009e110
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
mov byte [rsp + 0x21], 0
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x2a
je 0x14009db03
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x2b
je 0x14009db03
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x3f
je 0x14009db03
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x7b
jne 0x14009db0f
mov ecx, 0xa
call fcn.14021a578
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x7d
jne 0x14009db37
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x64]
and eax, 0x10000000
test eax, eax
jne 0x14009db37
mov ecx, 6
call fcn.14021a578
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x60], 0x5d
jne 0x14009db5f
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0x64]
and eax, 0x10000000
test eax, eax
jne 0x14009db5f
mov ecx, 4
call fcn.14021a578
jmp 0x14009db83
mov rax, qword [rsp + 0x60]
add rax, 0x28
mov rcx, qword [rsp + 0x60]
movzx edx, word [rcx + 0x5e]
mov rcx, rax
call fcn.1400a0c40
mov rcx, qword [rsp + 0x60]
call fcn.14009d7e0
movzx eax, byte [rsp + 0x21]
test eax, eax
je 0x14009db96
mov rcx, qword [rsp + 0x60]
call fcn.1400a09e0
mov byte [rsp + 0x20], 1
jmp 0x14009d86e
add rsp, 0x58
ret