Function at 0x140003ae4
Capabilities:
Parse credit card information

Disassembly:
jmp 0x14002532c
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x140097fc0]
xor r12d, r12d
mov r15, r8
mov qword [rbp - 0x50], r12
mov rdi, rcx
mov dword [rbp - 0x48], r12d
mov r8b, 0x41
mov qword [rbp - 0x40], r12
mov cl, byte [rax]
lea rbx, [rax + 1]
mov dword [rbp - 0x38], r12d
mov esi, r12d
mov qword [0x140097fc0], rbx
cmp cl, r8b
jg 0x140025587
je 0x140025a6a
test cl, cl
je 0x140025565
cmp cl, 0x2f
jle 0x1400256b1
cmp cl, 0x31
jle 0x140025424
cmp cl, 0x39
jg 0x1400256b1
movsx rdx, byte [rbx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fb50]
lea rcx, [rbp - 0x50]
call fcn.1400029be
cmp qword [rbp - 0x50], r12
je 0x1400253fb
lea rdx, str.operator
lea rcx, [rbp - 0x10]
call fcn.1400036b6
mov rcx, rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
call fcn.140002725
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
lea r11, [rsp + 0x70]
mov rax, rdi
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov qword [rbp - 0x40], r12
mov r14, r12
mov dword [rbp - 0x38], r12d
mov esi, 1
test dl, dl
je 0x1400254e2
lea rcx, [rbp - 0x10]
call fcn.140003184
mov r8d, esi
mov byte [rbp + 0x48], 0x3c
lea rdx, [rbp + 0x48]
mov qword [rbp - 0x30], r12
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x28], r12d
mov rbx, rax
call fcn.1400024d7
mov r8, rbx
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.140002725
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x40]
call fcn.140001e42
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400254a6
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140019d66.0]
cmp al, 0x3e
jne 0x1400254a6
mov dl, 0x20
lea rcx, [rbp - 0x40]
call fcn.140001f82
mov dl, 0x3e
lea rcx, [rbp - 0x40]
call fcn.140001f82
test r15, r15
je 0x1400254b9
mov byte [r15], sil
mov rbx, qword [0x140097fc0]
cmp byte [rbx], r12b
jne 0x1400254d4
mov rax, qword [rbp - 0x40]
mov qword [rdi], rax
mov eax, dword [rbp - 0x38]
jmp 0x140025405
mov r14, qword [rbp - 0x40]
add rbx, rsi
mov qword [0x140097fc0], rbx
xor r8d, r8d
lea rcx, [rbp - 0x10]
xor edx, edx
call fcn.1400021df
mov rcx, qword [rax]
mov eax, dword [rax + 8]
mov qword [rbp - 0x50], rcx
mov dword [rbp - 0x48], eax
mov qword [0x140097fc0], rbx
test rcx, rcx
je 0x14002554a
cmp byte [rbx - 1], 0x31
jne 0x14002554a
mov r8d, esi
mov byte [rbp + 0x48], 0x7e
lea rdx, [rbp + 0x48]
mov qword [rbp - 0x30], r12
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x28], r12d
call fcn.1400024d7
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x30]
call fcn.140002725
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x50], rax
mov eax, dword [rbp - 0x18]
mov dword [rbp - 0x48], eax
test r14, r14
je 0x1400253fb
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x50]
call fcn.140001e42
jmp 0x1400253fb
lea rax, [rbx - 1]
mov qword [0x140097fc0], rax
lea rax, [0x140080d90]
mov dword [rdi + 8], r12d
mov qword [rdi], rax
mov byte [rdi + 8], r12b
jmp 0x140025408
cmp cl, 0x42
je 0x140025a65
jle 0x1400256b1
cmp cl, 0x5a
jle 0x140025a6a
cmp cl, 0x5f
jne 0x1400256b1
movsx ecx, byte [rbx]
lea rdx, [rbx + 1]
mov qword [0x140097fc0], rdx
cmp ecx, 0x4f
jg 0x1400256cd
cmp ecx, 0x44
jge 0x140025a33
cmp ecx, 0x39
jg 0x140025664
je 0x140025631
test ecx, ecx
je 0x140025628
cmp ecx, 0x2f
jle 0x1400256b1
cmp ecx, 0x36
jle 0x14002560f
cmp ecx, 0x38
jg 0x1400256b1
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fc70]
mov rcx, rdi
call fcn.1400036b6
jmp 0x140025408
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fc70]
jmp 0x1400253be
lea rax, [rdx - 1]
jmp 0x140025569
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
lea rcx, [rbp - 0x20]
mov rdx, qword [rbx + rdx*8 + 0x7fc70]
call fcn.1400036b6
mov ecx, dword [rbp - 0x18]
bts ecx, 0xf
mov rax, qword [rbp - 0x20]
mov qword [rdi], rax
mov dword [rdi + 8], ecx
jmp 0x140025408
cmp ecx, 0x3f
je 0x140025699
cmp ecx, 0x40
jle 0x1400256b1
cmp ecx, 0x42
jle 0x140025a33
cmp ecx, 0x43
jne 0x1400256b1
lea r8d, [rcx - 0x42]
lea rdx, str._string
lea rcx, [rbp - 0x20]
call fcn.140001136
mov ecx, dword [rbp - 0x18]
bts ecx, 0xc
jmp 0x140025655
mov al, byte [rdx]
inc rdx
mov qword [0x140097fc0], rdx
test al, al
je 0x140025628
cmp al, 0x30
je 0x1400256c1
mov dword [rdi + 8], r12d
mov byte [rdi + 8], 2
mov qword [rdi], r12
jmp 0x140025408
xor r8d, r8d
lea rdx, str._anonymous_namespace
jmp 0x140025687
cmp ecx, 0x54
jg 0x1400258e2
cmp ecx, 0x53
jge 0x140025a33
sub ecx, 0x50
je 0x140025892
sub ecx, 1
je 0x1400253c7
cmp ecx, 1
jne 0x1400256b1
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
lea rcx, [rbp - 0x50]
mov rdx, qword [rbx + rdx*8 + 0x7fc38]
call fcn.1400029be
mov rax, qword [0x140097fc0]
mov cl, byte [rax]
test cl, cl
jne 0x140025737
mov r8d, 1
lea rcx, [rbp - 0x50]
mov rdx, rdi
call fcn.140001a23
jmp 0x140025408
cmp cl, 0x30
jl 0x1400256b1
movsx rdx, cl
add rdx, 0xffffffffffffffd0
cmp rdx, 5
jae 0x1400256b1
mov rdx, qword [rbx + rdx*8 + 0x7fcb8]
lea rcx, [rbp - 0x40]
call fcn.1400029be
mov rax, qword [0x140097fc0]
mov cl, byte [rax]
inc rax
mov qword [0x140097fc0], rax
cmp cl, 0x30
je 0x14002585f
cmp cl, 0x31
je 0x1400257a8
jle 0x1400257a0
cmp cl, 0x34
jg 0x1400257a0
lea rcx, [rbp - 0x50]
mov rdx, rdi
lea r8, [rbp - 0x40]
call fcn.140002725
jmp 0x140025408
dec rax
jmp 0x140025569
lea r8, [rbp - 0x40]
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x50]
call fcn.140002725
lea rcx, [rbp - 0x10]
call fcn.140003288
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.140001069
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140001e42
lea rcx, [rbp - 0x10]
call fcn.140003288
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.140001069
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140001e42
lea rcx, [rbp - 0x10]
call fcn.140003288
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x2c
call fcn.140001069
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140001e42
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.140001a82
mov rcx, rax
lea rdx, [rbp - 0x20]
mov r8b, 0x29
call fcn.140001069
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140001e42
mov r8b, 0x27
lea rcx, [rbp - 0x30]
mov rdx, rdi
call fcn.140001069
jmp 0x140025408
xor edx, edx
lea rcx, [rbp - 0x20]
call fcn.1400027de
mov r8b, 0x20
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x20]
call fcn.140001069
mov rcx, rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x30]
call fcn.140002725
mov rcx, rax
jmp 0x14002578f
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
lea rcx, [rbp - 0x50]
mov rdx, qword [rbx + rdx*8 + 0x7fc38]
call fcn.1400029be
xor r8d, r8d
lea rcx, [rbp - 0x10]
xor edx, edx
call fcn.140003ae4
mov rcx, qword [rax]
mov edx, dword [rax + 8]
mov qword [rbp - 0x40], rcx
mov dword [rbp - 0x38], edx
test rcx, rcx
je 0x14002578b
bt edx, 0xa
jb 0x1400256b1
jmp 0x14002578b
cmp ecx, 0x56
jle 0x140025a4c
cmp ecx, 0x57
jle 0x1400256b1
cmp ecx, 0x59
jle 0x140025a33
cmp ecx, 0x5f
jne 0x1400256b1
mov al, byte [rdx]
lea esi, [rcx - 0x5e]
add rdx, rsi
mov qword [0x140097fc0], rdx
cmp al, r8b
jl 0x1400256b1
cmp al, 0x44
jle 0x14002593a
cmp al, 0x46
jle 0x1400259b7
cmp al, 0x4a
jle 0x14002593a
cmp al, 0x4b
je 0x140025953
cmp al, 0x4c
jne 0x1400256b1
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fd00]
jmp 0x140025602
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
lea rcx, [rbp - 0x30]
mov rdx, qword [rbx + rdx*8 + 0x7fd00]
call fcn.1400036b6
jmp 0x14002598c
cmp cl, 0x40
je 0x14002599e
add rax, rsi
mov dl, cl
lea rcx, [rbp - 0x30]
mov qword [0x140097fc0], rax
call fcn.140001f82
mov rax, qword [0x140097fc0]
mov cl, byte [rax]
test cl, cl
jne 0x140025972
cmp cl, 0x40
jne 0x1400259a8
add rax, rsi
mov qword [0x140097fc0], rax
mov rax, qword [rbp - 0x30]
mov qword [rdi], rax
mov eax, dword [rbp - 0x28]
jmp 0x140025405
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
lea rcx, [rbp - 0x30]
mov rdx, qword [rbx + rdx*8 + 0x7fd00]
call fcn.1400036b6
mov rax, qword [0x140097fc0]
lea rcx, [rbp - 0x10]
cmp byte [rax], 0x3f
jne 0x140025a0d
call fcn.140001398
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140001e42
mov rax, qword [0x140097fc0]
cmp byte [rax], 0x40
jne 0x140025a1e
add rax, rsi
mov qword [0x140097fc0], rax
jmp 0x140025a1e
call fcn.140003fda
mov rdx, rax
lea rcx, [rbp - 0x30]
call fcn.140001e42
lea rdx, [0x1400807f4]
lea rcx, [rbp - 0x30]
call fcn.140002b2b
jmp 0x1400259a8
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fc38]
jmp 0x140025602
movsx rdx, byte [rdx - 1]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fc38]
jmp 0x1400253be
mov esi, 1
movsx rdx, byte [rbx - 1]
lea rcx, [rbp - 0x50]
lea rbx, [0x140000000]
mov rdx, qword [rbx + rdx*8 + 0x7fb18]
call fcn.1400029be
test esi, esi
je 0x1400253c7
cmp qword [rbp - 0x50], r12
je 0x1400253fb
bts dword [rbp - 0x48], 9
jmp 0x1400253fb