Function at 0x1400c4270
Capabilities:
Parse credit card information

Disassembly:
push rbp
push rdi
sub rsp, 0x58
lea rbp, [rsp + 0x60]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov dword [rbp + 0x28], r9d
movabs rax, 0xcdcdcdcdcdcdcdcd
mov qword [rbp - 0x30], rax
xor ecx, ecx
mov dword [rbp - 0xc], ecx
xor ecx, ecx
mov dword [rbp - 0x10], ecx
xor ecx, ecx
mov dword [rbp - 0x14], ecx
mov rcx, qword [rbp + 0x10]
call fcn.1400bc950
mov dword [rbp - 0x18], eax
mov rcx, qword [rbp + 0x20]
mov ecx, dword [rcx]
mov dword [rbp - 0x20], ecx
jmp 0x1400c4753
mov rcx, qword [rbp + 0x18]
mov eax, dword [rbp - 0x20]
cdqe
mov edx, 2
movsxd rdx, edx
imul rax, rdx
movzx ecx, word [rcx + rax]
mov dword [rbp - 0x1c], ecx
cmp dword [rbp - 0x1c], 0x1f
jle 0x1400c42f3
cmp dword [rbp - 0x1c], 0x7f
jl 0x1400c430f
cmp dword [rbp - 0x1c], 0x9f
jg 0x1400c430f
mov dword [rbp - 0x10], 1
mov dword [rbp - 0x14], 1
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x7e
jle 0x1400c43ae
cmp dword [rbp - 0x18], 0
je 0x1400c4398
xor ecx, ecx
mov dword [rbp - 0x24], ecx
mov ecx, dword [rbp - 0xc]
or ecx, 8
mov dword [rbp - 0xc], ecx
mov ecx, dword [rbp - 0x1c]
call fcn.14011d990
test eax, eax
je 0x1400c4379
mov edx, dword [rbp - 0x20]
inc edx
cmp edx, dword [rbp + 0x28]
jge 0x1400c4389
mov rdx, qword [rbp + 0x18]
mov r8d, dword [rbp - 0x20]
inc r8d
movsxd r8, r8d
mov ecx, 2
movsxd rcx, ecx
imul r8, rcx
movzx edx, word [rdx + r8]
lea r8, [rbp - 0x30]
mov ecx, dword [rbp - 0x1c]
mov r9d, 1
call fcn.1400bb720
mov dword [rbp - 0x24], eax
jmp 0x1400c4389
mov ecx, dword [rbp - 0x1c]
mov edx, 1
call fcn.1400bb680
mov dword [rbp - 0x24], eax
cmp dword [rbp - 0x24], 0
jne 0x1400c4398
mov ecx, dword [rbp - 0xc]
or ecx, 0x40
mov dword [rbp - 0xc], ecx
cmp dword [rbp - 0x10], 0
jne 0x1400c474b
mov dword [rbp - 0x10], 1
jmp 0x1400c474b
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp dword [rbp - 0x1c], ecx
je 0x1400c475f
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp ecx, 0x3f
jne 0x1400c43f5
cmp dword [rbp - 0x1c], 0x23
jne 0x1400c43f5
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x1400c43f5
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x40
cmp dword [rcx], ecx
call fcn.1400c8f70
test eax, eax
jne 0x1400c475f
cmp dword [rbp - 0x1c], 0x3f
jne 0x1400c4461
mov rcx, qword [rbp + 0x10]
call fcn.1400bc840
test eax, eax
jne 0x1400c4445
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x1400c474b
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x20
cmp dword [rcx], ecx
call fcn.1400c8f70
test eax, eax
jne 0x1400c474b
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp ecx, 0xfffe
je 0x1400c474b
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], 1
mov dword [rbp - 0x10], 1
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x23
jne 0x1400c44bb
mov dword [rbp - 0x10], 1
mov rcx, qword [rbp + 0x10]
call fcn.1400bc840
test eax, eax
jne 0x1400c44a6
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x1400c474b
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x40
cmp dword [rcx], ecx
call fcn.1400c8f70
test eax, eax
jne 0x1400c474b
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], 1
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x2f
je 0x1400c44cb
cmp dword [rbp - 0x1c], 0x5c
jne 0x1400c4552
mov ecx, dword [rbp - 0xc]
and ecx, 0x10
test ecx, ecx
jne 0x1400c44e4
cmp dword [rbp - 0x1c], 0x5c
jne 0x1400c44e4
mov ecx, dword [rbp - 0xc]
or ecx, 0x10
mov dword [rbp - 0xc], ecx
mov ecx, dword [rbp - 0xc]
and ecx, 4
test ecx, ecx
jne 0x1400c474b
mov ecx, dword [rbp - 0x20]
inc ecx
cmp ecx, dword [rbp + 0x28]
je 0x1400c474b
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x2f
je 0x1400c4544
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x5c
jne 0x1400c474b
mov ecx, dword [rbp - 0xc]
or ecx, 4
mov dword [rbp - 0xc], ecx
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x2e
jne 0x1400c462a
mov ecx, dword [rbp - 0xc]
and ecx, 4
test ecx, ecx
jne 0x1400c4574
mov ecx, dword [rbp - 0x20]
inc ecx
cmp ecx, dword [rbp + 0x28]
je 0x1400c461c
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x2e
je 0x1400c461c
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x2f
je 0x1400c461c
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x5c
je 0x1400c461c
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x3f
je 0x1400c461c
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
cmp ecx, 0x23
jne 0x1400c474b
mov ecx, dword [rbp - 0xc]
or ecx, 4
mov dword [rbp - 0xc], ecx
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x22
jg 0x1400c4636
cmp dword [rbp - 0x1c], 0x21
jne 0x1400c4654
cmp dword [rbp - 0x1c], 0x5b
jl 0x1400c4642
cmp dword [rbp - 0x1c], 0x5e
jle 0x1400c4654
cmp dword [rbp - 0x1c], 0x3e
je 0x1400c4654
cmp dword [rbp - 0x1c], 0x3c
je 0x1400c4654
cmp dword [rbp - 0x1c], 0x60
jne 0x1400c468a
cmp dword [rbp - 0x10], 0
jne 0x1400c4661
mov dword [rbp - 0x10], 1
mov rcx, qword [rbp + 0x10]
movabs rdx, 0x200000000
and rdx, qword [rcx + 0x28]
test rdx, rdx
je 0x1400c474b
mov ecx, dword [rbp - 0xc]
or ecx, 0x40
mov dword [rbp - 0xc], ecx
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x7b
jl 0x1400c46a2
cmp dword [rbp - 0x1c], 0x7d
jg 0x1400c46a2
mov dword [rbp - 0x10], 1
jmp 0x1400c474b
cmp dword [rbp - 0x1c], 0x25
jne 0x1400c474b
cmp dword [rbp - 0x14], 0
jne 0x1400c46b9
mov dword [rbp - 0x14], 1
mov ecx, dword [rbp - 0x20]
add ecx, 2
cmp ecx, dword [rbp + 0x28]
jge 0x1400c473e
mov rcx, qword [rbp + 0x18]
mov edx, dword [rbp - 0x20]
inc edx
movsxd rdx, edx
mov eax, 2
cdqe
imul rdx, rax
movzx ecx, word [rcx + rdx]
mov rdx, qword [rbp + 0x18]
mov eax, dword [rbp - 0x20]
add eax, 2
cdqe
mov r8d, 2
movsxd r8, r8d
imul rax, r8
movzx edx, word [rdx + rax]
call fcn.1400c8600
mov dword [rbp - 0x34], eax
mov eax, dword [rbp - 0x34]
movzx eax, ax
mov dword [rbp - 0x1c], eax
cmp dword [rbp - 0x34], 0xffff
je 0x1400c473e
cmp dword [rbp - 0x1c], 0x2e
je 0x1400c4728
cmp dword [rbp - 0x1c], 0x2f
je 0x1400c4728
cmp dword [rbp - 0x1c], 0x5c
jne 0x1400c4733
mov eax, dword [rbp - 0xc]
or eax, 0x80
mov dword [rbp - 0xc], eax
mov eax, dword [rbp - 0x20]
add eax, 2
mov dword [rbp - 0x20], eax
jmp 0x1400c474b
cmp dword [rbp - 0x10], 0
jne 0x1400c474b
mov dword [rbp - 0x10], 1
mov eax, dword [rbp - 0x20]
inc eax
mov dword [rbp - 0x20], eax
mov ecx, dword [rbp - 0x20]
cmp ecx, dword [rbp + 0x28]
jl 0x1400c42c2
cmp dword [rbp - 0x14], 0
je 0x1400c4776
cmp dword [rbp - 0x10], 0
jne 0x1400c478e
mov eax, dword [rbp - 0xc]
or eax, 1
mov dword [rbp - 0xc], eax
jmp 0x1400c478e
mov eax, dword [rbp - 0xc]
or eax, 2
mov dword [rbp - 0xc], eax
cmp dword [rbp - 0x10], 0
jne 0x1400c478e
mov eax, dword [rbp - 0xc]
or eax, 1
mov dword [rbp - 0xc], eax
mov rax, qword [rbp + 0x20]
mov edx, dword [rbp - 0x20]
mov dword [rax], edx
mov eax, dword [rbp - 0xc]
add rsp, 0x58
pop rdi
pop rbp
ret