Function at 0x100404890
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.100404810
mov edi, eax
movzx eax, byte [r13]
test al, al
je 0x1004049d5
xor r15d, r15d
lea r14, [0x100411080]
movabs rsi, 0x20004000000001
lea rbp, [0x10040b607]
jmp 0x10040493c
lea ecx, [rax - 0x3f]
mov edx, 1
shl rdx, cl
test rdx, rsi
jne 0x100404a90
test edx, 0xa0000000
jne 0x100404a00
cmp al, 0x70
je 0x100404a20
xor r15d, r15d
mov rdx, r13
mov r8d, 1
mov rcx, r14
call fcn.1004039d0
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
je 0x1004049d5
lea rbx, [r13 + 1]
cmp al, 0x74
jg 0x100404918
cmp al, 0x3e
jg 0x1004048f0
cmp al, 0x25
je 0x1004049f0
cmp al, 0x3b
jne 0x1004049a8
test r15b, r15b
je 0x10040491b
cmp r12d, 1
jg 0x100404c41
movzx r15d, byte [0x1004110c4]
test r15b, r15b
je 0x10040491b
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 0x10040491b
cmp al, 0x20
jne 0x100404918
mov r8d, 2
lea rdx, [0x10040b644]
mov rcx, r14
call fcn.1004039d0
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
jne 0x10040493c
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 0x10040491b
mov rdx, r13
mov r8d, 1
mov rcx, r14
mov r13, rbx
call fcn.1004039d0
xor r15d, r15d
lea rbx, [rbx + 1]
jmp 0x10040491b
and r15d, edi
xor edi, edi
test r15b, r15b
je 0x10040491b
mov rax, qword [0x100411088]
mov rcx, qword [r14]
lea r8, [rcx + rax - 1]
cmp rax, 1
ja 0x100404b30
mov byte [r8], 0xa
xor edi, edi
test r12d, r12d
js 0x100404a71
nop word [rax + rax]
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.1004039d0
cmp r12d, edi
jge 0x100404a58
mov r8d, 1
mov rcx, r14
xor edi, edi
xor r15d, r15d
lea rdx, [0x10040b605]
call fcn.1004039d0
jmp 0x10040491b
test r15b, r15b
je 0x10040491b
mov rdx, qword [r14]
mov rax, qword [0x100411088]
mov byte [rdx + rax - 1], 0xa
cmp byte [r13], 0x65
je 0x100404b78
lea eax, [r12 + 1]
xor r15d, r15d
mov dword [rsp + 0x2c], eax
test eax, eax
jle 0x100404ae5
nop dword [rax + rax]
mov rdx, rbp
mov r8d, 1
mov rcx, r14
call fcn.1004039d0
mov edx, r15d
add r15d, 1
cmp edx, r12d
jne 0x100404ac8
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
call fcn.1004039d0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004039d0
cmp byte [r13], 0x3f
je 0x100404c91
cmp r12d, 1
je 0x100404bfa
movzx eax, byte [r13 + 1]
xor r15d, r15d
mov r13, rbx
jmp 0x100404934
cmp byte [r8], 0x25
jne 0x100404a47
cmp byte [r8 + 1], 0
jne 0x100404a47
lea rax, [rcx + rax - 2]
jmp 0x100404b65
movzx edx, byte [rax]
cmp dl, 0xa
je 0x100404b6a
sub rax, 1
cmp dl, 9
jne 0x100404a47
cmp rax, rcx
jne 0x100404b50
xor edi, edi
jmp 0x100404918
xor edi, edi
test r12d, r12d
jle 0x100404b99
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.1004039d0
cmp r12d, edi
jne 0x100404b80
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
call fcn.1004039d0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004039d0
mov edx, 1
mov rcx, rbx
call fcn.100404810
mov edi, eax
test al, al
jne 0x100404b20
movzx eax, byte [r13 + 1]
cmp al, 0x25
setne r9b
test al, al
setne dl
and r9b, dl
mov r15d, r9d
jne 0x100404d48
mov r13, rbx
jmp 0x100404934
movzx r15d, byte [0x1004110c4]
test r15b, r15b
je 0x1004049c5
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, [0x10040b60b]
mov rdx, rax
call qword [sym.imp.msys_ncursesw6.dll__nc_warning]
jmp 0x100404b20
mov rax, qword [0x100411088]
mov rdx, qword [0x100411080]
mov ecx, r12d
mov byte [rdx + rax - 1], 0xa
call fcn.100403b10
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
call fcn.1004039d0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004039d0
cmp byte [r13 + 1], 0x25
je 0x100404cf6
mov r13, rbx
jmp 0x1004049d5
mov r9d, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x88]
mov r8, rbx
mov rcx, qword [rsp + 0x80]
call fcn.100404890
mov r13, rax
movzx eax, byte [rax]
test al, al
setne r9b
cmp al, 0x25
setne dl
and r9b, dl
mov r15d, r9d
je 0x100404934
mov r8d, 1
lea rdx, [0x10040b609]
mov rcx, r14
xor r15d, r15d
call fcn.1004039d0
mov ecx, dword [rsp + 0x2c]
call fcn.100403b10
movzx eax, byte [r13]
jmp 0x100404934
movzx eax, byte [r13 + 2]
mov r13, rbx
test al, al
je 0x1004049d5
movsx edx, al
lea rcx, [0x10040b626]
call sub.msys_2.0.dll_strchr
test rax, rax
jne 0x1004049d5
mov rax, qword [0x100411088]
mov ecx, r12d
lea rdx, [rax + 1]
mov qword [0x100411088], rdx
mov rdx, qword [0x100411080]
mov byte [rdx + rax], 0xa
call fcn.100403b10
jmp 0x1004049d5
mov r8d, 1
lea rdx, [0x10040b609]
mov rcx, r14
xor r15d, r15d
call fcn.1004039d0
lea ecx, [r12 + 1]
call fcn.100403b10
movzx eax, byte [r13 + 1]
mov r13, rbx
jmp 0x100404934