Function at 0x14003cec0
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 0x14003d26d
cmp ecx, 0x7c
je 0x14003d26d
cmp ecx, 0x29
jne 0x14003cf12
cmp dword [rbx + 0x1c], 0
jne 0x14003d26d
test dword [rbx + 0x80], 0x10000000
je 0x14003d290
jmp 0x14003d181
cmp ecx, 0x2e
jne 0x14003cf2a
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.14003f340
jmp 0x14003d18e
cmp ecx, 0x5c
jne 0x14003cf9f
mov rcx, rbx
call fcn.14003f3d0
test byte [rbx + 0x80], 0x80
je 0x14003cf92
movzx eax, word [rbx + 0x78]
cmp ax, 0x62
jne 0x14003cf65
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.14003f340
mov rcx, rbx
call fcn.14003f3d0
jmp 0x14003d25f
cmp ax, 0x42
jne 0x14003cf92
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.14003f340
mov rax, qword [rbx + 0x48]
mov rcx, rbx
xor dword [rax + 0xc], 1
add rax, 0xc
call fcn.14003f3d0
jmp 0x14003d25f
mov rcx, rbx
call fcn.14003d2e0
jmp 0x14003d196
cmp ecx, 0x5b
jne 0x14003cfc3
mov rcx, rbx
call fcn.14003f3d0
mov rcx, rbx
call fcn.14003d950
cmp dword [rbx + 0x7c], 0x5d
jne 0x14003d29e
jmp 0x14003d18e
cmp ecx, 0x28
jne 0x14003d0f7
mov rcx, rbx
call fcn.14003f3d0
inc dword [rbx + 0x1c]
mov eax, dword [rbx + 0x80]
bt eax, 0x1b
jb 0x14003cfed
cmp dword [rbx + 0x7c], 0x29
je 0x14003d290
test al, 0x20
je 0x14003d04e
cmp dword [rbx + 0x7c], 0x3f
jne 0x14003d04e
mov rcx, rbx
call fcn.14003f3d0
mov edi, dword [rbx + 0x7c]
mov rcx, rbx
call fcn.14003f3d0
mov rcx, rbx
cmp edi, 0x3a
jne 0x14003d01c
call fcn.14003e6e0
jmp 0x14003d0d1
cmp edi, 0x21
jne 0x14003d033
mov dl, 1
call fcn.14003e3b0
dec dword [rbx + 0x1c]
xor dil, dil
jmp 0x14003d0d7
cmp edi, 0x3d
jne 0x14003d2c8
xor edx, edx
call fcn.14003e3b0
dec dword [rbx + 0x1c]
xor dil, dil
jmp 0x14003d0d7
test dword [rbx + 0x70], 0x200
lea rcx, [rbx + 0x40]
je 0x14003d07e
mov edx, 8
call fcn.14003f340
mov rcx, rbx
mov rdi, rax
call fcn.14003e120
mov rdx, rdi
lea rcx, [rbx + 0x40]
call fcn.14003e7a0
jmp 0x14003d0d1
inc dword [rbx + 0x18]
mov edx, dword [rbx + 0x18]
call fcn.14003d4b0
mov rcx, rbx
mov rsi, rax
call fcn.14003e120
mov rdx, rsi
lea rcx, [rbx + 0x40]
call fcn.14003e7a0
mov edx, dword [rbx + 0x18]
lea rcx, [rbx + 0x20]
inc edx
xor r8d, r8d
call fcn.140040610
mov r8d, dword [rsi + 0x20]
mov rax, qword [rbx + 0x20]
mov ecx, r8d
shr rcx, 5
and r8d, 0x1f
lea rdx, [rax + rcx*4]
mov eax, dword [rax + rcx*4]
bts eax, r8d
mov dword [rdx], eax
dec dword [rbx + 0x1c]
mov dil, 1
cmp dword [rbx + 0x7c], 0x29
jne 0x14003d290
mov rcx, rbx
call fcn.14003f3d0
test dil, dil
je 0x14003d25f
jmp 0x14003d196
cmp ecx, 0x5e
jne 0x14003d117
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.14003f340
mov rcx, rbx
call fcn.14003f3d0
jmp 0x14003d25f
cmp ecx, 0x24
jne 0x14003d137
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.14003f340
mov rcx, rbx
call fcn.14003f3d0
jmp 0x14003d25f
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x14003d2ba
cmp ecx, 0x3f
je 0x14003d2ba
cmp ecx, 0x7b
je 0x14003d2ba
cmp ecx, 0x7d
jne 0x14003d16c
test dword [rbx + 0x80], 0x10000000
je 0x14003d2ac
jmp 0x14003d181
cmp ecx, 0x5d
jne 0x14003d181
test dword [rbx + 0x80], 0x10000000
je 0x14003d29e
movzx edx, word [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.14003c270
mov rcx, rbx
call fcn.14003f3d0
mov eax, dword [rbx + 0x7c]
xor esi, esi
lea edi, [rsi - 1]
cmp eax, 0x2a
je 0x14003d217
cmp eax, 0x2b
jne 0x14003d1ad
lea esi, [rdi + 2]
jmp 0x14003d217
cmp eax, 0x3f
jne 0x14003d1b7
lea edi, [rax - 0x3e]
jmp 0x14003d217
cmp eax, 0x7b
jne 0x14003d25f
mov rcx, rbx
call fcn.14003f3d0
mov rcx, rbx
call fcn.14003e050
test al, al
je 0x14003d282
mov eax, dword [rbx + 0x7c]
mov esi, dword [rbx + 0x74]
cmp eax, 0x2c
je 0x14003d1e7
mov edi, esi
jmp 0x14003d209
mov rcx, rbx
call fcn.14003f3d0
mov eax, dword [rbx + 0x7c]
cmp eax, 0x7d
je 0x14003d20e
mov rcx, rbx
call fcn.14003e050
test al, al
je 0x14003d282
mov edi, dword [rbx + 0x74]
mov eax, dword [rbx + 0x7c]
cmp eax, 0x7d
jne 0x14003d282
cmp edi, 0xffffffff
je 0x14003d217
cmp edi, esi
jl 0x14003d282
mov rax, qword [rbx + 0x48]
mov rcx, rbx
or dword [rax + 0xc], 4
add rax, 0xc
call fcn.14003f3d0
test dword [rbx + 0x80], 0x400
je 0x14003d24a
cmp dword [rbx + 0x7c], 0x3f
jne 0x14003d24a
xor bpl, bpl
mov rcx, rbx
call fcn.14003f3d0
jmp 0x14003d24d
mov bpl, 1
lea rcx, [rbx + 0x40]
movzx r9d, bpl
mov r8d, edi
mov edx, esi
call fcn.14003cb20
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x14003cee5
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov edx, 7
mov rcx, rbx
call fcn.14003e860
int3
mov edx, 5
mov rcx, rbx
call fcn.14003e860
int3
mov edx, 4
mov rcx, rbx
call fcn.14003e860
int3
mov edx, 6
mov rcx, rbx
call fcn.14003e860
int3
mov edx, 0xa
mov rcx, rbx
call fcn.14003e860
int3
mov edx, SafeArrayGetDim
call fcn.14003e860
int3