Function at 0x1402357d0
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.14022bc70
mov dword [rbp - 0x18], eax
mov rcx, qword [rbp + 0x20]
mov ecx, dword [rcx]
mov dword [rbp - 0x20], ecx
jmp 0x140235cb3
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 0x140235853
cmp dword [rbp - 0x1c], 0x7f
jl 0x14023586f
cmp dword [rbp - 0x1c], 0x9f
jg 0x14023586f
mov dword [rbp - 0x10], 1
mov dword [rbp - 0x14], 1
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x7e
jle 0x14023590e
cmp dword [rbp - 0x18], 0
je 0x1402358f8
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.1400b59c0
test eax, eax
je 0x1402358d9
mov edx, dword [rbp - 0x20]
inc edx
cmp edx, dword [rbp + 0x28]
jge 0x1402358e9
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.14022aa00
mov dword [rbp - 0x24], eax
jmp 0x1402358e9
mov ecx, dword [rbp - 0x1c]
mov edx, 1
call fcn.14022a960
mov dword [rbp - 0x24], eax
cmp dword [rbp - 0x24], 0
jne 0x1402358f8
mov ecx, dword [rbp - 0xc]
or ecx, 0x40
mov dword [rbp - 0xc], ecx
cmp dword [rbp - 0x10], 0
jne 0x140235cab
mov dword [rbp - 0x10], 1
jmp 0x140235cab
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp dword [rbp - 0x1c], ecx
je 0x140235cbf
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp ecx, 0x3f
jne 0x140235955
cmp dword [rbp - 0x1c], 0x23
jne 0x140235955
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x140235955
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x40
cmp dword [rcx], ecx
call fcn.14023cef0
test eax, eax
jne 0x140235cbf
cmp dword [rbp - 0x1c], 0x3f
jne 0x1402359c1
mov rcx, qword [rbp + 0x10]
call fcn.14022bb10
test eax, eax
jne 0x1402359a5
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x140235cab
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x20
cmp dword [rcx], ecx
call fcn.14023cef0
test eax, eax
jne 0x140235cab
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp ecx, 0xfffe
je 0x140235cab
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], 1
mov dword [rbp - 0x10], 1
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x23
jne 0x140235a1b
mov dword [rbp - 0x10], 1
mov rcx, qword [rbp + 0x10]
call fcn.14022bb10
test eax, eax
jne 0x140235a06
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x140235cab
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x40
cmp dword [rcx], ecx
call fcn.14023cef0
test eax, eax
jne 0x140235cab
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], 1
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x2f
je 0x140235a2b
cmp dword [rbp - 0x1c], 0x5c
jne 0x140235ab2
mov ecx, dword [rbp - 0xc]
and ecx, 0x10
test ecx, ecx
jne 0x140235a44
cmp dword [rbp - 0x1c], 0x5c
jne 0x140235a44
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 0x140235cab
mov ecx, dword [rbp - 0x20]
inc ecx
cmp ecx, dword [rbp + 0x28]
je 0x140235cab
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 0x140235aa4
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 0x140235cab
mov ecx, dword [rbp - 0xc]
or ecx, 4
mov dword [rbp - 0xc], ecx
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x2e
jne 0x140235b8a
mov ecx, dword [rbp - 0xc]
and ecx, 4
test ecx, ecx
jne 0x140235ad4
mov ecx, dword [rbp - 0x20]
inc ecx
cmp ecx, dword [rbp + 0x28]
je 0x140235b7c
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 0x140235b7c
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 0x140235b7c
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 0x140235b7c
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 0x140235b7c
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 0x140235cab
mov ecx, dword [rbp - 0xc]
or ecx, 4
mov dword [rbp - 0xc], ecx
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x22
jg 0x140235b96
cmp dword [rbp - 0x1c], 0x21
jne 0x140235bb4
cmp dword [rbp - 0x1c], 0x5b
jl 0x140235ba2
cmp dword [rbp - 0x1c], 0x5e
jle 0x140235bb4
cmp dword [rbp - 0x1c], 0x3e
je 0x140235bb4
cmp dword [rbp - 0x1c], 0x3c
je 0x140235bb4
cmp dword [rbp - 0x1c], 0x60
jne 0x140235bea
cmp dword [rbp - 0x10], 0
jne 0x140235bc1
mov dword [rbp - 0x10], 1
mov rcx, qword [rbp + 0x10]
movabs rdx, 0x200000000
and rdx, qword [rcx + 0x28]
test rdx, rdx
je 0x140235cab
mov ecx, dword [rbp - 0xc]
or ecx, 0x40
mov dword [rbp - 0xc], ecx
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x7b
jl 0x140235c02
cmp dword [rbp - 0x1c], 0x7d
jg 0x140235c02
mov dword [rbp - 0x10], 1
jmp 0x140235cab
cmp dword [rbp - 0x1c], 0x25
jne 0x140235cab
cmp dword [rbp - 0x14], 0
jne 0x140235c19
mov dword [rbp - 0x14], 1
mov ecx, dword [rbp - 0x20]
add ecx, 2
cmp ecx, dword [rbp + 0x28]
jge 0x140235c9e
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.14023c2d0
mov dword [rbp - 0x34], eax
mov eax, dword [rbp - 0x34]
movzx eax, ax
mov dword [rbp - 0x1c], eax
cmp dword [rbp - 0x34], 0xffff
je 0x140235c9e
cmp dword [rbp - 0x1c], 0x2e
je 0x140235c88
cmp dword [rbp - 0x1c], 0x2f
je 0x140235c88
cmp dword [rbp - 0x1c], 0x5c
jne 0x140235c93
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 0x140235cab
cmp dword [rbp - 0x10], 0
jne 0x140235cab
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 0x140235822
cmp dword [rbp - 0x14], 0
je 0x140235cd6
cmp dword [rbp - 0x10], 0
jne 0x140235cee
mov eax, dword [rbp - 0xc]
or eax, 1
mov dword [rbp - 0xc], eax
jmp 0x140235cee
mov eax, dword [rbp - 0xc]
or eax, 2
mov dword [rbp - 0xc], eax
cmp dword [rbp - 0x10], 0
jne 0x140235cee
mov eax, dword [rbp - 0xc]
or eax, 1
mov dword [rbp - 0xc], eax
mov rax, qword [rbp + 0x20]
mov ecx, dword [rbp - 0x20]
mov dword [rax], ecx
mov eax, dword [rbp - 0xc]
add rsp, 0x58
pop rdi
pop rbp
ret