Function at 0x1800c50f4
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x70
mov rbx, qword [0x1801e6b00]
xor r8d, r8d
mov rdi, rcx
mov qword [rbp - 0x50], r8
mov dword [rbp - 0x48], r8d
mov esi, r8d
mov qword [rbp - 0x40], r8
movsx eax, byte [rbx]
inc rbx
mov dword [rbp - 0x38], r8d
mov qword [0x1801e6b00], rbx
cmp eax, 0x41
jg 0x1800c534c
je 0x1800c5844
test eax, eax
je 0x1800c5333
cmp eax, 0x2f
jle 0x1800c582f
cmp eax, 0x31
jle 0x1800c51e0
cmp eax, 0x39
jg 0x1800c582f
movsx eax, byte [rbx - 1]
sub eax, 0x32
movsxd rdx, eax
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
lea rcx, [rbp - 0x50]
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c1870
xor r8d, r8d
cmp qword [rbp - 0x50], r8
je 0x1800c51c0
lea rdx, str.operator
lea rcx, [rbp - 0x10]
call fcn.1800c15bc
mov rcx, rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
call fcn.1800c1b00
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x50], rax
mov eax, dword [rbp - 0x18]
mov dword [rbp - 0x48], eax
mov rax, qword [rbp - 0x50]
mov qword [rdi], rax
mov eax, dword [rbp - 0x48]
mov dword [rdi + 8], eax
mov rax, rdi
mov rbx, qword [rsp + 0x90]
add rsp, 0x70
pop rdi
pop rsi
pop rbp
ret
mov qword [rbp - 0x40], r8
mov dword [rbp - 0x38], r8d
test dl, dl
je 0x1800c52a3
lea rcx, [rbp - 0x10]
call fcn.1800c6824
and qword [rbp - 0x30], rsi
lea rdx, [rbp + 0x38]
and dword [rbp - 0x28], esi
lea rcx, [rbp - 0x30]
mov r8d, 1
mov byte [rbp + 0x38], 0x3c
mov rbx, rax
call fcn.1800c2bdc
mov r8, rbx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.1800c1b00
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x40]
call fcn.1800c1bb0
mov rsi, qword [rbp - 0x40]
test rsi, rsi
je 0x1800c5263
mov rax, qword [rsi]
mov rbx, qword [rax + 8]
mov rcx, rbx
call fcn.1800bd45c
mov rcx, rsi
call rbx
cmp al, 0x3e
jne 0x1800c5263
mov dl, 0x20
lea rcx, [rbp - 0x40]
call fcn.1800c1bf4
mov dl, 0x3e
lea rcx, [rbp - 0x40]
call fcn.1800c1bf4
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x1800c527a
mov byte [rax], 1
mov rbx, qword [0x1801e6b00]
cmp byte [rbx], 0
jne 0x1800c5295
mov rax, qword [rbp - 0x40]
mov qword [rdi], rax
mov eax, dword [rbp - 0x38]
jmp 0x1800c51ca
mov rsi, qword [rbp - 0x40]
inc rbx
mov qword [0x1801e6b00], rbx
xor r8d, r8d
lea rcx, [rbp - 0x10]
xor edx, edx
call fcn.1800c76f0
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rbp - 0x50], rcx
mov dword [rbp - 0x48], edx
mov qword [0x1801e6b00], rbx
test rcx, rcx
je 0x1800c530f
cmp byte [rbx - 1], 0x31
jne 0x1800c530f
and qword [rbp - 0x30], 0
lea rdx, [rbp + 0x38]
and dword [rbp - 0x28], 0
lea rcx, [rbp - 0x30]
mov r8d, 1
mov byte [rbp + 0x38], 0x7e
call fcn.1800c2bdc
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.1800c1b00
mov rcx, qword [rbp - 0x20]
mov edx, dword [rbp - 0x18]
mov qword [rbp - 0x50], rcx
mov dword [rbp - 0x48], edx
test rsi, rsi
je 0x1800c5328
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x50]
call fcn.1800c1bb0
mov edx, dword [rbp - 0x48]
mov rcx, qword [rbp - 0x50]
mov qword [rdi], rcx
mov dword [rdi + 8], edx
jmp 0x1800c51cd
dec rbx
mov edx, 1
mov qword [0x1801e6b00], rbx
call fcn.1800c15fc
jmp 0x1800c51cd
cmp eax, 0x42
je 0x1800c583f
jle 0x1800c582f
cmp eax, 0x5a
jle 0x1800c5844
cmp eax, 0x5f
jne 0x1800c582f
movsx ecx, byte [rbx]
lea esi, [rax - 0x5e]
add rbx, rsi
mov qword [0x1801e6b00], rbx
cmp ecx, 0x4f
jg 0x1800c549a
cmp ecx, 0x44
jge 0x1800c5817
cmp ecx, 0x39
jg 0x1800c5433
je 0x1800c53fb
test ecx, ecx
je 0x1800c53e7
cmp ecx, 0x2f
jle 0x1800c5481
cmp ecx, 0x36
jle 0x1800c53db
cmp ecx, 0x38
jg 0x1800c5481
movsx eax, byte [rbx - 1]
sub eax, 0xe
movsxd rdx, eax
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
mov rcx, rdi
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c15bc
jmp 0x1800c51cd
movsx eax, byte [rbx - 1]
sub eax, 0xe
jmp 0x1800c516e
sub rbx, rsi
mov qword [0x1801e6b00], rbx
mov edx, esi
mov rcx, rdi
jmp 0x1800c5342
movsx eax, byte [rbx - 1]
lea rcx, [rbp - 0x20]
sub eax, 0xe
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
movsxd rdx, eax
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c15bc
mov ecx, dword [rbp - 0x18]
bts ecx, 0xf
mov rax, qword [rbp - 0x20]
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x1800c51cd
cmp ecx, 0x3f
je 0x1800c5467
cmp ecx, 0x40
jle 0x1800c5481
cmp ecx, 0x42
jle 0x1800c5817
cmp ecx, 0x43
jne 0x1800c5481
mov r8d, esi
lea rdx, str._string
lea rcx, [rbp - 0x20]
call fcn.1800c6708
mov ecx, dword [rbp - 0x18]
bts ecx, 0xc
jmp 0x1800c5424
movsx eax, byte [rbx]
add rbx, rsi
mov qword [0x1801e6b00], rbx
test eax, eax
je 0x1800c53e7
cmp eax, 0x30
je 0x1800c5491
mov dword [rdi + 8], r8d
mov byte [rdi + 8], 2
mov qword [rdi], r8
jmp 0x1800c51cd
lea rdx, str._anonymous_namespace
jmp 0x1800c5455
cmp ecx, 0x54
jg 0x1800c56c6
cmp ecx, 0x53
jge 0x1800c5817
sub ecx, 0x50
je 0x1800c5665
sub ecx, esi
je 0x1800c518c
cmp ecx, esi
jne 0x1800c5481
movsx eax, byte [rbx - 1]
lea rcx, [rbp - 0x50]
sub eax, 0x15
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
movsxd rdx, eax
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c1870
mov rax, qword [0x1801e6b00]
mov cl, byte [rax]
test cl, cl
jne 0x1800c5504
mov r8d, esi
lea rcx, [rbp - 0x50]
mov rdx, rdi
call fcn.1800c1b84
jmp 0x1800c51cd
movsx eax, cl
add eax, 0xffffffd0
js 0x1800c56b5
cmp eax, 5
jae 0x1800c56b5
movsxd rdx, eax
lea rcx, [rbp - 0x40]
mov rdx, qword [rbx + rdx*8 + 0x13ccb0]
call fcn.1800c1870
mov rcx, qword [0x1801e6b00]
movsx eax, byte [rcx]
add rcx, rsi
mov qword [0x1801e6b00], rcx
cmp eax, 0x30
je 0x1800c5632
cmp eax, 0x31
je 0x1800c557b
add eax, 0xffffffce
cmp eax, 2
ja 0x1800c556c
lea rcx, [rbp - 0x50]
mov rdx, rdi
lea r8, [rbp - 0x40]
call fcn.1800c1b00
jmp 0x1800c51cd
sub rcx, rsi
mov qword [0x1801e6b00], rcx
jmp 0x1800c53f1
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.1800c1b00
lea rcx, [rbp - 0x10]
call fcn.1800c6450
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.1800c1b2c
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.1800c1bb0
lea rcx, [rbp - 0x10]
call fcn.1800c6450
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.1800c1b2c
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.1800c1bb0
lea rcx, [rbp - 0x10]
call fcn.1800c6450
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.1800c1b2c
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.1800c1bb0
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.1800c4270
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x29
call fcn.1800c1b2c
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.1800c1bb0
mov r8b, 0x27
lea rcx, [rbp - 0x30]
mov rdx, rdi
call fcn.1800c1b2c
jmp 0x1800c51cd
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.1800c3ef4
mov r8b, 0x20
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x20]
call fcn.1800c1b2c
mov rcx, rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x30]
call fcn.1800c1b00
mov rcx, rax
jmp 0x1800c555b
movsx eax, byte [rbx - 1]
lea rcx, [rbp - 0x50]
sub eax, 0x15
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
movsxd rdx, eax
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c1870
xor r8d, r8d
lea rcx, [rbp - 0x10]
xor edx, edx
call fcn.1800c50f4
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rbp - 0x40], rcx
mov dword [rbp - 0x38], edx
test rcx, rcx
je 0x1800c5557
bt edx, 0xa
jae 0x1800c5557
and dword [rdi + 8], 0
and qword [rdi], 0
mov byte [rdi + 8], 2
jmp 0x1800c51cd
cmp ecx, 0x56
jle 0x1800c5823
cmp ecx, 0x57
jle 0x1800c5481
cmp ecx, 0x59
jle 0x1800c5817
cmp ecx, 0x5f
jne 0x1800c5481
movsx eax, byte [rbx]
add rbx, rsi
mov qword [0x1801e6b00], rbx
cmp eax, 0x41
jl 0x1800c5481
cmp eax, 0x44
jle 0x1800c5721
cmp eax, 0x46
jle 0x1800c5796
cmp eax, 0x4a
jle 0x1800c5721
cmp eax, 0x4b
je 0x1800c572d
cmp eax, 0x4c
jne 0x1800c5481
movsx eax, byte [rbx - 1]
add eax, 4
jmp 0x1800c53bc
movsx eax, byte [rbx - 1]
lea rcx, [rbp - 0x30]
add eax, 4
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
movsxd rdx, eax
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c15bc
jmp 0x1800c576b
cmp cl, 0x40
je 0x1800c577d
add rax, rsi
mov dl, cl
lea rcx, [rbp - 0x30]
mov qword [0x1801e6b00], rax
call fcn.1800c1bf4
mov rax, qword [0x1801e6b00]
mov cl, byte [rax]
test cl, cl
jne 0x1800c5751
cmp cl, 0x40
jne 0x1800c5787
add rax, rsi
mov qword [0x1801e6b00], rax
mov rax, qword [rbp - 0x30]
mov qword [rdi], rax
mov eax, dword [rbp - 0x28]
jmp 0x1800c51ca
movsx eax, byte [rbx - 1]
lea rcx, [rbp - 0x30]
add eax, 4
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
movsxd rdx, eax
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c15bc
mov rax, qword [0x1801e6b00]
lea rcx, [rbp - 0x10]
cmp byte [rax], 0x3f
jne 0x1800c57f1
call fcn.1800c3fd4
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.1800c1bb0
mov rax, qword [0x1801e6b00]
cmp byte [rax], 0x40
jne 0x1800c5802
add rax, rsi
mov qword [0x1801e6b00], rax
jmp 0x1800c5802
call fcn.1800c67d8
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.1800c1bb0
lea rdx, [0x18013d380]
lea rcx, [rbp - 0x30]
call fcn.1800c1c74
jmp 0x1800c5787
movsx eax, byte [rbx - 1]
sub eax, 0x15
jmp 0x1800c53bc
movsx eax, byte [rbx - 1]
sub eax, 0x15
jmp 0x1800c516e
mov dword [rcx + 8], r8d
mov byte [rcx + 8], 2
mov qword [rcx], r8
jmp 0x1800c51cd
mov esi, 1
movsx eax, byte [rbx - 1]
lea rcx, [rbp - 0x50]
sub eax, 0x39
lea rbx, sym.MZ_B_9V_N_IMY_ToElo0.GX_qAb_rTZsvR__kiB_qQR_Yr_
movsxd rdx, eax
mov rdx, qword [rbx + rdx*8 + 0x13ca20]
call fcn.1800c1870
xor r8d, r8d
test esi, esi
je 0x1800c518c
cmp qword [rbp - 0x50], r8
je 0x1800c51c0
bts dword [rbp - 0x48], 9
jmp 0x1800c51c0