Function at 0x1004080e0
Capabilities:
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov qword [rsp + 0x80], rcx
mov rcx, r8
mov r13, r8
mov r12d, r9d
mov qword [rsp + 0x88], rdx
mov edx, 1
call fcn.100408060
mov edi, eax
movzx eax, byte [r13]
test al, al
je 0x100408225
xor r15d, r15d
lea r14, [0x1004170a0]
movabs rsi, 0x20004000000001
lea rbp, [0x100410e07]
jmp 0x10040818c
lea ecx, [rax - 0x3f]
mov edx, 1
shl rdx, cl
test rdx, rsi
jne 0x1004082e0
test edx, 0xa0000000
jne 0x100408250
cmp al, 0x70
je 0x100408270
xor r15d, r15d
mov rdx, r13
mov r8d, 1
mov rcx, r14
call fcn.100407220
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
je 0x100408225
lea rbx, [r13 + 1]
cmp al, 0x74
jg 0x100408168
cmp al, 0x3e
jg 0x100408140
cmp al, 0x25
je 0x100408240
cmp al, 0x3b
jne 0x1004081f8
test r15b, r15b
je 0x10040816b
cmp r12d, 1
jg 0x100408491
movzx r15d, byte [0x1004170e4]
test r15b, r15b
je 0x10040816b
mov rax, qword [rsp + 0x80]
xor r15d, r15d
mov rcx, qword [rax]
call qword [sym.imp.msys_ncursesw6.dll__nc_first_name]
mov r8, qword [rsp + 0x88]
lea rcx, str._s:_____without_____in__s
mov rdx, rax
call qword [sym.imp.msys_ncursesw6.dll__nc_warning]
jmp 0x10040816b
cmp al, 0x20
jne 0x100408168
mov r8d, 2
lea rdx, [0x100410e44]
mov rcx, r14
call fcn.100407220
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
jne 0x10040818c
mov rax, r13
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15d, 1
jmp 0x10040816b
mov rdx, r13
mov r8d, 1
mov rcx, r14
mov r13, rbx
call fcn.100407220
xor r15d, r15d
lea rbx, [rbx + 1]
jmp 0x10040816b
and r15b, dil
je 0x10040816b
mov rax, qword [0x1004170a8]
mov rcx, qword [r14]
lea r8, [rcx + rax - 1]
cmp rax, 1
ja 0x100408380
mov byte [r8], 0xa
xor r15d, r15d
test r12d, r12d
js 0x1004082ba
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add r15d, 1
call fcn.100407220
cmp r12d, r15d
jge 0x1004082a0
mov r8d, 1
lea rdx, [0x100410e05]
mov rcx, r14
xor r15d, r15d
call fcn.100407220
jmp 0x10040816b
test r15b, r15b
je 0x10040816b
mov rdx, qword [r14]
mov rax, qword [0x1004170a8]
mov byte [rdx + rax - 1], 0xa
cmp byte [r13], 0x65
je 0x1004083c8
lea eax, [r12 + 1]
xor r15d, r15d
mov dword [rsp + 0x2c], eax
test eax, eax
jle 0x100408335
nop dword [rax + rax]
mov rdx, rbp
mov r8d, 1
mov rcx, r14
call fcn.100407220
mov edx, r15d
add r15d, 1
cmp edx, r12d
jne 0x100408318
mov r8d, 1
lea rdx, [0x100410e05]
mov rcx, r14
call fcn.100407220
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.100407220
cmp byte [r13], 0x3f
je 0x1004084e1
cmp r12d, 1
je 0x10040844a
movzx eax, byte [r13 + 1]
xor r15d, r15d
mov r13, rbx
jmp 0x100408184
cmp byte [r8], 0x25
jne 0x100408292
cmp byte [r8 + 1], 0
jne 0x100408292
lea rax, [rcx + rax - 2]
jmp 0x1004083b9
movzx edx, byte [rax]
cmp dl, 0xa
je 0x100408168
sub rax, 1
cmp dl, 9
jne 0x100408292
cmp rax, rcx
jne 0x1004083a0
jmp 0x100408168
xor edi, edi
test r12d, r12d
jle 0x1004083e9
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.100407220
cmp r12d, edi
jne 0x1004083d0
mov r8d, 1
lea rdx, [0x100410e05]
mov rcx, r14
call fcn.100407220
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.100407220
mov edx, 1
mov rcx, rbx
call fcn.100408060
mov edi, eax
test al, al
jne 0x100408370
movzx eax, byte [r13 + 1]
cmp al, 0x25
setne r9b
test al, al
setne dl
and r9b, dl
mov r15d, r9d
jne 0x100408598
mov r13, rbx
jmp 0x100408184
movzx r15d, byte [0x1004170e4]
test r15b, r15b
je 0x100408215
mov rax, qword [rsp + 0x80]
movsx r15d, byte [r13 + 1]
mov rcx, qword [rax]
call qword [sym.imp.msys_ncursesw6.dll__nc_first_name]
mov r9, qword [rsp + 0x88]
mov r8d, r15d
lea rcx, [0x100410e0b]
mov rdx, rax
call qword [sym.imp.msys_ncursesw6.dll__nc_warning]
jmp 0x100408370
mov rax, qword [0x1004170a8]
mov rdx, qword [0x1004170a0]
mov ecx, r12d
mov byte [rdx + rax - 1], 0xa
call fcn.100407360
mov r8d, 1
lea rdx, [0x100410e05]
mov rcx, r14
call fcn.100407220
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.100407220
cmp byte [r13 + 1], 0x25
je 0x100408546
mov r13, rbx
jmp 0x100408225
mov r9d, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x88]
mov r8, rbx
mov rcx, qword [rsp + 0x80]
call fcn.1004080e0
mov r13, rax
movzx eax, byte [rax]
test al, al
setne r9b
cmp al, 0x25
setne dl
and r9b, dl
mov r15d, r9d
je 0x100408184
mov r8d, 1
lea rdx, [0x100410e09]
mov rcx, r14
xor r15d, r15d
call fcn.100407220
mov ecx, dword [rsp + 0x2c]
call fcn.100407360
movzx eax, byte [r13]
jmp 0x100408184
movzx eax, byte [r13 + 2]
mov r13, rbx
test al, al
je 0x100408225
movsx edx, al
lea rcx, [0x100410e26]
call sub.msys_2.0.dll_strchr
test rax, rax
jne 0x100408225
mov rax, qword [0x1004170a8]
mov ecx, r12d
lea rdx, [rax + 1]
mov qword [0x1004170a8], rdx
mov rdx, qword [0x1004170a0]
mov byte [rdx + rax], 0xa
call fcn.100407360
jmp 0x100408225
mov r8d, 1
lea rdx, [0x100410e09]
mov rcx, r14
xor r15d, r15d
call fcn.100407220
lea ecx, [r12 + 1]
call fcn.100407360
movzx eax, byte [r13 + 1]
mov r13, rbx
jmp 0x100408184