Function at 0x407c4a
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 0x10], 0
cmp dword [ebp + 0x10], 0
je 0x407c73
sub esp, 8
push dword [ebp + 0x10]
push 0x4d7600
call sub.msvcrt.dll_printf
add esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x28
jle 0x407c90
sub esp, 0xc
push 0x4d4897
call sub.msvcrt.dll_printf
add esp, 0x10
mov dword [ebp - 0x10], 0
cmp dword [ebp + 0xc], 3
jne 0x407caf
sub esp, 0xc
push str.RMD160_
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0x10]
add dword [eax], edx
jmp 0x407cef
cmp dword [ebp + 0xc], 0
jle 0x407cdd
sub esp, 8
sub esp, 4
push dword [ebp + 0xc]
call fcn.00475966
add esp, 8
push eax
push str._6s_
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0x10]
add dword [eax], edx
jmp 0x407cef
mov eax, dword [ebp + 0xc]
mov edx, eax
sar edx, 0x1f
lea eax, [ebp + 0xc]
xor dword [eax], edx
lea eax, [ebp + 0xc]
sub dword [eax], edx
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
sub esp, 8
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00475ed5
add esp, 0x10
mov dword [ebp - 0x14], eax
sub esp, 0xc
push dword [ebp + 0xc]
call fcn.00476160
add esp, 0x10
mov dword [ebp - 8], eax
sub esp, 8
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
and eax, 0xff
push eax
lea eax, [ebp - 0x14]
inc dword [eax]
push 0x4d7616
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 8]
jge 0x407ec3
cmp dword [ebp - 8], 0x10
jne 0x407dc6
mov eax, dword [ebp - 0xc]
add eax, 2
cmp eax, 0x4f
jle 0x407d85
sub esp, 4
push 0x4d4899
push dword [ebp - 0x10]
push str._n_s
call sub.msvcrt.dll_printf
add esp, 0x10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
jmp 0x407d9c
sub esp, 0xc
push 0x4d4899
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
mov eax, dword [ebp - 4]
and eax, 7
test eax, eax
jne 0x407e92
sub esp, 0xc
push 0x4d4899
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
jmp 0x407e92
cmp dword [ebp - 8], 0x14
jne 0x407e46
mov eax, dword [ebp - 4]
and eax, 1
test eax, eax
jne 0x407e18
mov eax, dword [ebp - 0xc]
add eax, 4
cmp eax, 0x4f
jle 0x407e01
sub esp, 4
push 0x4d4899
push dword [ebp - 0x10]
push str._n_s
call sub.msvcrt.dll_printf
add esp, 0x10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
jmp 0x407e18
sub esp, 0xc
push 0x4d4899
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
mov edx, dword [ebp - 4]
mov eax, 0xa
mov ecx, eax
mov eax, edx
sar edx, 0x1f
idiv ecx
test edx, edx
jne 0x407e92
sub esp, 0xc
push 0x4d4899
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
jmp 0x407e92
mov eax, dword [ebp - 4]
and eax, 3
test eax, eax
jne 0x407e92
mov eax, dword [ebp - 0xc]
add eax, 8
cmp eax, 0x4f
jle 0x407e7b
sub esp, 4
push 0x4d4899
push dword [ebp - 0x10]
push str._n_s
call sub.msvcrt.dll_printf
add esp, 0x10
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
jmp 0x407e92
sub esp, 0xc
push 0x4d4899
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
sub esp, 8
mov eax, dword [ebp - 0x14]
mov al, byte [eax]
and eax, 0xff
push eax
push 0x4d7616
call sub.msvcrt.dll_printf
add esp, 0x10
mov edx, eax
lea eax, [ebp - 0xc]
add dword [eax], edx
lea eax, [ebp - 4]
inc dword [eax]
lea eax, [ebp - 0x14]
inc dword [eax]
jmp 0x407d48
sub esp, 0xc
push 0x4d4897
call sub.msvcrt.dll_printf
add esp, 0x10
leave
ret