Function at 0x1801c0a50
Capabilities:
Parse credit card information

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x1802cd010]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov r14, rcx
mov rsi, rdx
mov rcx, rdx
call fcn.180018a20
test r14, r14
je 0x1801c0aad
mov rdi, qword [r14]
test rdi, rdi
je 0x1801c0aad
movabs rcx, 0x100002600
nop dword [rax]
movsx rax, byte [rdi]
cmp al, 0x20
ja 0x1801c0aa3
bt rcx, rax
jae 0x1801c0aa3
inc rdi
jmp 0x1801c0a90
movzx eax, byte [rdi]
test al, al
jne 0x1801c0ab7
mov qword [r14], rdi
mov eax, 7
jmp 0x1801c0b6d
cmp al, 0x3c
jne 0x1801c0acc
lea rax, [rdi + 1]
mov qword [r14], rax
mov eax, 4
jmp 0x1801c0b6d
cmp al, 0x3e
jne 0x1801c0ae1
lea rax, [rdi + 1]
mov qword [r14], rax
mov eax, 5
jmp 0x1801c0b6d
cmp al, 0x2c
je 0x1801c0dae
cmp al, 0x3b
je 0x1801c0dae
mov qword [rsp + 0x80], rbx
cmp al, 0x3d
jne 0x1801c0bc4
cmp byte [rdi + 1], 0x3f
jne 0x1801c0bc4
movzx ecx, byte [rdi + 2]
lea rax, [rdi + 2]
test cl, cl
je 0x1801c0b5d
cmp cl, 0x3f
je 0x1801c0b29
movzx ecx, byte [rax + 1]
inc rax
test cl, cl
jne 0x1801c0b17
jmp 0x1801c0b5d
cmp byte [rax], 0
je 0x1801c0b5d
lea rcx, [rax + 1]
movzx eax, byte [rax + 1]
sub al, 0x42
cmp al, 0x2f
ja 0x1801c0bbf
movabs rdx, 0x800100008001
bt rdx, rax
jae 0x1801c0bbf
lea rax, [rcx + 1]
movzx ecx, byte [rcx + 1]
cmp cl, 0x3f
je 0x1801c0b88
mov qword [r14], rax
mov eax, 8
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180009610
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
cmp cl, 0x3f
jne 0x1801c0b8e
cmp byte [rax + 1], 0x3d
je 0x1801c0b9b
movzx ecx, byte [rax + 1]
inc rax
test cl, cl
jne 0x1801c0b83
jmp 0x1801c0b5d
cmp byte [rax], 0
je 0x1801c0b5d
lea rbx, [rax + 2]
mov rdx, rdi
mov r8d, ebx
mov rcx, rsi
sub r8d, edi
call fcn.18000c650
mov eax, 3
mov qword [r14], rbx
jmp 0x1801c0b65
mov qword [r14], rcx
jmp 0x1801c0b60
xor r8d, r8d
cmp al, 0x22
jne 0x1801c0d39
movzx ecx, byte [rdi + 1]
inc rdi
cmp cl, al
je 0x1801c0c30
nop word [rax + rax]
test cl, cl
je 0x1801c0c1e
cmp cl, 0x5c
jne 0x1801c0bf4
movzx ecx, byte [rdi + 1]
inc rdi
test cl, cl
je 0x1801c0c1e
mov byte [rsp + r8 + 0x20], cl
inc r8d
cmp r8d, 0x20
jne 0x1801c0c12
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.18000c650
xor r8d, r8d
movzx ecx, byte [rdi + 1]
inc rdi
cmp cl, 0x22
jne 0x1801c0be0
test r8d, r8d
je 0x1801c0c30
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.18000c650
cmp byte [rdi], 0
lea rax, [rdi + 1]
lea rdx, [0x1801f2520]
mov rcx, rsi
cmove rax, rdi
mov rdi, rax
mov qword [r14], rax
call fcn.18000d1f0
test al, al
je 0x1801c0da4
lea rdx, str._PN
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, [0x18024f610]
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, [0x18024f654]
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, str._OU
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, [0x18024f67c]
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, [0x180285a28]
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, [0x18024f630]
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, str._ADMD
mov rcx, rsi
call fcn.18000d1f0
test al, al
jne 0x1801c0d0f
lea rdx, str._PRMD
mov rcx, rsi
call fcn.18000d1f0
test al, al
je 0x1801c0da4
cmp byte [rdi], 0x40
jne 0x1801c0da4
lea rdx, [0x1801f1b58]
mov rcx, rsi
call fcn.180012010
lea rdx, [0x1801f1b58]
mov rcx, rsi
call fcn.18000b3e0
xor r8d, r8d
movzx ecx, byte [rdi]
cmp cl, 0x20
je 0x1801c0d97
movabs rbx, 0x5800100400000201
nop dword [rax + rax]
cmp cl, 0x3e
ja 0x1801c0d5b
bt rbx, rcx
jb 0x1801c0d85
mov byte [rsp + r8 + 0x20], cl
inc r8d
cmp r8d, 0x20
jne 0x1801c0d79
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.18000c650
xor r8d, r8d
movzx ecx, byte [rdi + 1]
inc rdi
cmp cl, 0x20
jne 0x1801c0d50
test r8d, r8d
je 0x1801c0d97
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.18000c650
mov qword [r14], rdi
mov eax, 1
jmp 0x1801c0b65
mov eax, 2
jmp 0x1801c0b65
lea rax, [rdi + 1]
mov qword [r14], rax
mov eax, 6
jmp 0x1801c0b6d