Function at 0x401620
Capabilities:
Encrypt data using rc4 ksa
Encrypt data using rc4 prga

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42ac6a
push eax
mov eax, 0x10650
mov dword fs:[0], esp
call fcn.0040cbb0
mov eax, dword [esp + 0x1066c]
test eax, eax
jbe 0x4020a0
xor eax, eax
mov byte [esp + eax + 0x1c], al
inc eax
cmp eax, 0x10633
jb 0x401650
push ebx
push ebp
mov ebp, dword [esp + 0x10668]
push esi
push edi
mov edi, dword [esp + 0x10674]
xor esi, esi
xor ecx, ecx
mov eax, ecx
xor edx, edx
div edi
mov bl, byte [esp + ecx + 0x2c]
xor eax, eax
mov al, byte [edx + ebp]
mov edx, eax
mov eax, ebx
and eax, 0xff
add esi, edx
add eax, esi
xor edx, edx
mov esi, 0x10633
div esi
inc ecx
cmp ecx, 0x10633
mov esi, edx
mov al, byte [esp + esi + 0x2c]
mov byte [esp + ecx + 0x2b], al
mov byte [esp + esi + 0x2c], bl
jb 0x401672
mov ecx, dword [esp + 0x1067c]
mov edx, dword [esp + 0x10678]
xor ebx, ebx
xor eax, eax
dec ecx
mov dword [esp + 0x14], edx
inc ecx
or esi, 0xffffffff
mov dword [esp + 0x20], ecx
mov ebp, 0x2c
mov edi, 0x2d
jmp 0x4016e1
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
inc eax
xor edx, edx
mov ecx, 0x10633
push 0
div ecx
push 0
mov dword [esp + 0x24], edx
mov cl, byte [esp + edx + 0x34]
xor edx, edx
mov eax, ecx
mov byte [esp + 0x30], cl
and eax, 0xff
add eax, ebx
mov ebx, 0x10633
div ebx
mov eax, dword [esp + 0x24]
mov bl, byte [esp + edx + 0x34]
mov byte [esp + eax + 0x34], bl
mov byte [esp + edx + 0x34], cl
mov ecx, dword [esp + 0x30]
and ecx, 0xff
mov dword [esp + 0x2c], edx
lea edx, [esp + edx + 0x34]
xor edx, edx
mov dl, byte [esp + eax + 0x34]
mov eax, edx
add eax, ecx
mov ecx, 0x10633
cdq
idiv ecx
mov bl, byte [esp + edx + 0x34]
mov edx, dword [esp + 0x1c]
xor bl, byte [edx]
call dword [sym.imp.USER32.dll_GetSystemMenu]
test eax, eax
je 0x40206b
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 1
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 2
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 3
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 4
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 5
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 6
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 7
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 8
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 9
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0xa
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0xb
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0xc
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0xd
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0xe
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0xf
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x10
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x11
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x12
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x13
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x14
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x15
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x16
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x17
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x18
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x19
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x1a
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x1b
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x1c
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x1d
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x1e
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x1f
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
mov dword [esp + 0x10668], 0x20
push 0x23500d
lea ecx, [esp + 0x14]
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x21
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x22
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x23
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x24
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x25
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x26
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x27
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x10668], 0x28
push 0x23500d
lea ecx, [esp + 0x14]
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x29
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x10], eax
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x2a
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov ecx, dword [0x440388]
mov dword [esp + 0x10], ecx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], 0x2b
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov edx, dword [0x440388]
mov dword [esp + 0x10], edx
push 0x23500d
lea ecx, [esp + 0x14]
mov dword [esp + 0x1066c], ebp
call fcn.00423e66
lea ecx, [esp + 0x10]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [0x440388]
mov dword [esp + 0x18], eax
push 0x23500d
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1066c], edi
call fcn.00423e66
lea ecx, [esp + 0x18]
mov dword [esp + 0x10668], esi
call fcn.00423a9c
mov eax, dword [esp + 0x14]
mov byte [eax], bl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x20], eax
jne 0x4016d9
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x10650]
mov dword fs:[0], ecx
add esp, 0x1065c
ret
mov ecx, dword [esp + 0x10650]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0x1065c
ret