Function at 0x4179d0
Capabilities:
Parse credit card information

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rax, rcx
movzx ecx, byte [rcx]
cmp ecx, 0x7d
jg 0x417f85
je 0x417f79
cmp ecx, 0x29
jg 0x417bb2
je 0x417b85
cmp ecx, 0x15
jg 0x417a86
je 0x417a6c
cmp ecx, 0xb
jg 0x417a54
je 0x417a6c
dec ecx
je 0x417a25
sub ecx, 2
je 0x417a6c
sub ecx, 2
je 0x417a6c
sub ecx, 2
je 0x417a6c
cmp ecx, 2
jmp 0x417a66
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004034f8]
mov qword [rdi - 1], rax
mov rax, qword [0x00403500]
mov qword [rdi + 7], rax
mov eax, dword [0x00403508]
mov dword [rdi + 0xf], eax
jmp 0x41804c
cmp ecx, 0xd
je 0x417a6c
cmp ecx, 0xf
je 0x417a6c
cmp ecx, 0x11
je 0x417a6c
cmp ecx, 0x13
jne 0x41804c
xor eax, eax
mov rdi, r8
lea rsi, [0x00403510]
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x27]
jmp 0x418047
cmp ecx, 0x17
je 0x417a6c
cmp ecx, 0x19
je 0x417a6c
cmp ecx, 0x1b
je 0x417a6c
cmp ecx, 0x1d
je 0x417a6c
cmp ecx, 0x1f
je 0x417a6c
cmp ecx, 0x21
je 0x417b4d
cmp ecx, 0x23
je 0x417b1b
cmp ecx, 0x25
je 0x417af5
cmp ecx, 0x27
jne 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403578]
mov qword [rdi - 1], rax
mov rax, qword [0x00403580]
mov qword [rdi + 7], rax
movzx eax, word [0x00403588]
mov word [rdi + 0xf], ax
mov al, byte [0x0040358a]
mov byte [rdi + 0x11], al
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403568]
mov qword [rdi - 1], rax
mov rax, qword [0x00403570]
mov qword [rdi + 7], rax
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403550]
mov qword [rdi - 1], rax
mov rax, qword [0x00403558]
mov qword [rdi + 7], rax
mov eax, dword [0x00403560]
mov dword [rdi + 0xf], eax
mov al, byte [0x00403564]
jmp 0x417b7d
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403538]
mov qword [rdi - 1], rax
mov rax, qword [0x00403540]
mov qword [rdi + 7], rax
mov eax, dword [0x00403548]
mov dword [rdi + 0xf], eax
mov al, byte [0x0040354c]
mov byte [rdi + 0x13], al
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403590]
mov qword [rdi - 1], rax
mov eax, dword [0x00403598]
mov dword [rdi + 7], eax
mov al, byte [0x0040359c]
mov byte [rdi + 0xb], al
jmp 0x41804c
cmp ecx, 0x6f
jg 0x41804c
je 0x417f44
cmp ecx, 0x3f
jg 0x417dbf
je 0x417d88
cmp ecx, 0x2b
je 0x417d59
cmp ecx, 0x2d
je 0x417d3f
cmp ecx, 0x2f
je 0x417d25
cmp ecx, 0x31
je 0x417d03
cmp ecx, 0x33
je 0x417cbe
cmp ecx, 0x35
je 0x417c9c
cmp ecx, 0x39
je 0x417c6b
cmp ecx, 0x3b
je 0x417c29
cmp ecx, 0x3d
jne 0x41804c
lea rcx, [rax + 1]
dec edx
call fcn.0041ae48
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403658]
mov qword [rdi - 1], rax
mov rax, qword [0x00403660]
mov qword [rdi + 7], rax
mov rax, qword [0x00403668]
mov qword [rdi + 0xf], rax
movzx eax, word [0x00403670]
mov word [rdi + 0x17], ax
mov al, byte [0x00403672]
jmp 0x417cfb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403640]
mov qword [rdi - 1], rax
mov rax, qword [0x00403648]
mov qword [rdi + 7], rax
movzx eax, word [0x00403650]
mov word [rdi + 0xf], ax
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403630]
mov qword [rdi - 1], rax
mov rax, qword [0x00403638]
jmp 0x417b12
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403610]
mov qword [rdi - 1], rax
mov rax, qword [0x00403618]
mov qword [rdi + 7], rax
mov rax, qword [0x00403620]
mov qword [rdi + 0xf], rax
movzx eax, word [0x00403628]
mov word [rdi + 0x17], ax
mov al, byte [0x0040362a]
mov byte [rdi + 0x19], al
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403600]
mov qword [rdi - 1], rax
mov rax, qword [0x00403608]
jmp 0x417b12
xor eax, eax
mov rdi, r8
lea rsi, [0x004035d8]
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x24]
jmp 0x418047
xor eax, eax
mov rdi, r8
lea rsi, [0x004035b0]
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x22]
jmp 0x418047
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004035a0]
mov qword [rdi - 1], rax
mov eax, dword [0x004035a8]
mov dword [rdi + 7], eax
movzx eax, word [0x004035ac]
mov word [rdi + 0xb], ax
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403678]
mov qword [rdi - 1], rax
mov rax, qword [0x00403680]
mov qword [rdi + 7], rax
movzx eax, word [0x00403688]
mov word [rdi + 0xf], ax
mov al, byte [0x0040368a]
jmp 0x417aed
cmp ecx, 0x41
je 0x417f15
cmp ecx, 0x43
je 0x417ee8
cmp ecx, 0x45
je 0x417edc
cmp ecx, 0x47
je 0x417eaf
cmp ecx, 0x49
je 0x417e95
cmp ecx, 0x4b
je 0x417e68
cmp ecx, 0x4d
je 0x417e3b
cmp ecx, 0x4f
jne 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403760]
mov qword [rdi - 1], rax
mov rax, qword [0x00403768]
mov qword [rdi + 7], rax
mov rax, qword [0x00403770]
mov qword [rdi + 0xf], rax
movzx eax, word [0x00403778]
mov word [rdi + 0x17], ax
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov eax, dword [0x00403754]
mov dword [rdi - 1], eax
movzx eax, word [0x00403758]
mov word [rdi + 3], ax
mov al, byte [0x0040375a]
mov byte [rdi + 5], al
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403740]
mov qword [rdi - 1], rax
mov rax, qword [0x00403748]
mov qword [rdi + 7], rax
movzx eax, word [0x00403750]
jmp 0x417c93
xor eax, eax
mov rdi, r8
lea rsi, [0x00403710]
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x2d]
jmp 0x418047
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004036f8]
mov qword [rdi - 1], rax
mov rax, qword [0x00403700]
mov qword [rdi + 7], rax
movzx eax, word [0x00403708]
jmp 0x417c93
lea rsi, [0x004036c0]
jmp 0x418036
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004036a8]
mov qword [rdi - 1], rax
mov rax, qword [0x004036b0]
mov qword [rdi + 7], rax
movzx eax, word [0x004036b8]
jmp 0x417c93
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403690]
mov qword [rdi - 1], rax
mov rax, qword [0x00403698]
mov qword [rdi + 7], rax
mov al, byte [0x004036a0]
mov byte [rdi + 0xf], al
jmp 0x41804c
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403780]
mov qword [rdi - 1], rax
mov rax, qword [0x00403788]
mov qword [rdi + 7], rax
mov eax, dword [0x00403790]
mov dword [rdi + 0xf], eax
mov al, byte [0x00403794]
jmp 0x417b7d
lea rsi, [0x00403798]
jmp 0x418036
sub ecx, 0x7f
je 0x41802f
sub ecx, 0x50
je 0x418001
sub ecx, 0x2c
je 0x417ff8
sub ecx, 2
je 0x417fc0
cmp ecx, 2
jne 0x41804c
xor eax, eax
mov rdi, r8
lea rsi, [0x00403878]
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x26]
jmp 0x418047
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403858]
mov qword [rdi - 1], rax
mov rax, qword [0x00403860]
mov qword [rdi + 7], rax
mov rax, qword [0x00403868]
mov qword [rdi + 0xf], rax
movzx eax, word [0x00403870]
jmp 0x417e32
lea rsi, [0x00403820]
jmp 0x418036
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403808]
mov qword [rdi - 1], rax
mov rax, qword [0x00403810]
mov qword [rdi + 7], rax
mov rax, qword [0x00403818]
mov qword [rdi + 0xf], rax
jmp 0x41804c
lea rsi, [0x004037d0]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, r8
repne scasb al, byte [rdi]
lea ecx, [rax + 0x31]
dec rdi
rep movsb byte [rdi], byte [rsi]
add rsp, 0x28
pop rdi
pop rsi
ret