Function at 0x1401fc850
Capabilities:
Authenticate hmac
Encode data using xor
Parse credit card information

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
mov qword [r8], 0
test rdx, rdx
je 0x1401fca1f
movzx eax, word [rcx]
cmp eax, 0x2f
je 0x1401fc873
cmp eax, 0x5c
jne 0x1401fc8aa
cmp rdx, 2
jb 0x1401fca1f
movzx eax, word [rcx + 2]
cmp eax, 0x5c
je 0x1401fc88f
cmp eax, 0x2f
jne 0x1401fc97d
cmp rdx, 2
jne 0x1401fca28
mov qword [r8], 2
mov eax, 2
jmp 0x1401fca21
mov r11b, 1
xor r9d, r9d
xor r10d, r10d
movabs rax, 0xa7608d98032ac898
lea rsi, [rdx + rax]
movabs rdi, 0x19d2dba5a3ce7eda
sub rsi, rdi
sub rsi, rax
sub rsi, r10
add rsi, rdi
cmp rsi, 2
jb 0x1401fcad8
movzx eax, word [rcx + r10*2]
and eax, 0xffffffdf
add eax, 0xffffffbf
cmp ax, 0x1a
setae al
setb bl
mov rsi, r10
or rsi, 1
cmp rsi, rdx
setae sil
setb dil
xor dil, bl
and sil, al
or sil, dil
jne 0x1401fcad8
mov rax, r10
xor rax, 1
nop
inc rax
test rcx, rcx
movzx esi, word [rcx + rax*2 - 2]
mov edi, esi
and edi, 0xffffffdf
xor edi, 0xffffffbf
mov ebx, esi
and ebx, 0x7f9f
lea edi, [rdi + rbx*2]
cmp di, 0x1a
setb bl
mov edi, esi
add edi, 0xffffffd0
cmp di, 0xa
setb bpl
cmp si, 0x24
sete dil
mov r14d, dword [0x1404bec94]
cmp r14d, 0x44
jg 0x1401fc926
or dil, bpl
or dil, bl
je 0x1401fcab2
cmp rdx, rax
jne 0x1401fc920
jmp 0x1401fcad8
cmp rdx, 4
jb 0x1401fca1f
cmp word [rcx + 2], 0x3f
jne 0x1401fca1f
mov eax, dword [0x1404bec90]
lea r9d, [rax - 1]
imul r9d, eax
test r9b, 1
nop word cs:[rax + rax]
movzx eax, word [rcx + 4]
mov r9d, dword [0x1404bec94]
cmp r9d, 0x36
jg 0x1401fc9b0
cmp ax, 0x3f
jne 0x1401fca1f
nop word [rax + rax]
mov eax, dword [0x1404bec90]
lea r9d, [rax - 1]
imul r9d, eax
test r9b, 1
jne 0x1401fc9d0
lea rax, [fcn.1401fc850]
add eax, eax
add eax, 0x3fc0
mov r9d, eax
not r9d
test r9d, eax
jne 0x1401fc9d0
movzx eax, word [rcx + 6]
mov r10d, 4
mov r9b, 1
xor r11d, r11d
cmp eax, 0x2f
je 0x1401fc8b3
cmp eax, 0x5c
je 0x1401fc8b3
xor eax, eax
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
cmp rdx, 4
jb 0x1401fca90
movzx eax, word [rcx + 4]
cmp eax, 0x3f
je 0x1401fca40
cmp eax, 0x2e
jne 0x1401fca90
nop dword [rax]
mov eax, dword [0x1404bec90]
mov r9d, eax
not r9d
imul r9d, eax
test r9b, 1
je 0x1401fca61
mov eax, dword [0x1404bec94]
cmp eax, 0x62
jge 0x1401fca40
movzx eax, word [rcx + 6]
mov r9d, dword [0x1404bec94]
cmp r9d, 0xb
jg 0x1401fca56
mov r10d, 4
mov r9b, 1
xor r11d, r11d
cmp eax, 0x2f
je 0x1401fc8b3
cmp eax, 0x5c
je 0x1401fc8b3
movzx r9d, word [rcx + 4]
xor eax, eax
cmp r9d, 0x2f
je 0x1401fca21
cmp r9d, 0x5c
je 0x1401fca21
mov r10d, 2
mov r9b, 1
jmp 0x1401fcb11
cmp si, 0x3a
jne 0x1401fcad8
mov qword [r8], rax
cmp rax, rdx
jae 0x1401fcb09
movzx ecx, word [rcx + rax*2]
cmp ecx, 0x2f
je 0x1401fca21
cmp ecx, 0x5c
je 0x1401fca21
jmp 0x1401fcb09
mov eax, dword [0x1404bec94]
cmp eax, 0x25
jg 0x1401fcaf0
mov al, 1
test al, al
jne 0x1401fcb04
nop dword [rax]
mov eax, dword [0x1404bec90]
lea esi, [rax - 1]
imul esi, eax
test sil, 1
jne 0x1401fcaf0
jmp 0x1401fcae3
test r11b, r11b
je 0x1401fcb11
mov rax, rdx
jmp 0x1401fca21
mov eax, dword [0x1404bec94]
cmp eax, 0x4f
jg 0x1401fcb30
mov eax, dword [0x1404bec94]
cmp eax, 0x20
jl 0x1401fcb3d
nop word [rax + rax]
mov eax, dword [0x1404bec94]
cmp eax, 0x33
jge 0x1401fcb30
jmp 0x1401fcb1c
mov r11, rdx
sub r11, r10
je 0x1401fcb78
lea rcx, [rcx + r10*2]
mov rsi, r10
not rsi
add rsi, rdx
xor eax, eax
nop word cs:[rax + rax]
movzx edx, word [rcx + rax*2]
cmp edx, 0x5c
je 0x1401fcb7f
cmp edx, 0x2f
je 0x1401fcb7f
cmp rsi, rax
je 0x1401fcb7c
inc rax
jmp 0x1401fcb60
xor eax, eax
jmp 0x1401fcb7f
mov rax, r11
movabs rcx, 0x9443b75481dde1e1
sub rax, rcx
add rax, r10
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
test r9b, r9b
je 0x1401fca21
mov qword [r8], rax
jmp 0x1401fca21