Function at 0x14014a110
Capabilities:
Parse credit card information

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
call fcn.14014acd0
mov r9, rax
lea rdi, [rax + 0x10]
mov rcx, qword [rax + 0x110]
cmp rcx, 0x40
mov qword [rbp - 0x18], rax
jb 0x14014a191
add rax, 0x120
mov rcx, qword [r9 + 0x158]
test rcx, rcx
jle 0x14014a1f3
cmp qword [r9 + 0x160], 0
js 0x14014a1f3
add rcx, 0xffffffffffffff00
mov qword [r9 + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rdi
call fcn.14014adf0
jmp 0x14014a1fe
movzx r10d, byte [r9 + rcx*4 + 0x10]
lea rdx, [rcx + 1]
mov qword [r9 + 0x110], rdx
cmp rcx, 0x3f
mov byte [rbp - 9], r10b
jne 0x14014a20c
add rax, 0x120
mov rcx, qword [r9 + 0x158]
test rcx, rcx
jle 0x14014a272
cmp qword [r9 + 0x160], 0
js 0x14014a272
add rcx, 0xffffffffffffff00
mov qword [r9 + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rdi
call fcn.14014adf0
jmp 0x14014a27d
mov rcx, rax
mov rdx, rdi
call fcn.14014a940
movzx eax, byte [rdi]
mov byte [rbp - 9], al
mov r14d, 1
jmp 0x14014a280
movzx r11d, byte [r9 + rcx*4 + 0x14]
lea rdx, [rcx + 2]
mov qword [r9 + 0x110], rdx
cmp rcx, 0x3e
mov byte [rbp - 8], r11b
jb 0x14014a47c
add rax, 0x120
mov rcx, qword [r9 + 0x158]
test rcx, rcx
jle 0x14014a4db
cmp qword [r9 + 0x160], 0
js 0x14014a4db
add rcx, 0xffffffffffffff00
mov qword [r9 + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rdi
call fcn.14014adf0
jmp 0x14014a4e6
mov rcx, rax
mov rdx, rdi
call fcn.14014a940
xor r14d, r14d
movzx eax, byte [rdi + r14*4]
mov byte [rbp - 8], al
movzx eax, byte [rdi + r14*4 + 4]
mov byte [rbp - 5], al
lea rax, [r14 + 2]
add r14, 3
mov rcx, qword [rbp - 0x18]
movzx eax, byte [rcx + rax*4 + 0x10]
mov byte [rbp - 7], al
mov qword [rcx + 0x110], r14
movzx r9d, byte [rcx + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rcx + 0x110], rax
add r14, 2
movzx r8d, byte [rcx + rax*4 + 0x10]
mov qword [rcx + 0x110], r14
movzx ebx, byte [rcx + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rcx + 0x110], rax
add r14, 2
movzx r13d, byte [rcx + rax*4 + 0x10]
mov qword [rcx + 0x110], r14
movzx r12d, byte [rcx + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rcx + 0x110], rax
add r14, 2
movzx r10d, byte [rcx + rax*4 + 0x10]
mov qword [rcx + 0x110], r14
movzx r11d, byte [rcx + r14*4 + 0x10]
lea rax, [r14 + 1]
mov qword [rcx + 0x110], rax
add r14, 2
movzx eax, byte [rcx + rax*4 + 0x10]
mov byte [rbp - 6], al
mov qword [rcx + 0x110], r14
movzx eax, byte [rcx + r14*4 + 0x10]
mov byte [rbp - 4], al
lea rax, [r14 + 1]
mov qword [rcx + 0x110], rax
add r14, 2
mov eax, dword [rcx + rax*4 + 0x10]
mov dword [rbp - 0x24], eax
mov qword [rcx + 0x110], r14
lea rdi, [rdi + r14*4]
inc r14
mov r15d, dword [rdi]
mov rcx, qword [rbp - 0x18]
mov qword [rcx + 0x110], r14
mov edi, dword [rcx + r14*4 + 0x10]
inc r14
mov qword [rcx + 0x110], r14
dec qword [rcx]
jne 0x14014a3cb
dec qword [rcx + 8]
jne 0x14014a3cb
mov edx, 0x170
mov byte [rbp - 0x18], bl
mov byte [rbp - 1], r13b
mov qword [rbp - 0x20], rsi
mov esi, r8d
mov r8d, 0x10
mov r14d, r9d
mov ebx, r10d
mov r13d, r11d
call fcn.140002250
mov r11d, r13d
mov r10d, ebx
mov r8d, esi
mov rsi, qword [rbp - 0x20]
movzx r13d, byte [rbp - 1]
movzx ebx, byte [rbp - 0x18]
mov r9d, r14d
and r12b, 0x3f
or r12b, 0x80
movzx eax, byte [rbp - 5]
movzx ecx, byte [rbp - 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rbp - 9]
movzx edx, byte [rbp - 8]
shl edx, 8
or edx, eax
movd xmm0, edx
pinsrw xmm0, ecx, 1
movzx ecx, r9b
movzx eax, r8b
shl eax, 8
movzx edx, r10b
movzx r8d, r11b
shl r8d, 8
or r8d, edx
movzx edx, r13b
movzx r9d, r12b
shl r9d, 8
or r9d, edx
movd xmm1, r9d
pinsrw xmm1, r8d, 1
or eax, ecx
movzx ecx, byte [rbp - 6]
movzx edx, byte [rbp - 4]
shl edx, 8
or edx, ecx
pinsrw xmm1, edx, 2
shl r15d, 8
movzx ecx, byte [rbp - 0x24]
or ecx, r15d
pinsrw xmm1, ecx, 3
and bl, 0xf
or bl, 0x40
mov word [rsi + 4], ax
movd dword [rsi], xmm0
mov byte [rsi + 6], bl
mov byte [rsi + 0xf], dil
movq qword [rsi + 7], xmm1
mov rax, rsi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx r14d, byte [r9 + rcx*4 + 0x18]
lea r8, [rcx + 3]
mov qword [r9 + 0x110], r8
cmp rcx, 0x3d
mov byte [rbp - 5], r14b
jne 0x14014a4f3
add rax, 0x120
mov rcx, qword [r9 + 0x158]
test rcx, rcx
jle 0x14014a549
cmp qword [r9 + 0x160], 0
js 0x14014a549
add rcx, 0xffffffffffffff00
mov qword [r9 + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rdi
call fcn.14014adf0
jmp 0x14014a554
mov rcx, rax
mov rdx, rdi
call fcn.14014a940
movzx eax, byte [rdi]
mov byte [rbp - 5], al
mov eax, 1
jmp 0x14014a556
movzx ebx, byte [r9 + rcx*4 + 0x1c]
lea r8, [rcx + 4]
mov qword [r9 + 0x110], r8
cmp rdx, 0x3e
mov byte [rbp - 7], bl
jne 0x14014a55f
add rax, 0x120
mov rcx, qword [r9 + 0x158]
test rcx, rcx
jle 0x14014a591
cmp qword [r9 + 0x160], 0
js 0x14014a591
add rcx, 0xffffffffffffff00
mov qword [r9 + 0x158], rcx
mov rcx, rax
mov edx, 6
mov r8, rdi
call fcn.14014adf0
jmp 0x14014a59c
mov rcx, rax
mov rdx, rdi
call fcn.14014a940
xor eax, eax
lea r14, [rax + 1]
jmp 0x14014a299
movzx r10d, byte [r9 + rcx*4 + 0x20]
lea rdx, [rcx + 5]
mov qword [r9 + 0x110], rdx
cmp rcx, 0x3b
jb 0x14014a5b2
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov bl, r10b
call fcn.14014a910
mov r9d, ebx
xor eax, eax
jmp 0x14014a5a5
mov rcx, rax
mov rdx, rdi
call fcn.14014a940
movzx r9d, byte [rdi]
mov eax, 1
lea r14, [rax + 1]
mov rcx, qword [rbp - 0x18]
jmp 0x14014a2c1
movzx edx, byte [r9 + rcx*4 + 0x24]
mov byte [rbp - 1], dl
lea rdx, [rcx + 6]
mov qword [r9 + 0x110], rdx
cmp r8, 0x3e
jne 0x14014a5f2
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov bl, r10b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
mov r9d, ebx
movzx ebx, byte [rdi]
mov eax, 1
jmp 0x14014a627
movzx ebx, byte [r9 + rcx*4 + 0x28]
lea r8, [rcx + 7]
mov qword [r9 + 0x110], r8
cmp rcx, 0x39
jb 0x14014a634
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov r14b, r10b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
mov r9d, r14d
xor eax, eax
lea r14, [rax + 1]
mov rcx, qword [rbp - 0x18]
jmp 0x14014a2e3
movzx r13d, byte [r9 + rcx*4 + 0x2c]
lea r8, [rcx + 8]
mov qword [r9 + 0x110], r8
cmp rdx, 0x3e
jne 0x14014a672
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov r14b, r10b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
mov r9d, r14d
movzx r12d, byte [rdi]
mov eax, 1
jmp 0x14014a6a7
movzx r12d, byte [r9 + rcx*4 + 0x30]
lea rdx, [rcx + 9]
mov qword [r9 + 0x110], rdx
cmp rcx, 0x37
jb 0x14014a6b4
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov r14b, r10b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
mov r9d, r14d
xor eax, eax
lea r14, [rax + 1]
mov rcx, qword [rbp - 0x18]
jmp 0x14014a305
movzx edx, byte [r9 + rcx*4 + 0x34]
mov byte [rbp - 0x20], dl
lea rdx, [rcx + 0xa]
mov qword [r9 + 0x110], rdx
cmp r8, 0x3e
jne 0x14014a6fa
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov r14b, r10b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
mov r9d, r14d
movzx r11d, byte [rdi]
mov eax, 1
jmp 0x14014a73a
movzx r11d, byte [r9 + rcx*4 + 0x38]
lea r8, [rcx + 0xb]
mov qword [r9 + 0x110], r8
cmp rcx, 0x35
jb 0x14014a747
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov r14b, r10b
mov r15b, r11b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
mov r11d, r15d
mov r9d, r14d
xor eax, eax
lea r14, [rax + 1]
mov rcx, qword [rbp - 0x18]
jmp 0x14014a327
movzx r15d, byte [r9 + rcx*4 + 0x3c]
lea r8, [rcx + 0xc]
mov qword [r9 + 0x110], r8
cmp rdx, 0x3e
mov byte [rbp - 6], r15b
jne 0x14014a796
add rax, 0x120
mov rcx, rax
mov rdx, rdi
mov r14b, r10b
mov r15b, r11b
call fcn.14014a910
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
mov r11d, r15d
mov r9d, r14d
movzx eax, byte [rdi]
mov byte [rbp - 4], al
mov eax, 1
jmp 0x14014a7df
mov byte [rbp - 2], r11b
mov byte [rbp - 3], r10b
movzx edx, byte [r9 + rcx*4 + 0x40]
mov byte [rbp - 4], dl
lea rdx, [rcx + 0xd]
mov qword [r9 + 0x110], rdx
cmp rcx, 0x33
jb 0x14014a7ec
add rax, 0x120
mov rcx, rax
mov rdx, rdi
call fcn.14014a910
movzx r9d, byte [rbp - 3]
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
movzx r11d, byte [rbp - 2]
xor eax, eax
lea r14, [rax + 1]
mov rcx, qword [rbp - 0x18]
jmp 0x14014a34e
mov r9, qword [rbp - 0x18]
mov edx, dword [r9 + rcx*4 + 0x44]
mov dword [rbp - 0x24], edx
lea rdx, [rcx + 0xe]
mov qword [r9 + 0x110], rdx
cmp r8, 0x3e
jne 0x14014a839
add rax, 0x120
mov r14d, 1
mov rcx, rax
mov rdx, rdi
call fcn.14014a910
movzx r9d, byte [rbp - 3]
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
movzx r11d, byte [rbp - 2]
jmp 0x14014a363
mov rdx, qword [rbp - 0x18]
mov r15d, dword [rdx + rcx*4 + 0x48]
lea r14, [rcx + 0xf]
mov qword [rdx + 0x110], r14
cmp rcx, 0x31
jb 0x14014a884
add rax, 0x120
mov rcx, rax
mov rdx, rdi
call fcn.14014a910
movzx r9d, byte [rbp - 3]
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
movzx r11d, byte [rbp - 2]
xor r14d, r14d
mov rcx, qword [rbp - 0x18]
jmp 0x14014a371
mov rcx, qword [rbp - 0x18]
movzx r9d, byte [rbp - 3]
movzx r8d, byte [rbp - 1]
movzx r10d, byte [rbp - 0x20]
movzx r11d, byte [rbp - 2]
jmp 0x14014a371