Function at 0x41817c
Capabilities:
Parse credit card information

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov esi, 1
mov rdi, rcx
cmp edx, esi
jl 0x4181eb
movzx ecx, byte [rcx]
cmp ecx, 0x7d
jg 0x4185aa
je 0x4181d1
cmp ecx, 0x29
jg 0x4182e6
je 0x41829f
cmp ecx, 0x15
jg 0x418208
je 0x4181d1
cmp ecx, 0xb
jg 0x4181f2
je 0x4181d1
dec ecx
je 0x4181d1
sub ecx, 2
je 0x4181d1
sub ecx, 2
je 0x4181d1
sub ecx, 2
jne 0x4185c0
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x2c]
sub rdi, rsi
lea rsi, [0x00403930]
rep movsb byte [rdi], byte [rsi]
add rsp, 0x28
pop rdi
pop rsi
ret
cmp ecx, 0xd
je 0x4181d1
cmp ecx, 0xf
je 0x4181d1
cmp ecx, 0x11
je 0x4181d1
cmp ecx, 0x13
je 0x4181d1
jmp 0x4181eb
cmp ecx, 0x17
je 0x4181d1
cmp ecx, 0x19
je 0x4181d1
cmp ecx, 0x1b
je 0x4181d1
cmp ecx, 0x1d
je 0x4181d1
cmp ecx, 0x1f
je 0x4181d1
cmp ecx, 0x21
je 0x41828f
cmp ecx, 0x23
je 0x418270
cmp ecx, 0x25
je 0x418251
cmp ecx, 0x27
jne 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x004039b0]
mov ecx, 0x24
jmp 0x4181e9
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403988]
mov ecx, 0x21
jmp 0x4181e9
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403960]
mov ecx, 0x26
jmp 0x4181e9
lea rcx, [rdi + 1]
dec edx
call fcn.0041a39c
jmp 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004039d8]
sub rdi, rsi
mov qword [rdi], rax
mov rax, qword [0x004039e0]
mov qword [rdi + 8], rax
mov rax, qword [0x004039e8]
mov qword [rdi + 0x10], rax
mov eax, dword [0x004039f0]
mov dword [rdi + 0x18], eax
movzx eax, word [0x004039f4]
mov word [rdi + 0x1c], ax
jmp 0x4181eb
cmp ecx, 0x6f
jg 0x4181eb
je 0x418590
cmp ecx, 0x3f
jg 0x418443
je 0x418433
cmp ecx, 0x2b
je 0x418423
cmp ecx, 0x2d
je 0x4183fd
cmp ecx, 0x2f
je 0x4183fd
cmp ecx, 0x31
je 0x4183d5
cmp ecx, 0x33
je 0x4183bb
cmp ecx, 0x35
je 0x4183a1
cmp ecx, 0x39
je 0x4183fd
cmp ecx, 0x3b
je 0x4183fd
cmp ecx, 0x3d
jne 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403a68]
sub rdi, rsi
mov qword [rdi], rax
mov rax, qword [0x00403a70]
mov qword [rdi + 8], rax
mov rax, qword [0x00403a78]
mov qword [rdi + 0x10], rax
mov eax, dword [0x00403a80]
mov dword [rdi + 0x18], eax
movzx eax, word [0x00403a84]
mov word [rdi + 0x1c], ax
mov al, byte [0x00403a86]
mov byte [rdi + 0x1e], al
jmp 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403a40]
jmp 0x418266
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403a18]
jmp 0x41824a
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403a08]
sub rdi, rsi
mov qword [rdi], rax
mov rax, qword [0x00403a10]
mov qword [rdi + 8], rax
jmp 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004039f8]
sub rdi, rsi
mov qword [rdi], rax
mov eax, dword [0x00403a00]
mov dword [rdi + 8], eax
jmp 0x4181eb
lea rcx, [rdi + 1]
dec edx
call fcn.0041ad5c
jmp 0x4181eb
lea rcx, [rdi + 1]
dec edx
call fcn.0041aa48
jmp 0x4181eb
cmp ecx, 0x41
je 0x418573
cmp ecx, 0x43
je 0x418540
cmp ecx, 0x45
je 0x418526
cmp ecx, 0x47
je 0x418509
cmp ecx, 0x49
je 0x4184f2
cmp ecx, 0x4b
je 0x4184d5
cmp ecx, 0x4d
je 0x4184a2
cmp ecx, 0x4f
jne 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403b80]
mov ecx, 0x2b
jmp 0x4181e9
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x00403b68]
sub rdi, rsi
mov qword [rdi], rax
mov rax, qword [0x00403b70]
mov qword [rdi + 8], rax
mov rax, qword [0x00403b78]
mov qword [rdi + 0x10], rax
jmp 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x23]
sub rdi, rsi
lea rsi, [0x00403b40]
jmp 0x4181e9
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403b10]
jmp 0x418498
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x33]
sub rdi, rsi
lea rsi, [0x00403ad8]
jmp 0x4181e9
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403ab0]
jmp 0x418266
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
mov rax, qword [0x004036a8]
sub rdi, rsi
mov qword [rdi], rax
mov rax, qword [0x004036b0]
mov qword [rdi + 8], rax
movzx eax, word [0x004036b8]
mov word [rdi + 0x10], ax
jmp 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x22]
sub rdi, rsi
lea rsi, [0x00403a88]
jmp 0x4181e9
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
sub rdi, rsi
lea rsi, [0x00403bb0]
jmp 0x418285
sub ecx, 0xcf
je 0x4181d1
sub ecx, 0x2c
je 0x4185d8
sub ecx, 2
je 0x4185c8
cmp ecx, 2
jmp 0x418204
lea rcx, [rdi + 1]
dec edx
call fcn.0041978c
jmp 0x4181eb
xor eax, eax
mov rdi, r8
lea rcx, [rax - 1]
repne scasb al, byte [rdi]
lea ecx, [rax + 0x39]
sub rdi, rsi
lea rsi, [0x00403bd8]
jmp 0x4181e9