Function at 0x405ba0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x260
mov dword [ebp - 0x25c], 0
jmp 0x405bc4
mov eax, dword [ebp - 0x25c]
add eax, 1
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0xa
jge 0x405cc7
mov dword [ebp - 0xe0], 9
mov ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x60], ecx
mov edx, 0x4d
sub edx, dword [ebp - 0x9c]
sub edx, dword [ebp + 8]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xe8], 0x70
movzx eax, word [ebp - 0x108]
mov ecx, dword [ebp - 0x98]
sub ecx, eax
mov dword [ebp - 0xe0], ecx
mov edx, 0x32
sub edx, dword [ebp - 0xc0]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 0
je 0x405c4e
cmp dword [ebp - 0x260], 1
je 0x405c6c
cmp dword [ebp - 0x260], 2
je 0x405c8e
jmp 0x405ca3
cmp dword [0x42f004], 0x51
jle 0x405c6a
mov dword [ebp + 8], 0x52
mov ecx, dword [ebp - 4]
or ecx, 0xffffffbd
or ecx, 0x37
mov byte [ebp - 6], cl
jmp 0x405caf
cmp dword [ebp + 8], 0x22
jne 0x405c74
jmp 0x405c8c
movzx edx, word [ebp - 0x90]
mov eax, dword [ebp + 8]
sub eax, edx
add eax, dword [ebp - 0x1ac]
mov dword [ebp - 0xcc], eax
jmp 0x405caf
xor ecx, ecx
je 0x405ca1
movzx edx, byte [ebp - 5]
mov eax, dword [ebp - 0x1b8]
sub eax, edx
mov dword [ebp + 8], eax
jmp 0x405caf
mov ecx, dword [ebp - 0x1b8]
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1a4]
sub edx, 0x1a
or edx, 0xa1
mov word [ebp - 0x18], dx
jmp 0x405bb5
movzx eax, word [ebp - 0x198]
add eax, 0x22
movzx ecx, word [ebp - 0x23c]
sub eax, ecx
movzx edx, word [ebp - 0x108]
sub edx, eax
mov word [ebp - 0x108], dx
mov byte [ebp + 8], 0x1f
mov dword [ebp - 0x9c], 0x5f
movzx eax, word [ebp - 0xdf]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x9c]
sub ecx, 4
mov word [ebp - 0x1b0], cx
mov edx, dword [ebp - 0xc0]
add edx, 0x20
movzx eax, byte [ebp - 0x11d]
add eax, dword [ebp - 0x9c]
movzx ecx, byte [ebp - 0xb9]
sub eax, ecx
xor edx, eax
mov byte [ebp - 6], dl
mov edx, dword [ebp - 0xe0]
or edx, 0x4b
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x9c]
mov dword [ebp - 0xe0], eax
movzx ecx, byte [ebp - 0x10e]
mov edx, dword [ebp - 0x1a4]
lea eax, [ecx + edx - 0x52]
sub eax, dword [ebp - 0xc0]
mov word [ebp - 0x14], ax
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0xe4]
movzx edx, byte [ebp - 0x11d]
mov eax, dword [ebp - 0xe8]
lea edx, [eax + edx + 6]
and ecx, edx
mov byte [ebp - 0x1b1], cl
mov eax, dword [0x42f04c]
imul eax, dword [ebp - 0x1b8]
mov dword [0x42f04c], eax
movzx ecx, word [ebp - 0x1b0]
mov edx, dword [ebp - 0xe4]
lea eax, [edx + ecx + 0x43]
mov dword [ebp - 0xec], eax
movzx ecx, byte [ebp - 0xb9]
sub ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x1a4], ecx
movzx edx, word [ebp - 0xb0]
and edx, 0x5a
mov dword [str.R_f_63], edx
lea eax, [ebp - 0x9c]
sub eax, 0x4d
movzx ecx, byte [eax]
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0xe8]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0x20], eax
movzx ecx, byte [ebp - 0x11e]
add ecx, 0x15
mov byte [ebp - 0x11e], cl
mov edx, 0x4d
sub edx, dword [ebp - 0xe4]
movzx eax, word [ebp - 0x10c]
sub eax, edx
mov word [ebp - 0x10c], ax
movzx ecx, word [ebp - 0x24c]
movzx edx, byte [ebp - 0x10d]
lea eax, [edx + ecx + 6]
mov byte [ebp - 0x10d], al
mov eax, dword [ebp - 0x9c]
mov esp, ebp
pop ebp
ret