Function at 0x1402ce980
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r15, r9
mov rbx, r8
mov rdi, rdx
mov r14, rcx
test rdx, rdx
jne 0x1402ce9d7
lea rcx, str.E175:_No_attribute_specified
call qword [case.0x1400407ae.0]
mov rbx, rax
call fcn.140182a30
test eax, eax
jne 0x1402ceeae
mov rcx, rbx
call fcn.140182400
jmp 0x1402ceeae
mov r8, rdi
lea rdx, str.bang
call fcn.14001d5e0
test eax, eax
jne 0x1402ce9f7
or dword [rbx], 2
mov eax, 1
jmp 0x1402ceeb0
mov r8, rdi
lea rdx, [0x1403bd268]
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cea22
mov rax, qword [rsp + 0x80]
or dword [rax], 1
mov eax, 1
jmp 0x1402ceeb0
mov r8, rdi
lea rdx, str.register
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cea48
or dword [rbx], 0x200
mov eax, 1
jmp 0x1402ceeb0
mov r8, rdi
lea rdx, str.keepscript
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cea6e
or dword [rbx], 0x4000000
mov eax, 1
jmp 0x1402ceeb0
mov r8, rdi
lea rdx, [0x1403bf8b4]
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cea94
or dword [rbx], 0x100
mov eax, 1
jmp 0x1402ceeb0
xor ebp, ebp
mov r13, rdi
mov esi, ebp
mov r12d, ebp
mov eax, ebp
test edi, edi
jle 0x1402ceacc
mov rcx, r14
cmp byte [rcx], 0x3d
lea edx, [rax + 1]
je 0x1402ceaba
inc rcx
mov eax, edx
cmp edx, edi
jl 0x1402ceaa7
jmp 0x1402ceacc
movsxd rsi, edx
mov r12, rdi
movsxd r13, eax
add rsi, r14
sub r12, r13
dec r12
mov r8, r13
lea rdx, str.nargs
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402ceb55
cmp r12, 1
jne 0x1402ceb3b
movzx eax, byte [rsi]
cmp al, 0x30
je 0x1402cee82
cmp al, 0x31
jne 0x1402ceb05
or dword [rbx], 0x94
mov eax, r12d
jmp 0x1402ceeb0
cmp al, 0x2a
jne 0x1402ceb16
or dword [rbx], 4
mov eax, 1
jmp 0x1402ceeb0
cmp al, 0x3f
jne 0x1402ceb27
or dword [rbx], 0x14
mov eax, 1
jmp 0x1402ceeb0
cmp al, 0x2b
jne 0x1402ceb3b
or dword [rbx], 0x84
mov eax, 1
jmp 0x1402ceeb0
lea rcx, str.E176:_Invalid_number_of_arguments
call qword [case.0x1400407ae.0]
mov rcx, rax
call fcn.140186090
jmp 0x1402ceeae
mov r8, r13
lea rdx, str.range
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cec0b
mov eax, dword [rbx]
or eax, 1
mov dword [rbx], eax
cmp r12, 1
jne 0x1402ceb88
cmp byte [rsi], 0x25
jne 0x1402ceb88
or eax, 0x20
mov dword [rbx], eax
jmp 0x1402cebee
test rsi, rsi
je 0x1402cebee
cmp dword [r15], ebp
jge 0x1402cec4c
mov rcx, rsi
call fcn.14000b638
cmp byte [rsi], 0x2d
lea rdx, [rsi + 1]
mov r8d, eax
cmovne rdx, rsi
movzx ecx, byte [rdx]
sub ecx, 0x30
cmp ecx, 0xa
jae 0x1402cebcf
nop word [rax + rax]
movzx eax, byte [rdx + 1]
inc rdx
sub eax, 0x30
cmp eax, 0xa
jb 0x1402cebc0
or dword [rbx], 0x1000
lea rax, [r12 + rsi]
mov dword [r15], r8d
cmp rdx, rax
jne 0x1402cecab
test r12, r12
je 0x1402cecab
mov rax, qword [rsp + 0x98]
cmp dword [rax], 0xb
jne 0x1402cee82
mov dword [rax], ebp
mov eax, 1
jmp 0x1402ceeb0
mov r8, r13
lea rdx, str.count
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cecdb
mov rax, qword [rsp + 0x98]
or dword [rbx], 0x1401
cmp dword [rax], 0xb
jne 0x1402cec3e
mov dword [rax], 0xa
test rsi, rsi
je 0x1402cecc5
cmp dword [r15], ebp
jl 0x1402cec66
lea rcx, str.E177:_Count_cannot_be_specified_twice
call qword [case.0x1400407ae.0]
mov rcx, rax
call fcn.140186090
jmp 0x1402ceeae
mov rcx, rsi
call fcn.14000b638
cmp byte [rsi], 0x2d
lea rdx, [rsi + 1]
mov r8d, eax
cmovne rdx, rsi
movzx ecx, byte [rdx]
sub ecx, 0x30
cmp ecx, 0xa
jae 0x1402cec9f
nop word [rax + rax]
movzx eax, byte [rdx + 1]
inc rdx
sub eax, 0x30
cmp eax, 0xa
jb 0x1402cec90
lea rax, [r12 + rsi]
mov dword [r15], r8d
cmp rdx, rax
je 0x1402cecc5
lea rcx, str.E178:_Invalid_default_value_for_count
call qword [case.0x1400407ae.0]
mov rcx, rax
call fcn.140186090
jmp 0x1402ceeae
cmp dword [r15], ebp
jge 0x1402cee82
mov dword [r15], ebp
mov eax, 1
jmp 0x1402ceeb0
mov r8, r13
lea rdx, str.complete
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402ced4c
test rsi, rsi
jne 0x1402ced17
lea rcx, str.E179:_Argument_required_for__s
call qword [case.0x1400407ae.0]
mov rcx, rax
lea rdx, str._complete
call fcn.1401860c0
jmp 0x1402ceeae
mov rax, qword [rsp + 0x90]
mov r9, rbx
mov r8, qword [rsp + 0x88]
mov edx, r12d
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.1402cfa30
test eax, eax
je 0x1402ceeae
mov eax, 1
jmp 0x1402ceeb0
mov r8, r13
lea rdx, str.addr
mov rcx, r14
call fcn.14001d5e0
test eax, eax
jne 0x1402cee89
or dword [rbx], 1
test rsi, rsi
jne 0x1402ced8f
lea rcx, str.E179:_Argument_required_for__s
call qword [case.0x1400407ae.0]
mov rcx, rax
lea rdx, str._addr
call fcn.1401860c0
jmp 0x1402ceeae
cmp dword [0x140455cc0], 0xb
lea rdx, [0x140455cc0]
mov r13, qword [rsp + 0x98]
mov r15d, ebp
je 0x1402cee28
movsxd rcx, r12d
mov r14, rbp
mov qword [rsp + 0x68], rcx
mov rax, rbp
nop dword [rax + rax]
mov rdx, qword [rax + rdx + 8]
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rdx + rdi], bpl
jne 0x1402cedd0
mov r8, rcx
mov rcx, rsi
call fcn.140005690
cmp edi, r12d
jne 0x1402ceded
test eax, eax
je 0x1402cee13
inc r14
lea rdx, [0x140455cc0]
inc r15d
lea rax, [r14 + r14*2]
lea rax, [rax*8]
cmp dword [rax + rdx], 0xb
je 0x1402cee28
mov rcx, qword [rsp + 0x68]
jmp 0x1402cedc0
movsxd rax, r15d
lea rdx, [0x140455cc0]
lea rax, [rax + rax*2]
mov eax, dword [rdx + rax*8]
mov dword [r13], eax
movsxd rax, r15d
lea rcx, [rax + rax*2]
cmp dword [rdx + rcx*8], 0xb
jne 0x1402cee76
movzx eax, byte [rsi]
test al, al
je 0x1402cee55
mov rcx, rsi
nop
cmp al, 0x20
je 0x1402cee55
cmp al, 9
je 0x1402cee55
movzx eax, byte [rcx + 1]
inc rcx
inc ebp
test al, al
jne 0x1402cee40
movsxd rax, ebp
lea rcx, str.E180:_Invalid_address_type_value:__s
mov byte [rax + rsi], 0
call qword [case.0x1400407ae.0]
mov rcx, rax
mov rdx, rsi
call fcn.1401860c0
jmp 0x1402ceeae
cmp dword [r13], ebp
je 0x1402cee82
or dword [rbx], 0x1000
mov eax, 1
jmp 0x1402ceeb0
movzx ebx, byte [r14 + rdi]
lea rcx, str.E181:_Invalid_attribute:__s
mov byte [r14 + rdi], bpl
call qword [case.0x1400407ae.0]
mov rcx, rax
mov rdx, r14
call fcn.1401860c0
mov byte [r14 + rdi], bl
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret