Function at 0x18003b8c0
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
xor al, al
mov ecx, dword [rcx + 0x7c]
cmp ecx, 0xffffffff
je 0x18003beab
lea rdi, [rbx + 0x10]
cmp ecx, 0x7c
je 0x18003beab
cmp ecx, 0x29
jne 0x18003b911
cmp dword [rbx + 0x1c], 0
jne 0x18003beab
test dword [rbx + 0x80], 0x10000000
je 0x18003bec9
jmp 0x18003be3a
cmp ecx, 0x2e
jne 0x18003b9a6
lea rcx, [rbx + 0x40]
mov edx, 5
call fcn.18003dff0
mov rax, qword [rbx]
mov rdx, qword [rdi]
cmp rax, rdx
je 0x18003be89
cmp byte [rax], 0x5c
jne 0x18003bc2b
lea r8, [rax + 1]
mov rcx, rax
cmp r8, rdx
je 0x18003b998
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003b96d
movzx ecx, byte [r8]
mov rdx, rax
cmp cl, 0x28
je 0x18003b989
cmp cl, 0x29
je 0x18003b989
mov rcx, rax
test r9b, 0x10
jne 0x18003b998
movzx r8d, byte [r8]
mov rdx, rax
cmp r8b, 0x7b
je 0x18003b989
mov rdx, rcx
cmp r8b, 0x7d
jne 0x18003b998
lea rax, [rdx + 1]
inc rax
mov qword [rbx], rax
jmp 0x18003be89
mov rax, rcx
inc rax
mov qword [rbx], rax
jmp 0x18003be89
cmp ecx, 0x5c
jne 0x18003bb57
mov rax, qword [rbx]
mov rdx, qword [rdi]
cmp rax, rdx
je 0x18003ba16
cmp byte [rax], cl
jne 0x18003ba10
lea r8, [rax + 1]
mov rcx, rax
cmp r8, rdx
je 0x18003ba0d
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003b9eb
movzx ecx, byte [r8]
mov rdx, rax
cmp cl, 0x28
je 0x18003ba07
cmp cl, 0x29
je 0x18003ba07
mov rcx, rax
test r9b, 0x10
jne 0x18003ba0d
movzx r8d, byte [r8]
mov rdx, rax
cmp r8b, 0x7b
je 0x18003ba07
mov rdx, rcx
cmp r8b, 0x7d
jne 0x18003ba0d
lea rax, [rdx + 1]
jmp 0x18003ba10
mov rax, rcx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.18003e370
test byte [rbx + 0x80], 0x80
je 0x18003bb4a
movzx eax, byte [rbx + 0x78]
cmp al, 0x62
jne 0x18003bacb
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.18003dff0
mov rax, qword [rbx]
mov rdx, qword [rdi]
cmp rax, rdx
je 0x18003babe
cmp byte [rax], 0x5c
jne 0x18003bab8
lea r8, [rax + 1]
mov rcx, rax
cmp r8, rdx
je 0x18003bab5
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003ba82
movzx ecx, byte [r8]
mov rdx, rax
cmp cl, 0x28
je 0x18003ba9e
cmp cl, 0x29
je 0x18003ba9e
mov rcx, rax
test r9b, 0x10
jne 0x18003bab5
movzx r8d, byte [r8]
mov rdx, rax
cmp r8b, 0x7b
je 0x18003ba9e
mov rdx, rcx
cmp r8b, 0x7d
jne 0x18003bab5
lea rax, [rdx + 1]
mov rcx, rbx
inc rax
mov qword [rbx], rax
call fcn.18003e370
jmp 0x18003be9d
mov rax, rcx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.18003e370
jmp 0x18003be9d
cmp al, 0x42
jne 0x18003bb4a
lea rcx, [rbx + 0x40]
mov edx, 4
call fcn.18003dff0
mov rax, qword [rbx + 0x48]
xor dword [rax + 0xc], 1
mov rax, qword [rbx]
mov rcx, qword [rdi]
cmp rax, rcx
je 0x18003bb3d
cmp byte [rax], 0x5c
jne 0x18003bb37
lea r8, [rax + 1]
cmp r8, rcx
je 0x18003bb37
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003bb1c
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x28
je 0x18003bb33
cmp dl, 0x29
je 0x18003bb33
test r9b, 0x10
jne 0x18003bb37
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x7b
je 0x18003bb33
cmp dl, 0x7d
jne 0x18003bb37
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.18003e370
jmp 0x18003be9d
mov rcx, rbx
call fcn.18003c040
jmp 0x18003be91
cmp ecx, 0x5b
jne 0x18003bc36
mov rax, qword [rbx]
mov rcx, qword [rdi]
cmp rax, rcx
je 0x18003bbb9
cmp byte [rax], 0x5c
jne 0x18003bbb3
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x18003bbb3
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003bb99
movzx r8d, byte [rdx]
mov rcx, rax
cmp r8b, 0x28
je 0x18003bbaf
cmp r8b, 0x29
je 0x18003bbaf
test r9b, 0x10
jne 0x18003bbb3
movzx edx, byte [rdx]
mov rcx, rax
cmp dl, 0x7b
je 0x18003bbaf
cmp dl, 0x7d
jne 0x18003bbb3
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.18003e370
mov rcx, rbx
call fcn.18003c610
cmp dword [rbx + 0x7c], 0x5d
jne 0x18003bebb
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x18003be89
cmp byte [rax], 0x5c
jne 0x18003bc2b
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x18003bc2b
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003bc11
movzx r8d, byte [rdx]
mov rcx, rax
cmp r8b, 0x28
je 0x18003bc27
cmp r8b, 0x29
je 0x18003bc27
test r9b, 0x10
jne 0x18003bc2b
movzx edx, byte [rdx]
mov rcx, rax
cmp dl, 0x7b
je 0x18003bc27
cmp dl, 0x7d
jne 0x18003bc2b
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
jmp 0x18003be89
cmp ecx, 0x28
jne 0x18003bd24
mov rax, qword [rbx]
mov rcx, qword [rdi]
cmp rax, rcx
je 0x18003bc98
cmp byte [rax], 0x5c
jne 0x18003bc92
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x18003bc92
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003bc78
movzx r8d, byte [rdx]
mov rcx, rax
cmp r8b, 0x28
je 0x18003bc8e
cmp r8b, 0x29
je 0x18003bc8e
test r9b, 0x10
jne 0x18003bc92
movzx edx, byte [rdx]
mov rcx, rax
cmp dl, 0x7b
je 0x18003bc8e
cmp dl, 0x7d
jne 0x18003bc92
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.18003e370
mov rcx, rbx
call fcn.18003e9c0
cmp dword [rbx + 0x7c], 0x29
movzx esi, al
jne 0x18003bec9
mov rax, qword [rbx]
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x18003bd0e
cmp byte [rax], 0x5c
jne 0x18003bd08
lea r8, [rax + 1]
cmp r8, rcx
je 0x18003bd08
mov r9d, dword [rbx + 0x80]
test r9b, 8
jne 0x18003bced
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x28
je 0x18003bd04
cmp dl, 0x29
je 0x18003bd04
test r9b, 0x10
jne 0x18003bd08
movzx edx, byte [r8]
mov rcx, rax
cmp dl, 0x7b
je 0x18003bd04
cmp dl, 0x7d
jne 0x18003bd08
lea rax, [rcx + 1]
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.18003e370
test sil, sil
je 0x18003be9d
jmp 0x18003be91
cmp ecx, 0x5e
jne 0x18003bd8a
lea rcx, [rbx + 0x40]
mov edx, 2
call fcn.18003dff0
mov rdx, qword [rbx + 0x10]
lea rdi, [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rdx
je 0x18003bd7d
cmp byte [rax], 0x5c
jne 0x18003bd7a
lea rcx, [rax + 1]
cmp rcx, rdx
je 0x18003bd7a
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x18003bd69
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x18003bd77
test dl, 0x10
jne 0x18003bd7a
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x18003bd7a
inc qword [rbx]
inc qword [rbx]
mov rcx, rbx
call fcn.18003e370
jmp 0x18003be9d
cmp ecx, 0x24
jne 0x18003bdf0
lea rcx, [rbx + 0x40]
mov edx, 3
call fcn.18003dff0
mov rdx, qword [rbx + 0x10]
lea rdi, [rbx + 0x10]
mov rax, qword [rbx]
cmp rax, rdx
je 0x18003bde3
cmp byte [rax], 0x5c
jne 0x18003bde0
lea rcx, [rax + 1]
cmp rcx, rdx
je 0x18003bde0
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x18003bdcf
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x18003bddd
test dl, 0x10
jne 0x18003bde0
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x18003bde0
inc qword [rbx]
inc qword [rbx]
mov rcx, rbx
call fcn.18003e370
jmp 0x18003be9d
lea eax, [rcx - 0x2a]
cmp eax, 1
jbe 0x18003bee5
cmp ecx, 0x3f
je 0x18003bee5
cmp ecx, 0x7b
je 0x18003bee5
cmp ecx, 0x7d
jne 0x18003be25
test dword [rbx + 0x80], 0x10000000
je 0x18003bed7
jmp 0x18003be3a
cmp ecx, 0x5d
jne 0x18003be3a
test dword [rbx + 0x80], 0x10000000
je 0x18003bebb
movzx edx, byte [rbx + 0x78]
lea rcx, [rbx + 0x40]
call fcn.18003acd0
mov rax, qword [rbx]
mov rdx, qword [rbx + 0x10]
cmp rax, rdx
je 0x18003be89
cmp byte [rax], 0x5c
jne 0x18003be86
lea rcx, [rax + 1]
cmp rcx, rdx
je 0x18003be86
mov edx, dword [rbx + 0x80]
test dl, 8
jne 0x18003be75
movzx eax, byte [rcx]
sub al, 0x28
cmp al, 1
jbe 0x18003be83
test dl, 0x10
jne 0x18003be86
movzx eax, byte [rcx]
sub al, 0x7b
test al, 0xfd
jne 0x18003be86
inc qword [rbx]
inc qword [rbx]
mov rcx, rbx
call fcn.18003e370
mov rcx, rbx
call fcn.18003e0d0
lea rdi, [rbx + 0x10]
mov ecx, dword [rbx + 0x7c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x18003b8e4
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov edx, 4
mov rcx, rbx
call fcn.18003d940
int3
mov edx, 5
mov rcx, rbx
call fcn.18003d940
int3
mov edx, 6
mov rcx, rbx
call fcn.18003d940
int3
mov edx, 0xa
mov rcx, rbx
call fcn.18003d940
int3