Function at 0x100404880
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.100404800
mov edi, eax
movzx eax, byte [r13]
test al, al
je 0x1004049c5
xor r15d, r15d
lea r14, [0x100411080]
movabs rsi, 0x20004000000001
lea rbp, [0x10040b607]
jmp 0x10040492c
lea ecx, [rax - 0x3f]
mov edx, 1
shl rdx, cl
test rdx, rsi
jne 0x100404a80
test edx, 0xa0000000
jne 0x1004049f0
cmp al, 0x70
je 0x100404a10
xor r15d, r15d
mov rdx, r13
mov r8d, 1
mov rcx, r14
call fcn.1004039c0
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
je 0x1004049c5
lea rbx, [r13 + 1]
cmp al, 0x74
jg 0x100404908
cmp al, 0x3e
jg 0x1004048e0
cmp al, 0x25
je 0x1004049e0
cmp al, 0x3b
jne 0x100404998
test r15b, r15b
je 0x10040490b
cmp r12d, 1
jg 0x100404c31
movzx r15d, byte [0x1004110c4]
test r15b, r15b
je 0x10040490b
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 0x10040490b
cmp al, 0x20
jne 0x100404908
mov r8d, 2
lea rdx, [0x10040b644]
mov rcx, r14
call fcn.1004039c0
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
jne 0x10040492c
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 0x10040490b
mov rdx, r13
mov r8d, 1
mov rcx, r14
mov r13, rbx
call fcn.1004039c0
xor r15d, r15d
lea rbx, [rbx + 1]
jmp 0x10040490b
and r15b, dil
je 0x10040490b
mov rax, qword [0x100411088]
mov rcx, qword [r14]
lea r8, [rcx + rax - 1]
cmp rax, 1
ja 0x100404b20
mov byte [r8], 0xa
xor r15d, r15d
test r12d, r12d
js 0x100404a5a
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add r15d, 1
call fcn.1004039c0
cmp r12d, r15d
jge 0x100404a40
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
xor r15d, r15d
call fcn.1004039c0
jmp 0x10040490b
test r15b, r15b
je 0x10040490b
mov rdx, qword [r14]
mov rax, qword [0x100411088]
mov byte [rdx + rax - 1], 0xa
cmp byte [r13], 0x65
je 0x100404b68
lea eax, [r12 + 1]
xor r15d, r15d
mov dword [rsp + 0x2c], eax
test eax, eax
jle 0x100404ad5
nop dword [rax + rax]
mov rdx, rbp
mov r8d, 1
mov rcx, r14
call fcn.1004039c0
mov edx, r15d
add r15d, 1
cmp edx, r12d
jne 0x100404ab8
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
call fcn.1004039c0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004039c0
cmp byte [r13], 0x3f
je 0x100404c81
cmp r12d, 1
je 0x100404bea
movzx eax, byte [r13 + 1]
xor r15d, r15d
mov r13, rbx
jmp 0x100404924
cmp byte [r8], 0x25
jne 0x100404a32
cmp byte [r8 + 1], 0
jne 0x100404a32
lea rax, [rcx + rax - 2]
jmp 0x100404b59
movzx edx, byte [rax]
cmp dl, 0xa
je 0x100404908
sub rax, 1
cmp dl, 9
jne 0x100404a32
cmp rax, rcx
jne 0x100404b40
jmp 0x100404908
xor edi, edi
test r12d, r12d
jle 0x100404b89
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.1004039c0
cmp r12d, edi
jne 0x100404b70
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
call fcn.1004039c0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004039c0
mov edx, 1
mov rcx, rbx
call fcn.100404800
mov edi, eax
test al, al
jne 0x100404b10
movzx eax, byte [r13 + 1]
cmp al, 0x25
setne r9b
test al, al
setne dl
and r9b, dl
mov r15d, r9d
jne 0x100404d38
mov r13, rbx
jmp 0x100404924
movzx r15d, byte [0x1004110c4]
test r15b, r15b
je 0x1004049b5
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 0x100404b10
mov rax, qword [0x100411088]
mov rdx, qword [0x100411080]
mov ecx, r12d
mov byte [rdx + rax - 1], 0xa
call fcn.100403b00
mov r8d, 1
lea rdx, [0x10040b605]
mov rcx, r14
call fcn.1004039c0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004039c0
cmp byte [r13 + 1], 0x25
je 0x100404ce6
mov r13, rbx
jmp 0x1004049c5
mov r9d, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x88]
mov r8, rbx
mov rcx, qword [rsp + 0x80]
call fcn.100404880
mov r13, rax
movzx eax, byte [rax]
test al, al
setne r9b
cmp al, 0x25
setne dl
and r9b, dl
mov r15d, r9d
je 0x100404924
mov r8d, 1
lea rdx, [0x10040b609]
mov rcx, r14
xor r15d, r15d
call fcn.1004039c0
mov ecx, dword [rsp + 0x2c]
call fcn.100403b00
movzx eax, byte [r13]
jmp 0x100404924
movzx eax, byte [r13 + 2]
mov r13, rbx
test al, al
je 0x1004049c5
movsx edx, al
lea rcx, [0x10040b626]
call sub.msys_2.0.dll_strchr
test rax, rax
jne 0x1004049c5
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.100403b00
jmp 0x1004049c5
mov r8d, 1
lea rdx, [0x10040b609]
mov rcx, r14
xor r15d, r15d
call fcn.1004039c0
lea ecx, [r12 + 1]
call fcn.100403b00
movzx eax, byte [r13 + 1]
mov r13, rbx
jmp 0x100404924