Function at 0x140012810
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x140012ad5
cmp ecx, 0x7c
je 0x140012ad5
cmp ecx, 0x29
jne 0x140012862
cmp dword [rbx + 0x1c], 0
jne 0x140012ad5
test dword [rbx + 0x80], 0x10000000
je 0x140012af5
jmp 0x1400129d5
cmp ecx, 0x2e
jne 0x14001287a
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.140012b90
jmp 0x1400129e2
cmp ecx, 0x5c
jne 0x1400128ef
mov rcx, rbx
call fcn.1400127b0
test byte [rbx + 0x80], 0x80
je 0x1400128e2
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x1400128b5
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.140012b90
mov rcx, rbx
call fcn.1400127b0
jmp 0x140012ac7
cmp ax, 0x42
jne 0x1400128e2
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.140012b90
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
add rax, 0xc
call fcn.1400127b0
jmp 0x140012ac7
mov rcx, rbx
call fcn.140013ee0
jmp 0x1400129ea
cmp ecx, 0x5b
jne 0x140012913
mov rcx, rbx
call fcn.1400127b0
mov rcx, rbx
call fcn.140013d60
cmp dword [rbx + 0x7c], 0x5d
jne 0x140012b00
jmp 0x1400129e2
cmp ecx, 0x28
jne 0x14001294b
mov rcx, rbx
call fcn.1400127b0
mov rcx, rbx
call fcn.140014070
cmp dword [rbx + 0x7c], 0x29
movzx edi, al
jne 0x140012b21
mov rcx, rbx
call fcn.1400127b0
test dil, dil
je 0x140012ac7
jmp 0x1400129ea
cmp ecx, 0x5e
jne 0x14001296b
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.140012b90
mov rcx, rbx
call fcn.1400127b0
jmp 0x140012ac7
cmp ecx, 0x24
jne 0x14001298b
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.140012b90
mov rcx, rbx
call fcn.1400127b0
jmp 0x140012ac7
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x140012b16
cmp ecx, 0x3f
je 0x140012b16
cmp ecx, 0x7b
je 0x140012b16
cmp ecx, 0x7d
jne 0x1400129c0
test dword [rbx + 0x80], 0x10000000
je 0x140012b0b
jmp 0x1400129d5
cmp ecx, 0x5d
jne 0x1400129d5
test dword [rbx + 0x80], 0x10000000
je 0x140012b2c
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.1400141d0
mov rcx, rbx
call fcn.1400127b0
mov eax, dword [rbx + 0x7c]
xor esi, esi
lea edi, [rsi - 1]
cmp eax, 0x2a
je 0x140012a7f
cmp eax, 0x2b
jne 0x140012a05
lea esi, [rdi + 2]
jmp 0x140012a7f
cmp eax, 0x3f
jne 0x140012a0f
lea edi, [rax - 0x3e]
jmp 0x140012a7f
cmp eax, 0x7b
jne 0x140012ac7
mov rcx, rbx
call fcn.1400127b0
mov edx, 7
mov rcx, rbx
call fcn.140015460
test al, al
je 0x140012aea
cmp dword [rbx + 0x7c], 0x2c
mov esi, dword [rbx + 0x74]
je 0x140012a42
mov edi, esi
jmp 0x140012a68
mov rcx, rbx
call fcn.1400127b0
cmp dword [rbx + 0x7c], 0x7d
je 0x140012a72
mov edx, 7
mov rcx, rbx
call fcn.140015460
test al, al
je 0x140012b37
mov edi, dword [rbx + 0x74]
cmp dword [rbx + 0x7c], 0x7d
jne 0x140012b42
cmp edi, 0xffffffff
je 0x140012a7f
cmp edi, esi
jl 0x140012b42
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
add rax, 0xc
call fcn.1400127b0
test dword [rbx + 0x80], 0x400
je 0x140012ab2
cmp dword [rbx + 0x7c], 0x3f
jne 0x140012ab2
xor bpl, bpl
mov rcx, rbx
call fcn.1400127b0
jmp 0x140012ab5
mov bpl, 1
lea rcx, [rbx + 0x40]
movzx r9d, bpl
mov r8d, edi
mov edx, esi
call fcn.140015d60
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x140012835
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov edx, 7
call fcn.140011ac0
int3
mov edx, 5
call fcn.140011ac0
int3
mov edx, 4
call fcn.140011ac0
int3
mov edx, 6
call fcn.140011ac0
int3
mov edx, 0xa
call fcn.140011ac0
int3
mov edx, 5
call fcn.140011ac0
int3
mov edx, 4
call fcn.140011ac0
int3
mov edx, 7
call fcn.140011ac0
int3
mov edx, 7
call fcn.140011ac0
int3