Function at 0x4052c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
mov eax, dword [0x473004]
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.004339d5
mov edx, dword [0x475940]
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 [0x475128]
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 0x405568
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 [0x475940]
add esp, 0xc
mov dword [esp + 0x10], 0
cmp dword [edx + 0x8c], 0
jle 0x40554e
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 0x4053e6
lea ecx, [edx + eax]
mov edx, dword [esp + 8]
movzx eax, byte [ecx + 1]
cmp eax, edx
jg 0x4053ba
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 0x4053a3
movzx eax, byte [ecx]
cmp eax, edx
jle 0x4053c8
movzx eax, word [ecx + edx*2 + 2]
jmp 0x4053cc
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 0x405380
mov eax, dword [esp + 0x14]
cmp dword [eax], 0xffffffff
jne 0x405485
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x38]
cmp eax, 1
jle 0x405452
mov ecx, dword [esp + 8]
test ecx, ecx
jle 0x405452
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 0x40545e
movss xmm2, dword [esp + 0x28]
movss xmm0, dword [esp + 0x24]
xorps xmm0, xmmword [0x46e400]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x38]
addss xmm0, dword [0x46e374]
movss dword [esp + 0x24], xmm2
movss dword [esp + 0x38], xmm0
movss xmm2, dword [0x46e3a0]
lea eax, [esp + 0x30]
movss xmm3, dword [0x46e348]
mov ecx, 3
nop
movss xmm0, dword [eax]
comiss xmm0, xmm3
movss xmm1, dword [0x46e378]
jb 0x4054be
subss xmm0, xmm1
comiss xmm0, xmm3
movss dword [eax], xmm0
jae 0x4054b1
comiss xmm2, xmm0
jbe 0x4054d0
addss xmm0, xmm1
comiss xmm2, xmm0
movss dword [eax], xmm0
ja 0x4054c3
add eax, 4
sub ecx, 1
jne 0x4054a0
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 0x46d72c
push edi
call fcn.00401040
inc esi
add esp, 0x10
cmp esi, 6
jl 0x4054f0
push edi
push 0x46d100
call fcn.004339d5
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, dword [0x475940]
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 0x405370
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 0x405330
push edi
push str.end_n
call fcn.004339d5
mov ecx, dword [esp + 0x44]
add esp, 8
pop edi
pop esi
xor ecx, esp
call fcn.0040c692
mov esp, ebp
pop ebp
ret