Function at 0x100407550
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
call fcn.1004074e0
mov edi, eax
movzx eax, byte [r13]
test al, al
je 0x10040768d
xor r15d, r15d
lea r14, [0x1004170a0]
movabs rsi, 0x20004000000001
lea rbp, [0x100410d67]
jmp 0x1004075fc
lea ecx, [rax - 0x3f]
mov edx, 1
shl rdx, cl
test rdx, rsi
jne 0x100407750
test edx, 0xa0000000
jne 0x1004076b8
cmp al, 0x70
je 0x1004076e0
xor r15d, r15d
mov rdx, r13
mov r8d, 1
mov rcx, r14
call fcn.1004066d0
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
je 0x10040768d
lea rbx, [r13 + 1]
cmp al, 0x74
jg 0x1004075d8
cmp al, 0x3e
jg 0x1004075b0
cmp al, 0x25
je 0x1004076a8
cmp al, 0x3b
jne 0x100407660
test r15b, r15b
je 0x1004075db
cmp r12d, 1
jg 0x1004078fa
movzx r15d, byte [0x1004170e4]
test r15b, r15b
je 0x1004075db
mov rax, qword [rsp + 0x80]
xor r15d, r15d
mov rcx, qword [rax]
call sub.msys_ncursesw6.dll__nc_first_name
mov r8, qword [rsp + 0x88]
lea rcx, str._s:_____without_____in__s
mov rdx, rax
call sub.msys_ncursesw6.dll__nc_warning
jmp 0x1004075db
cmp al, 0x20
jne 0x1004075d8
mov r8d, 2
lea rdx, [0x100410da4]
mov rcx, r14
call fcn.1004066d0
movzx eax, byte [r13 + 1]
mov r13, rbx
test al, al
jne 0x1004075fc
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 0x1004075db
mov rdx, r13
mov r8d, 1
mov rcx, r14
mov r13, rbx
call fcn.1004066d0
xor r15d, r15d
lea rbx, [rbx + 1]
jmp 0x1004075db
and r15d, edi
xor edi, edi
test r15b, r15b
je 0x1004075db
mov rax, qword [0x1004170a8]
mov rcx, qword [r14]
lea r8, [rcx + rax - 1]
cmp rax, 1
ja 0x1004077f0
mov byte [r8], 0xa
xor edi, edi
test r12d, r12d
js 0x100407731
nop word [rax + rax]
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.1004066d0
cmp r12d, edi
jge 0x100407718
mov r8d, 1
mov rcx, r14
xor edi, edi
xor r15d, r15d
lea rdx, [0x100410d65]
call fcn.1004066d0
jmp 0x1004075db
test r15b, r15b
je 0x1004075db
mov rdx, qword [r14]
mov rax, qword [0x1004170a8]
mov byte [rdx + rax - 1], 0xa
cmp byte [r13], 0x65
je 0x100407838
lea eax, [r12 + 1]
xor r15d, r15d
mov dword [rsp + 0x2c], eax
test eax, eax
jle 0x1004077a5
nop dword [rax + rax]
mov rdx, rbp
mov r8d, 1
mov rcx, r14
call fcn.1004066d0
mov edx, r15d
add r15d, 1
cmp edx, r12d
jne 0x100407788
mov r8d, 1
lea rdx, [0x100410d65]
mov rcx, r14
call fcn.1004066d0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004066d0
cmp byte [r13], 0x3f
je 0x10040794a
cmp r12d, 1
je 0x1004078b5
movzx eax, byte [r13 + 1]
xor r15d, r15d
mov r13, rbx
jmp 0x1004075f4
cmp byte [r8], 0x25
jne 0x100407707
cmp byte [r8 + 1], 0
jne 0x100407707
lea rax, [rcx + rax - 2]
jmp 0x100407825
movzx edx, byte [rax]
cmp dl, 0xa
je 0x10040782a
sub rax, 1
cmp dl, 9
jne 0x100407707
cmp rax, rcx
jne 0x100407810
xor edi, edi
jmp 0x1004075d8
xor edi, edi
test r12d, r12d
jle 0x100407859
nop
mov r8d, 1
mov rdx, rbp
mov rcx, r14
add edi, 1
call fcn.1004066d0
cmp r12d, edi
jne 0x100407840
mov r8d, 1
lea rdx, [0x100410d65]
mov rcx, r14
call fcn.1004066d0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004066d0
mov rcx, rbx
call fcn.1004074e0
mov edi, eax
test al, al
jne 0x1004077e0
movzx eax, byte [r13 + 1]
cmp al, 0x25
setne r9b
test al, al
setne dl
and r9b, dl
mov r15d, r9d
jne 0x100407a01
mov r13, rbx
jmp 0x1004075f4
movzx r15d, byte [0x1004170e4]
test r15b, r15b
je 0x10040767d
mov rax, qword [rsp + 0x80]
movsx r15d, byte [r13 + 1]
mov rcx, qword [rax]
call sub.msys_ncursesw6.dll__nc_first_name
mov r9, qword [rsp + 0x88]
mov r8d, r15d
lea rcx, [0x100410d6b]
mov rdx, rax
call sub.msys_ncursesw6.dll__nc_warning
jmp 0x1004077e0
mov rax, qword [0x1004170a8]
mov rdx, qword [0x1004170a0]
mov ecx, r12d
mov byte [rdx + rax - 1], 0xa
call fcn.100406810
mov r8d, 1
lea rdx, [0x100410d65]
mov rcx, r14
call fcn.1004066d0
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.1004066d0
cmp byte [r13 + 1], 0x25
je 0x1004079af
mov r13, rbx
jmp 0x10040768d
mov r9d, dword [rsp + 0x2c]
mov rdx, qword [rsp + 0x88]
mov r8, rbx
mov rcx, qword [rsp + 0x80]
call fcn.100407550
mov r13, rax
movzx eax, byte [rax]
test al, al
setne r9b
cmp al, 0x25
setne dl
and r9b, dl
mov r15d, r9d
je 0x1004075f4
mov r8d, 1
lea rdx, [0x100410d69]
mov rcx, r14
xor r15d, r15d
call fcn.1004066d0
mov ecx, dword [rsp + 0x2c]
call fcn.100406810
movzx eax, byte [r13]
jmp 0x1004075f4
movzx eax, byte [r13 + 2]
mov r13, rbx
test al, al
je 0x10040768d
movsx edx, al
lea rcx, [0x100410d86]
call sub.msys_2.0.dll_strchr
test rax, rax
jne 0x10040768d
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.100406810
jmp 0x10040768d
mov r8d, 1
lea rdx, [0x100410d69]
mov rcx, r14
xor r15d, r15d
call fcn.1004066d0
lea ecx, [r12 + 1]
call fcn.100406810
movzx eax, byte [r13 + 1]
mov r13, rbx
jmp 0x1004075f4