Function at 0x18027f650
Capabilities:
Parse credit card information

Disassembly:
add byte [rax], al
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x40
mov r9, qword [rcx]
mov rdi, rcx
mov rsi, rdx
movzx ecx, byte [r9]
lea eax, [rcx - 0x22]
cmp eax, 0x58
ja case.0x18027f69b.35
lea r14, [0x180000000]
cdqe
movzx eax, byte [r14 + rax + 0x27fa28]
mov r8d, dword [r14 + rax*4 + 0x27fa0c]
add r8, r14
jmp r8
xor ebx, ebx
mov qword [rsp + 0x50], rbp
mov ebp, ebx
cmp cl, 0x22
je 0x18027f6c5
mov r8d, 0x17c
lea rdx, [0x1803e9460]
lea rcx, str.___sfp__pos
call fcn.18029a158
mov r10, qword [rdi]
mov r9, qword [rdi + 8]
inc r10
mov qword [rdi], r10
cmp r10, r9
je case.default.0x18027f701
mov rdx, r10
mov r8d, 1
movzx eax, byte [rdx]
add eax, 0xffffffe0
cmp eax, 0x5e
ja case.default.0x18027f701
cdqe
movzx eax, byte [r14 + rax + 0x27fa90]
mov ecx, dword [r14 + rax*4 + 0x27fa84]
add rcx, r14
jmp rcx
lea rax, [rdx + 1]
mov qword [rdi], rax
cmp rax, r9
je case.default.0x18027f701
movzx ecx, byte [rax]
cmp cl, 0x22
je 0x18027f71c
cmp cl, 0x5c
jne case.default.0x18027f701
mov ebp, r8d
mov rdx, qword [rdi]
inc rdx
mov qword [rdi], rdx
cmp rdx, r9
jne 0x18027f6e0
mov rbp, qword [rsp + 0x50]
mov ebx, 0xffffffff
mov eax, ebx
jmp 0x18027f9f6
test rsi, rsi
je 0x18027f75e
mov dword [rsi], 3
mov dword [rsi + 4], ebp
mov rax, qword [rdi]
sub rax, r10
mov qword [rsi + 0x10], rax
cmove r10, rbx
mov qword [rsi + 8], r10
inc qword [rdi]
mov eax, ebx
mov rbp, qword [rsp + 0x50]
jmp 0x18027f9f6
mov rcx, rdi
call fcn.18027f420
jmp 0x18027f9f6
cmp cl, 0x40
je 0x18027f798
mov r8d, 0x15e
lea rdx, [0x1803e9460]
lea rcx, [0x1803def98]
call fcn.18029a158
mov rax, qword [rdi]
inc rax
mov qword [rdi], rax
cmp rax, qword [rdi + 8]
jne 0x18027f7b3
mov ebx, 0xffffffff
mov eax, ebx
jmp 0x18027f9f6
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.18027f420
test eax, eax
je 0x18027f7cb
mov ebx, eax
jmp 0x18027f9f6
cmp dword [rsp + 0x20], 1
jne 0x18027f7a7
test rsi, rsi
je 0x18027f7f0
movups xmm0, xmmword [rsp + 0x20]
movsd xmm1, qword [rsp + 0x30]
movups xmmword [rsi], xmm0
movsd qword [rsi + 0x10], xmm1
mov dword [rsi], 7
xor ebx, ebx
mov eax, ebx
jmp 0x18027f9f6
cmp cl, 0x3a
je 0x18027f817
mov r8d, 0x1d9
lea rdx, [0x1803e9460]
lea rcx, str.:__sfp__pos
call fcn.18029a158
mov r8, qword [rdi]
mov r9, qword [rdi + 8]
inc r8
mov qword [rdi], r8
cmp r8, r9
je case.0x18027f8a9.49
mov rdx, r8
nop dword [rax]
movzx eax, byte [rdx]
add eax, 0xffffffd5
cmp eax, 0x4f
ja case.0x18027f8a9.49
cdqe
movzx eax, byte [r14 + rax + 0x27fb00]
mov ecx, dword [r14 + rax*4 + 0x27faf0]
add rcx, r14
jmp rcx
inc rdx
mov qword [rdi], rdx
cmp rdx, r9
jne 0x18027f830
mov ebx, 0xffffffff
mov eax, ebx
jmp 0x18027f9f6
mov rax, rdx
sub rax, r8
and eax, 3
je case.0x18027f8a9.49
sub rax, 1
je case.0x18027f8a9.49
sub rax, 1
je 0x18027f8ab
cmp rax, 1
jne case.0x18027f8a9.48
movzx eax, byte [rdx - 1]
add eax, 0xffffffd0
cmp eax, 0x47
ja case.0x18027f8a9.49
cdqe
movzx eax, byte [r14 + rax + 0x27fb58]
mov ecx, dword [r14 + rax*4 + 0x27fb50]
add rcx, r14
jmp rcx
movzx eax, byte [rdx - 1]
sub al, 0x41
cmp al, 0x36
ja case.0x18027f8a9.49
movabs rcx, 0x40004000010001
bt rcx, rax
jae case.0x18027f8a9.49
inc rdx
mov qword [rdi], rdx
cmp rdx, r9
je case.0x18027f8a9.49
cmp byte [rdx], 0x3d
jne case.0x18027f8a9.49
mov rax, qword [rdi]
inc rax
mov qword [rdi], rax
cmp rax, r9
je case.0x18027f8a9.49
cmp byte [rax], 0x3a
je 0x18027f904
mov ebx, 0xffffffff
mov eax, ebx
jmp 0x18027f9f6
sub dl, r8b
test dl, 3
jne case.0x18027f8a9.49
xor ebx, ebx
test rsi, rsi
je 0x18027f924
mov qword [rsi], 5
mov rax, qword [rdi]
sub rax, r8
mov qword [rsi + 0x10], rax
cmove r8, rbx
mov qword [rsi + 8], r8
inc qword [rdi]
mov eax, ebx
jmp 0x18027f9f6
cmp cl, 0x3f
je 0x18027f94c
mov r8d, 0x23a
lea rdx, [0x1803e9460]
lea rcx, [0x1803defc0]
call fcn.18029a158
mov rcx, qword [rdi]
inc rcx
mov qword [rdi], rcx
cmp rcx, qword [rdi + 8]
jne 0x18027f967
mov ebx, 0xffffffff
mov eax, ebx
jmp 0x18027f9f6
movzx edx, byte [rcx]
xor ebx, ebx
sub edx, 0x30
je 0x18027f97b
cmp edx, 1
jne 0x18027f95b
mov r8d, edx
jmp 0x18027f97e
mov r8d, ebx
lea rax, [rcx + 1]
mov qword [rdi], rax
test rsi, rsi
je 0x18027f991
mov qword [rsi], rbx
mov dword [rsi + 8], r8d
mov eax, ebx
jmp 0x18027f9f6
mov r8, qword [rdi + 8]
lea rdx, [r9 + 1]
mov qword [rdi], rdx
cmp rdx, r8
je case.0x18027f9c6.34
movzx eax, byte [rdx]
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x18027f9c6.34
cdqe
movzx eax, byte [r14 + rax + 0x27fba8]
mov ecx, dword [r14 + rax*4 + 0x27fba0]
add rcx, r14
jmp rcx
inc rdx
mov qword [rdi], rdx
cmp rdx, r8
jne 0x18027f9a5
test rsi, rsi
je 0x18027f9ed
mov qword [rsi], 4
mov qword [rsi + 8], r9
mov rax, qword [rdi]
sub rax, r9
mov qword [rsi + 0x10], rax
xor eax, eax
jmp 0x18027f9f6
mov eax, 0xffffffff
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret