Function at 0x402112
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
xor edx, edx
mov dl, byte [0x41f214]
test edx, edx
jne 0x402177
mov dword [ebp - 0xc], 0
jmp 0x402142
mov eax, dword [ebp - 0xc]
add eax, 1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x100
jge 0x402177
mov eax, dword [ebp - 0xc]
add eax, 1
cdq
mov ecx, 0x1f
idiv ecx
mov ecx, edx
mov edx, 0x832733ca
shr edx, cl
mov eax, dword [ebp - 0xc]
xor edx, dword [eax*4 + 0x4140f0]
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x41f214], dl
jmp 0x402139
mov dword [ebp - 8], 8
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 8]
sub eax, 1
mov dword [ebp - 8], eax
test edx, edx
je 0x40237e
mov ecx, dword [ebp - 0x10]
mov dl, byte [ecx + 3]
push edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 3]
push ecx
call fcn.00404a26
add esp, 8
and eax, 0xff
mov dl, byte [eax + 0x41f214]
push edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 7]
push ecx
call fcn.00404a26
add esp, 8
mov edx, dword [ebp - 4]
mov byte [edx + 7], al
mov eax, dword [ebp - 0x10]
mov cl, byte [eax]
push ecx
mov edx, dword [ebp - 4]
mov al, byte [edx]
push eax
call fcn.004024c7
add esp, 8
and eax, 0xff
mov cl, byte [eax + 0x41f214]
push ecx
mov edx, dword [ebp - 4]
mov al, byte [edx + 4]
push eax
call fcn.00404a26
add esp, 8
mov ecx, dword [ebp - 4]
mov byte [ecx + 4], al
mov edx, dword [ebp - 0x10]
mov al, byte [edx + 2]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 2]
push edx
call fcn.004024c7
add esp, 8
and eax, 0xff
mov al, byte [eax + 0x41f214]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 6]
push edx
call fcn.004024c7
add esp, 8
mov ecx, dword [ebp - 4]
mov byte [ecx + 6], al
mov edx, dword [ebp - 0x10]
mov al, byte [edx + 1]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 1]
push edx
call fcn.00404a26
add esp, 8
and eax, 0xff
mov al, byte [eax + 0x41f214]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 5]
push edx
call fcn.004024c7
add esp, 8
mov ecx, dword [ebp - 4]
mov byte [ecx + 5], al
mov edx, dword [ebp - 0x10]
add edx, 4
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov cl, byte [eax]
mov byte [ebp - 0x11], cl
mov dl, byte [ebp - 0x11]
push edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 4]
push ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
call fcn.004024c7
add esp, 8
and eax, 0xff
mov al, byte [eax + 0x41f214]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 1]
push edx
call fcn.00404a26
add esp, 8
mov ecx, dword [ebp - 4]
mov byte [ecx + 1], al
mov edx, dword [ebp - 4]
mov al, byte [edx + 5]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 4]
push edx
call fcn.004024c7
add esp, 8
and eax, 0xff
mov al, byte [eax + 0x41f214]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx + 2]
push edx
call fcn.00404a26
add esp, 8
mov ecx, dword [ebp - 4]
mov byte [ecx + 2], al
mov edx, dword [ebp - 0x10]
mov al, byte [edx]
mov byte [ebp - 0x12], al
mov cl, byte [ebp - 0x12]
push ecx
mov edx, dword [ebp - 4]
mov al, byte [edx + 6]
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
call fcn.004024c7
add esp, 8
and eax, 0xff
mov dl, byte [eax + 0x41f214]
push edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 3]
push ecx
call fcn.00404a26
add esp, 8
mov edx, dword [ebp - 4]
mov byte [edx + 3], al
mov eax, dword [ebp - 0x10]
mov cl, byte [eax]
mov byte [ebp - 0x13], cl
mov dl, byte [ebp - 0x13]
push edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 7]
push ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
call fcn.004024c7
add esp, 8
and eax, 0xff
mov al, byte [eax + 0x41f214]
push eax
mov ecx, dword [ebp - 4]
mov dl, byte [ecx]
push edx
call fcn.00404a26
add esp, 8
mov ecx, dword [ebp - 4]
mov byte [ecx], al
jmp 0x40217e
mov dword [ebp - 0xc], 0
jmp 0x402390
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 4
jge 0x4023e5
mov eax, dword [ebp - 0x10]
mov cl, byte [eax]
mov byte [ebp - 0x14], cl
mov dl, byte [ebp - 0x14]
push edx
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0xc]
mov cl, byte [eax]
push ecx
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
call fcn.00404a26
add esp, 8
and eax, 0xff
mov al, byte [eax + 0x41f214]
push eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov dl, byte [ecx + 4]
push edx
call fcn.004024c7
add esp, 8
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov byte [ecx + 4], al
jmp 0x402387
mov esp, ebp
pop ebp
ret