Function at 0x140232670
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.140228b10
mov dword [rbp - 0x18], eax
mov rcx, qword [rbp + 0x20]
mov ecx, dword [rcx]
mov dword [rbp - 0x20], ecx
jmp 0x140232b53
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 0x1402326f3
cmp dword [rbp - 0x1c], 0x7f
jl 0x14023270f
cmp dword [rbp - 0x1c], 0x9f
jg 0x14023270f
mov dword [rbp - 0x10], 1
mov dword [rbp - 0x14], 1
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x7e
jle 0x1402327ae
cmp dword [rbp - 0x18], 0
je 0x140232798
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.1400d4900
test eax, eax
je 0x140232779
mov edx, dword [rbp - 0x20]
inc edx
cmp edx, dword [rbp + 0x28]
jge 0x140232789
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.1402278a0
mov dword [rbp - 0x24], eax
jmp 0x140232789
mov ecx, dword [rbp - 0x1c]
mov edx, 1
call fcn.140227800
mov dword [rbp - 0x24], eax
cmp dword [rbp - 0x24], 0
jne 0x140232798
mov ecx, dword [rbp - 0xc]
or ecx, 0x40
mov dword [rbp - 0xc], ecx
cmp dword [rbp - 0x10], 0
jne 0x140232b4b
mov dword [rbp - 0x10], 1
jmp 0x140232b4b
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp dword [rbp - 0x1c], ecx
je 0x140232b5f
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp ecx, 0x3f
jne 0x1402327f5
cmp dword [rbp - 0x1c], 0x23
jne 0x1402327f5
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x1402327f5
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x40
cmp dword [rcx], ecx
call fcn.140239d90
test eax, eax
jne 0x140232b5f
cmp dword [rbp - 0x1c], 0x3f
jne 0x140232861
mov rcx, qword [rbp + 0x10]
call fcn.1402289b0
test eax, eax
jne 0x140232845
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x140232b4b
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x20
cmp dword [rcx], ecx
call fcn.140239d90
test eax, eax
jne 0x140232b4b
mov ecx, dword [rbp + 0x30]
movzx ecx, cx
cmp ecx, 0xfffe
je 0x140232b4b
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], 1
mov dword [rbp - 0x10], 1
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x23
jne 0x1402328bb
mov dword [rbp - 0x10], 1
mov rcx, qword [rbp + 0x10]
call fcn.1402289b0
test eax, eax
jne 0x1402328a6
mov rcx, qword [rbp + 0x10]
cmp qword [rcx + 0x18], 0
je 0x140232b4b
mov rcx, qword [rbp + 0x10]
mov rcx, qword [rcx + 0x18]
mov edx, 0x40
cmp dword [rcx], ecx
call fcn.140239d90
test eax, eax
jne 0x140232b4b
mov ecx, dword [rbp - 0xc]
or ecx, 0x20
mov dword [rbp - 0xc], ecx
mov dword [rbp - 0x14], 1
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x2f
je 0x1402328cb
cmp dword [rbp - 0x1c], 0x5c
jne 0x140232952
mov ecx, dword [rbp - 0xc]
and ecx, 0x10
test ecx, ecx
jne 0x1402328e4
cmp dword [rbp - 0x1c], 0x5c
jne 0x1402328e4
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 0x140232b4b
mov ecx, dword [rbp - 0x20]
inc ecx
cmp ecx, dword [rbp + 0x28]
je 0x140232b4b
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 0x140232944
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 0x140232b4b
mov ecx, dword [rbp - 0xc]
or ecx, 4
mov dword [rbp - 0xc], ecx
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x2e
jne 0x140232a2a
mov ecx, dword [rbp - 0xc]
and ecx, 4
test ecx, ecx
jne 0x140232974
mov ecx, dword [rbp - 0x20]
inc ecx
cmp ecx, dword [rbp + 0x28]
je 0x140232a1c
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 0x140232a1c
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 0x140232a1c
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 0x140232a1c
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 0x140232a1c
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 0x140232b4b
mov ecx, dword [rbp - 0xc]
or ecx, 4
mov dword [rbp - 0xc], ecx
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x22
jg 0x140232a36
cmp dword [rbp - 0x1c], 0x21
jne 0x140232a54
cmp dword [rbp - 0x1c], 0x5b
jl 0x140232a42
cmp dword [rbp - 0x1c], 0x5e
jle 0x140232a54
cmp dword [rbp - 0x1c], 0x3e
je 0x140232a54
cmp dword [rbp - 0x1c], 0x3c
je 0x140232a54
cmp dword [rbp - 0x1c], 0x60
jne 0x140232a8a
cmp dword [rbp - 0x10], 0
jne 0x140232a61
mov dword [rbp - 0x10], 1
mov rcx, qword [rbp + 0x10]
movabs rdx, 0x200000000
and rdx, qword [rcx + 0x28]
test rdx, rdx
je 0x140232b4b
mov ecx, dword [rbp - 0xc]
or ecx, 0x40
mov dword [rbp - 0xc], ecx
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x7b
jl 0x140232aa2
cmp dword [rbp - 0x1c], 0x7d
jg 0x140232aa2
mov dword [rbp - 0x10], 1
jmp 0x140232b4b
cmp dword [rbp - 0x1c], 0x25
jne 0x140232b4b
cmp dword [rbp - 0x14], 0
jne 0x140232ab9
mov dword [rbp - 0x14], 1
mov ecx, dword [rbp - 0x20]
add ecx, 2
cmp ecx, dword [rbp + 0x28]
jge 0x140232b3e
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.140239170
mov dword [rbp - 0x34], eax
mov eax, dword [rbp - 0x34]
movzx eax, ax
mov dword [rbp - 0x1c], eax
cmp dword [rbp - 0x34], 0xffff
je 0x140232b3e
cmp dword [rbp - 0x1c], 0x2e
je 0x140232b28
cmp dword [rbp - 0x1c], 0x2f
je 0x140232b28
cmp dword [rbp - 0x1c], 0x5c
jne 0x140232b33
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 0x140232b4b
cmp dword [rbp - 0x10], 0
jne 0x140232b4b
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 0x1402326c2
cmp dword [rbp - 0x14], 0
je 0x140232b76
cmp dword [rbp - 0x10], 0
jne 0x140232b8e
mov eax, dword [rbp - 0xc]
or eax, 1
mov dword [rbp - 0xc], eax
jmp 0x140232b8e
mov eax, dword [rbp - 0xc]
or eax, 2
mov dword [rbp - 0xc], eax
cmp dword [rbp - 0x10], 0
jne 0x140232b8e
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