Function at 0x52aa00
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x676664]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
push ebx
xor eax, eax
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
lea eax, [esi + 0x4e0]
push eax
lea eax, [ebp - 0x14]
push eax
xor edi, edi
call edx
xor eax, eax
mov dword [esi + 0x520], eax
mov dword [esi + 0x524], eax
mov dword [esi + 0x528], eax
mov dword [esi + 0x52c], eax
mov dword [esi + 0x4f0], eax
mov dword [esi + 0x4f4], eax
mov dword [esi + 0x4f8], eax
mov dword [esi + 0x4fc], eax
mov dword [esi + 0x534], edi
mov dword [esi + 0x530], edi
mov dword [esi + 0x538], edi
mov dword [esi + 0x540], edi
mov dword [esi + 0x544], edi
mov dword [esi + 0x548], edi
mov dword [esi + 0x54c], edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
xor ebx, ebx
mov eax, dword [esi + 0x550]
lea ecx, [eax + edi + 4]
push ecx
lea eax, [esi + 0x4e0]
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 0x14], bl
call fcn.00525db0
add edi, 0x10
add esp, 8
inc ebx
cmp edi, 0x1000
jl 0x52aaa2
mov eax, 0x1000
mov edx, 0x100
jmp 0x52aae0
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xfee]
movzx edi, byte [ecx + eax - 0xfed]
mov byte [ecx + eax + 0x13], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xfef]
mov byte [ecx + eax + 0x12], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [eax + ecx - 0xff0]
mov byte [eax + ecx + 0x11], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff1]
mov byte [ecx + eax + 0x10], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff2]
mov byte [ecx + eax + 0xf], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff3]
mov byte [ecx + eax + 0xe], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff4]
mov byte [ecx + eax + 0xd], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff5]
mov byte [ecx + eax + 0xc], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff6]
mov byte [ecx + eax + 0xb], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff7]
mov byte [ecx + eax + 0xa], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff8]
mov byte [ecx + eax + 9], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xff9]
mov byte [ecx + eax + 8], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xffa]
mov byte [ecx + eax + 7], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xffb]
mov byte [ecx + eax + 6], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [ecx + eax - 0xffc]
mov byte [ecx + eax + 5], bl
movzx ebx, byte [edi*2 + 0x630390]
mov ecx, dword [esi + 0x550]
mov byte [eax + ecx + 4], bl
mov ecx, dword [esi + 0x550]
movzx ebx, byte [edi*2 + 0x630391]
xor byte [eax + ecx + 5], bl
lea ecx, [eax + ecx + 5]
add eax, 0x10
dec edx
jne 0x52aae0
cmp eax, 0x10000
jl 0x52aad3
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov al, 1
pop ebx
call fcn.0059af98
mov esp, ebp
pop ebp
ret 0x10