Function at 0x405330
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x474004]
xor eax, esp
mov dword [esp + 0x34], eax
push esi
push edi
mov edi, ecx
mov esi, edx
push edi
push str.skeleton_n
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
call fcn.00433985
mov edx, dword [0x476940]
add esp, 8
mov esi, dword [esi + 0x9c]
mov eax, dword [edx + 0x8c]
imul eax, dword [ebp + 8]
lea ecx, [eax + eax*2]
mov eax, dword [0x476128]
mov eax, dword [eax + esi*4]
lea esi, [eax + ecx*4]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 8], ecx
add esi, dword [eax + 0x7c]
mov dword [esp + 0x20], esi
cmp dword [eax + 0x38], ecx
jle 0x4055d8
nop
push ecx
mov dword [esp + 0x10], esi
mov esi, dword [edx + 0x90]
push str.time__i_n
push edi
add esi, edx
call fcn.00401040
mov edx, dword [0x476940]
add esp, 0xc
mov dword [esp + 0x10], 0
cmp dword [edx + 0x8c], 0
jle 0x4055be
lea eax, [esi + 0x20]
mov dword [esp + 0x14], eax
nop dword [eax]
mov edx, dword [esp + 0xc]
lea edi, [eax + 0x38]
xor esi, esi
nop dword [eax]
movzx eax, word [edx + esi*2]
movss xmm1, dword [edi - 0x18]
movss dword [esp + esi*4 + 0x24], xmm1
test ax, ax
je 0x405456
lea ecx, [edx + eax]
mov edx, dword [esp + 8]
movzx eax, byte [ecx + 1]
cmp eax, edx
jg 0x40542a
movzx eax, byte [ecx + 1]
sub edx, eax
movzx eax, byte [ecx]
lea eax, [ecx + eax*2]
lea ecx, [eax + 2]
movzx eax, byte [eax + 3]
cmp eax, edx
jle 0x405413
movzx eax, byte [ecx]
cmp eax, edx
jle 0x405438
movzx eax, word [ecx + edx*2 + 2]
jmp 0x40543c
movzx eax, word [ecx + eax*2]
mov edx, dword [esp + 0xc]
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [edi]
addss xmm0, xmm1
movss dword [esp + esi*4 + 0x24], xmm0
inc esi
add edi, 4
cmp esi, 6
jl 0x4053f0
mov eax, dword [esp + 0x14]
cmp dword [eax], 0xffffffff
jne 0x4054f5
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x38]
cmp eax, 1
jle 0x4054c2
mov ecx, dword [esp + 8]
test ecx, ecx
jle 0x4054c2
xorps xmm1, xmm1
dec eax
xorps xmm0, xmm0
cvtsi2ss xmm1, ecx
cvtsi2ss xmm0, eax
divss xmm1, xmm0
movaps xmm0, xmm1
movaps xmm2, xmm1
mulss xmm1, dword [edx + 0x54]
mulss xmm0, dword [edx + 0x4c]
addss xmm1, dword [esp + 0x2c]
mulss xmm2, dword [edx + 0x50]
addss xmm0, dword [esp + 0x24]
addss xmm2, dword [esp + 0x28]
movss dword [esp + 0x2c], xmm1
jmp 0x4054ce
movss xmm2, dword [esp + 0x28]
movss xmm0, dword [esp + 0x24]
xorps xmm0, xmmword [0x46f440]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x38]
addss xmm0, dword [0x46f3b4]
movss dword [esp + 0x24], xmm2
movss dword [esp + 0x38], xmm0
movss xmm2, dword [0x46f3e0]
lea eax, [esp + 0x30]
movss xmm3, dword [0x46f388]
mov ecx, 3
nop
movss xmm0, dword [eax]
comiss xmm0, xmm3
movss xmm1, dword [0x46f3b8]
jb 0x40552e
subss xmm0, xmm1
comiss xmm0, xmm3
movss dword [eax], xmm0
jae 0x405521
comiss xmm2, xmm0
jbe 0x405540
addss xmm0, xmm1
comiss xmm2, xmm0
movss dword [eax], xmm0
ja 0x405533
add eax, 4
sub ecx, 1
jne 0x405510
push dword [esp + 0x10]
mov edi, dword [esp + 0x20]
push str._3i
push edi
call fcn.00401040
add esp, 0xc
xor esi, esi
movss xmm0, dword [esp + esi*4 + 0x24]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push 0x46e764
push edi
call fcn.00401040
inc esi
add esp, 0x10
cmp esi, 6
jl 0x405560
push edi
push 0x46e138
call fcn.00433985
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, dword [0x476940]
inc ecx
mov eax, dword [esp + 0x14]
add dword [esp + 0xc], 0xc
add eax, 0x70
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
cmp ecx, dword [edx + 0x8c]
jl 0x4053e0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x18]
inc ecx
mov esi, dword [esp + 0x20]
mov dword [esp + 8], ecx
cmp ecx, dword [eax + 0x38]
jl 0x4053a0
push edi
push str.end_n
call fcn.00433985
mov ecx, dword [esp + 0x44]
add esp, 8
pop edi
pop esi
xor ecx, esp
call fcn.0040c2d8
mov esp, ebp
pop ebp
ret