Function at 0x100401dd0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rax, qword [sym.imp.cygwin1.dll_opterr]
lea rdi, [0x10040537c]
mov dword [rax], 0
mov esi, ecx
mov rbx, rdx
nop dword [rax]
lea r8, str.D:GPcdh
mov rdx, rbx
mov ecx, esi
call sub.cygwin1.dll_getopt
mov ebp, eax
cmp eax, 0xffffffff
je 0x100401d60
lea eax, [rbp - 0x3f]
cmp eax, 0x29
ja case.0x100401cb7.64
movsxd rax, dword [rdi + rax*4]
add rax, rdi
jmp rax
mov rbx, qword [rbx]
call sub.cygwin1.dll___getreent
mov rcx, qword [rax + 0x18]
mov r8, rbx
lea rdx, str.Usage:__s___D_domain___G___P___c___d___h__n__D____default_user_Domain_n__G____enable_Domain_Global_group_mode_n__P____use_ONLY_PDCs_for_group_validation_n__c____use_case_insensitive_compare_n__d____enable_debugging_n__h____this_message_n
call sub.cygwin1.dll_fprintf
xor ecx, ecx
call sub.cygwin1.dll_exit
nop word [rax + rax]
mov rax, qword [0x1004057a0]
mov dword [rax], 1
jmp 0x100401c88
mov dword [0x100409008], 1
jmp 0x100401c88
mov dword [0x100409028], 1
jmp 0x100401c88
mov dword [0x10040902c], 1
jmp 0x100401c88
mov rax, qword [sym.imp.cygwin1.dll_optarg]
mov edx, 0x10
mov rcx, qword [rax]
call fcn.100402370
mov rcx, rax
mov qword [section..bss], rax
call sub.cygwin1.dll_strlwr
jmp 0x100401c88
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rax, qword [sym.imp.cygwin1.dll_optopt]
mov ebp, dword [rax]
nop dword [rax]
mov rsi, qword [0x100409020]
call sub.cygwin1.dll___getreent
mov rcx, qword [rax + 0x18]
mov r9d, ebp
mov r8, rsi
lea rdx, str._s:_FATAL:_Unknown_option:___c._Exiting_n
call sub.cygwin1.dll_fprintf
mov rbx, qword [rbx]
call sub.cygwin1.dll___getreent
mov rcx, qword [rax + 0x18]
mov r8, rbx
lea rdx, str.Usage:__s___D_domain___G___P___c___d___h__n__D____default_user_Domain_n__G____enable_Domain_Global_group_mode_n__P____use_ONLY_PDCs_for_group_validation_n__c____use_case_insensitive_compare_n__d____enable_debugging_n__h____this_message_n
call sub.cygwin1.dll_fprintf
mov ecx, 1
call sub.cygwin1.dll_exit
nop
nop
nop
nop
nop
nop
nop
nop
nop
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov r12, qword [0x100409048]
mov rbx, rcx
mov edi, edx
call sub.cygwin1.dll_strlen
test r12, r12
je 0x100401f70
lea rax, [rax + rax*2]
cmp qword [0x100409040], rax
jb 0x100401f68
movzx r9d, byte [rbx]
test r9b, r9b
je 0x100401fca
mov esi, edi
mov ebp, edi
mov r8, r12
shr esi, 8
and ebp, 2
xor esi, 1
and esi, 1
nop dword [rax]
mov rdx, qword [0x100409040]
lea rax, [r8 + rdx - 1]
cmp r12, rax
jae 0x100401f3a
mov eax, r9d
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x100401f20
lea eax, [r9 - 0x30]
cmp al, 9
jbe 0x100401f20
lea rax, [0x100405601]
mov ecx, 0x3c
lea r10, [rax + 0xd]
test ebp, ebp
jne 0x100401ed7
test dil, 4
je 0x100401f50
lea rax, [0x1004055f8]
mov ecx, 0x3b
lea r10, [rax + 6]
cmp r9b, cl
je 0x100401ea8
cmp r10, rax
je 0x100401f50
movzx ecx, byte [rax]
add rax, 1
cmp r9b, cl
jne 0x100401e8d
nop word [rax + rax]
mov rax, r12
mov rcx, r12
add r12, 2
sub rax, r8
lea r8, str.___02X
sub rdx, rax
call sub.cygwin1.dll_snprintf
mov r8, qword [0x100409048]
jmp 0x100401f24
movzx ecx, byte [rax]
add rax, 1
cmp cl, r9b
je 0x100401fc0
cmp rax, r10
jne 0x100401ed0
xor eax, eax
test sil, sil
je 0x100401ef2
cmp r9b, 0x25
je 0x100401ea8
test dil, 0x80
jne 0x100401efe
cmp r9b, 0x20
jle 0x100401ea8
test dil, 4
jne 0x100401fb0
test dil, 1
jne 0x100401fa0
cmp eax, 1
je 0x100401ea8
nop word [rax + rax]
mov byte [r12], r9b
movzx r9d, byte [rbx + 1]
add rbx, 1
add r12, 1
test r9b, r9b
jne 0x100401e28
mov rax, r8
mov byte [r12], 0
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
test dil, 1
je 0x100401f20
lea eax, [r9 - 0x20]
cmp al, 0x5e
ja 0x100401ea8
jmp 0x100401f20
mov rcx, r12
call fcn.100402290
mov rcx, rbx
call sub.cygwin1.dll_strlen
mov edx, 1
lea rcx, [rax + rax*2 + 1]
mov qword [0x100409040], rcx
call fcn.100402100
mov qword [0x100409048], rax
mov r12, rax
jmp 0x100401e05
test eax, eax
jne 0x100401ea8
jmp 0x100401f56
test eax, eax
jne 0x100401ea8
jmp 0x100401e78
mov eax, 1
jmp 0x100401ee7
mov r8, r12
jmp 0x100401f3a