Function at 0x100407a30
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.1004079b0
mov edi, eax
movzx eax, byte [r13]
test al, al
je 0x100407b75
xor r15d, r15d
lea r14, [0x1004170a0]
movabs rsi, 0x20004000000001
lea rbp, [0x100410d07]
jmp 0x100407adc
lea ecx, [rax - 0x3f]
mov edx, 1
shl rdx, cl
test rdx, rsi
jne 0x100407c30
test edx, 0xa0000000
jne 0x100407ba0
cmp al, 0x70
je 0x100407bc0
xor r15d, r15d
mov rdx, r13
mov r8d, 1
mov rcx, r14
call fcn.100406b70
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
je 0x100407b75
lea rbx, [r13 + 1]
cmp al, 0x74
jg 0x100407ab8
cmp al, 0x3e
jg 0x100407a90
cmp al, 0x25
je 0x100407b90
cmp al, 0x3b
jne 0x100407b48
test r15b, r15b
je 0x100407abb
cmp r12d, 1
jg 0x100407de1
movzx r15d, byte [0x1004170e4]
test r15b, r15b
je 0x100407abb
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 0x100407abb
cmp al, 0x20
jne 0x100407ab8
mov r8d, 2
lea rdx, [0x100410d44]
mov rcx, r14
call fcn.100406b70
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
jne 0x100407adc
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 0x100407abb
mov rdx, r13
mov r8d, 1
mov rcx, r14
mov r13, rbx
call fcn.100406b70
xor r15d, r15d
lea rbx, [rbx + 1]
jmp 0x100407abb
and r15d, edi
xor edi, edi
test r15b, r15b
je 0x100407abb
mov rax, qword [0x1004170a8]
mov rcx, qword [r14]
lea r8, [rcx + rax - 1]
cmp rax, 1
ja 0x100407cd0
mov byte [r8], 0xa
xor edi, edi
test r12d, r12d
js 0x100407c11
nop word [rax + rax]
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.100406b70
cmp r12d, edi
jge 0x100407bf8
mov r8d, 1
mov rcx, r14
xor edi, edi
xor r15d, r15d
lea rdx, [0x100410d05]
call fcn.100406b70
jmp 0x100407abb
test r15b, r15b
je 0x100407abb
mov rdx, qword [r14]
mov rax, qword [0x1004170a8]
mov byte [rdx + rax - 1], 0xa
cmp byte [r13], 0x65
je 0x100407d18
lea eax, [r12 + 1]
xor r15d, r15d
mov dword [rsp + 0x2c], eax
test eax, eax
jle 0x100407c85
nop dword [rax + rax]
mov rdx, rbp
mov r8d, 1
mov rcx, r14
call fcn.100406b70
mov edx, r15d
add r15d, 1
cmp edx, r12d
jne 0x100407c68
mov r8d, 1
lea rdx, [0x100410d05]
mov rcx, r14
call fcn.100406b70
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.100406b70
cmp byte [r13], 0x3f
je 0x100407e31
cmp r12d, 1
je 0x100407d9a
movzx eax, byte [r13 + 1]
xor r15d, r15d
mov r13, rbx
jmp 0x100407ad4
cmp byte [r8], 0x25
jne 0x100407be7
cmp byte [r8 + 1], 0
jne 0x100407be7
lea rax, [rcx + rax - 2]
jmp 0x100407d05
movzx edx, byte [rax]
cmp dl, 0xa
je 0x100407d0a
sub rax, 1
cmp dl, 9
jne 0x100407be7
cmp rax, rcx
jne 0x100407cf0
xor edi, edi
jmp 0x100407ab8
xor edi, edi
test r12d, r12d
jle 0x100407d39
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.100406b70
cmp r12d, edi
jne 0x100407d20
mov r8d, 1
lea rdx, [0x100410d05]
mov rcx, r14
call fcn.100406b70
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.100406b70
mov edx, 1
mov rcx, rbx
call fcn.1004079b0
mov edi, eax
test al, al
jne 0x100407cc0
movzx eax, byte [r13 + 1]
cmp al, 0x25
setne r9b
test al, al
setne dl
and r9b, dl
mov r15d, r9d
jne 0x100407ee8
mov r13, rbx
jmp 0x100407ad4
movzx r15d, byte [0x1004170e4]
test r15b, r15b
je 0x100407b65
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, [0x100410d0b]
mov rdx, rax
call qword [sym.imp.msys_ncursesw6.dll__nc_warning]
jmp 0x100407cc0
mov rax, qword [0x1004170a8]
mov rdx, qword [0x1004170a0]
mov ecx, r12d
mov byte [rdx + rax - 1], 0xa
call fcn.100406cb0
mov r8d, 1
lea rdx, [0x100410d05]
mov rcx, r14
call fcn.100406b70
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.100406b70
cmp byte [r13 + 1], 0x25
je 0x100407e96
mov r13, rbx
jmp 0x100407b75
mov r9d, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x88]
mov r8, rbx
mov rcx, qword [rsp + 0x80]
call fcn.100407a30
mov r13, rax
movzx eax, byte [rax]
test al, al
setne r9b
cmp al, 0x25
setne dl
and r9b, dl
mov r15d, r9d
je 0x100407ad4
mov r8d, 1
lea rdx, [0x100410d09]
mov rcx, r14
xor r15d, r15d
call fcn.100406b70
mov ecx, dword [rsp + 0x2c]
call fcn.100406cb0
movzx eax, byte [r13]
jmp 0x100407ad4
movzx eax, byte [r13 + 2]
mov r13, rbx
test al, al
je 0x100407b75
movsx edx, al
lea rcx, [0x100410d26]
call sub.msys_2.0.dll_strchr
test rax, rax
jne 0x100407b75
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.100406cb0
jmp 0x100407b75
mov r8d, 1
lea rdx, [0x100410d09]
mov rcx, r14
xor r15d, r15d
call fcn.100406b70
lea ecx, [r12 + 1]
call fcn.100406cb0
movzx eax, byte [r13 + 1]
mov r13, rbx
jmp 0x100407ad4