Function at 0x14004aec5
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
xor r13d, r13d
mov qword [rsp + 0x118], rdx
mov r12, rcx
mov rbp, r8
mov r14, r9
mov al, byte [rbp]
test al, al
je 0x14004b38a
cmp al, 0x25
je 0x14004af4a
mov edx, 0x25
mov rcx, rbp
call sub.msvcrt.dll_strchr
mov r8, rax
test rax, rax
je 0x14004af2a
mov rcx, qword [rsp + 0x118]
mov r9, rbp
sub r8d, ebp
lea rdx, str._.s
call r12
jmp 0x14004af3f
mov rcx, qword [rsp + 0x118]
mov r8, rbp
lea rdx, [0x1401a400d]
call r12
movsxd rdx, eax
add rbp, rdx
jmp 0x14004b382
mov al, byte [rbp + 1]
cmp al, 0x25
jne 0x14004af69
mov rdx, qword [rsp + 0x118]
mov ecx, 0x25
add rbp, 2
call sub.msvcrt.dll_fputc
jmp 0x14004aeec
mov byte [rsp + 0x40], 0x25
lea rbx, [rbp + 1]
mov edi, 0xffffffff
cmp al, 0x30
je 0x14004af9b
mov rcx, qword [0x1401e1c30]
movsx edx, al
movzx eax, al
test byte [rcx + rax*2], 4
je 0x14004af9b
cmp byte [rbp + 2], 0x24
jne 0x14004af9b
lea edi, [rdx - 0x31]
lea rbx, [rbp + 3]
lea rsi, [rsp + 0x41]
movsx edx, byte [rbx]
lea rcx, str.__0I
mov ebp, edx
call sub.msvcrt.dll_strchr
test rax, rax
je 0x14004afc2
inc rsi
inc rbx
mov byte [rsi - 1], bpl
jmp 0x14004afa0
mov rdx, qword [0x1401e1c30]
cmp bpl, 0x2a
jne 0x14004b02d
mov dl, byte [rbx + 1]
lea rbp, [rbx + 1]
mov eax, r13d
cmp dl, 0x30
je 0x14004afff
mov r8, qword [0x1401e1c30]
movsx ecx, dl
movzx edx, dl
test byte [r8 + rdx*2], 4
je 0x14004afff
cmp byte [rbx + 2], 0x24
jne 0x14004afff
lea eax, [rcx - 0x31]
lea rbp, [rbx + 3]
shl rax, 4
inc r13d
mov rcx, rsi
mov rbx, rbp
mov eax, dword [r14 + rax]
lea rdx, [0x1401a4010]
mov r8d, eax
neg r8d
cmovs r8d, eax
call fcn.14004a792
cdqe
add rsi, rax
jmp 0x14004b044
movzx ecx, byte [rbx]
mov rax, rcx
test byte [rdx + rcx*2], 4
je 0x14004b044
inc rsi
inc rbx
mov byte [rsi - 1], al
jmp 0x14004b02d
cmp byte [rbx], 0x2e
jne 0x14004b0e1
cmp byte [rbx + 1], 0x2a
mov byte [rsi], 0x2e
lea r15, [rsi + 1]
je 0x14004b069
mov rdx, qword [0x1401e1c30]
inc rbx
mov rsi, r15
jmp 0x14004b0ca
mov dl, byte [rbx + 2]
lea rbp, [rbx + 2]
mov eax, r13d
cmp dl, 0x30
je 0x14004b09b
mov r9, qword [0x1401e1c30]
movsx r8d, dl
movzx edx, dl
test byte [r9 + rdx*2], 4
je 0x14004b09b
cmp byte [rbx + 3], 0x24
jne 0x14004b09b
lea eax, [r8 - 0x31]
lea rbp, [rbx + 4]
shl rax, 4
inc r13d
mov rcx, r15
mov rbx, rbp
mov eax, dword [r14 + rax]
lea rdx, [0x1401a4010]
mov r8d, eax
neg r8d
cmovs r8d, eax
call fcn.14004a792
movsxd rsi, eax
add rsi, r15
jmp 0x14004b0e1
movzx ecx, byte [rbx]
mov rax, rcx
test byte [rdx + rcx*2], 4
je 0x14004b0e1
inc rsi
inc rbx
mov byte [rsi - 1], al
jmp 0x14004b0ca
xor r10d, r10d
xor r15d, r15d
lea rbp, [0x1401a3fe9]
movsx edx, byte [rbx]
mov rcx, rbp
mov dword [rsp + 0x2c], r10d
mov byte [rsp + 0x2b], dl
call sub.msvcrt.dll_strchr
mov r8b, byte [rsp + 0x2b]
mov r10d, dword [rsp + 0x2c]
test rax, rax
lea rax, [rbx + 1]
je 0x14004b157
cmp r8b, 0x68
je 0x14004b13d
cmp r8b, 0x6c
je 0x14004b138
cmp r8b, 0x4c
je 0x14004b145
lea r8, str._bfd_doprnt
mov edx, 0x40a
jmp 0x14004b28d
inc r15d
jmp 0x14004b14b
mov r10d, 1
jmp 0x14004b14b
mov r15d, 2
inc rsi
mov rbx, rax
mov byte [rsi - 1], r8b
jmp 0x14004b0ee
test edi, edi
mov byte [rsi], r8b
mov rbp, rax
mov byte [rsi + 1], 0
cmovs rdi, r13
cmp r8b, 0x67
jg 0x14004b1a2
cmp r8b, 0x44
jle 0x14004b36e
lea ecx, [r8 - 0x45]
mov eax, 1
movabs rdx, 0x700000005
shl rax, cl
test rax, rdx
jne 0x14004b22b
test eax, 0xc0080000
jne 0x14004b1e2
jmp 0x14004b36e
lea ecx, [r8 - 0x69]
cmp cl, 0xf
ja 0x14004b36e
mov eax, 1
shl rax, cl
test eax, 0x9041
jne 0x14004b1e2
cmp cl, 7
je 0x14004b264
cmp cl, 0xa
jne 0x14004b36e
shl rdi, 4
lea rdx, [rsp + 0x40]
mov r8, qword [r14 + rdi]
jmp 0x14004b361
shl rdi, 4
lea rdx, [rsp + 0x40]
add rdi, r14
test r10d, r10d
jne 0x14004b1fd
test r15d, r15d
je 0x14004b1fd
dec r15d
jne 0x14004b210
mov r8d, dword [rdi]
mov rcx, qword [rsp + 0x118]
call r12
jmp 0x14004b37f
mov byte [rsi + 1], r8b
mov r8, qword [rdi]
mov byte [rsi - 2], 0x49
mov byte [rsi - 1], 0x36
mov byte [rsi], 0x34
mov byte [rsi + 2], 0
jmp 0x14004b361
shl rdi, 4
lea rdx, [rsp + 0x40]
add rdi, r14
test r15d, r15d
jne 0x14004b254
mov r8, qword [rdi]
mov rcx, qword [rsp + 0x118]
movq xmm2, r8
call r12
jmp 0x14004b37f
fld xword [rdi]
lea r8, [rsp + 0x30]
fstp xword [rsp + 0x30]
jmp 0x14004b361
mov dl, byte [rbx + 1]
shl rdi, 4
mov rax, qword [r14 + rdi]
cmp dl, 0x41
jne 0x14004b302
lea rbp, [rbx + 2]
test rax, rax
jne 0x14004b299
lea r8, str._bfd_doprnt
mov edx, 0x459
lea rcx, str._binutils_2.40_bfd_bfd.c
call fcn.14004aaa5
mov rdx, qword [rax + 0xe0]
test rdx, rdx
je 0x14004b2fd
mov rdx, qword [rdx + 8]
mov edx, dword [rdx + 8]
cmp edx, 5
jne 0x14004b2d1
mov rdx, qword [rax + 0xd0]
cmp qword [rdx + 0xc0], 0
je 0x14004b2fd
test byte [rax + 0x27], 2
jne 0x14004b2fd
mov r9, qword [rdx + 0xb0]
jmp 0x14004b2ee
cmp edx, 2
jne 0x14004b2fd
mov rdx, qword [rax + 0xd0]
test rdx, rdx
je 0x14004b2fd
mov rdx, qword [rdx + 0x40]
test rdx, rdx
je 0x14004b2fd
mov r9, qword [rdx]
mov r8, qword [rax]
lea rdx, [0x1401a4013]
test r9, r9
jne 0x14004b343
mov r8, qword [rax]
jmp 0x14004b350
cmp dl, 0x42
jne 0x14004b359
lea rbp, [rbx + 2]
test rax, rax
jne 0x14004b321
lea r8, str._bfd_doprnt
mov edx, 0x473
jmp 0x14004b28d
mov rdx, qword [rax + 0xe0]
mov r8, qword [rax]
test rdx, rdx
je 0x14004b350
test byte [rdx + 0x45], 0x10
jne 0x14004b350
mov r9, r8
mov r8, qword [rdx]
lea rdx, str._s__s_
mov rcx, qword [rsp + 0x118]
call r12
jmp 0x14004b37f
lea rdx, [0x1401a400d]
jmp 0x14004b361
lea rdx, [rsp + 0x40]
mov r8, rax
mov rcx, qword [rsp + 0x118]
call r12
jmp 0x14004b37f
lea r8, str._bfd_doprnt
mov edx, 0x480
jmp 0x14004b28d
inc r13d
inc eax
jne 0x14004aeec
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret