Function at 0x59f444
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov edx, 0x200
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x25c
movzx eax, byte [ebp + 8]
mov byte [ebp - 0x229], al
mov eax, dword [ebp + 0x10]
mov dword [esp + 8], edx
lea edx, [ebp - 0x218]
add eax, 4
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.005a2acc
mov byte [ebp - 0x228], 0xaa
xor eax, eax
mov byte [ebp - 0x227], 0xc8
mov byte [ebp - 0x226], 8
mov byte [ebp - 0x225], 0x58
mov byte [ebp - 0x224], 0x8f
mov byte [ebp - 0x223], 0x7e
mov byte [ebp - 0x222], 0xe0
mov byte [ebp - 0x221], 0x42
mov byte [ebp - 0x220], 0x85
mov byte [ebp - 0x21f], 0xd2
mov byte [ebp - 0x21e], 0xe1
mov byte [ebp - 0x21d], 0xe9
mov byte [ebp - 0x21c], 4
mov byte [ebp - 0x21b], 0x34
mov byte [ebp - 0x21a], 0xcf
mov byte [ebp - 0x219], 0xb3
mov dword [ebp - 0x230], eax
nop
mov ecx, dword [ebp - 0x230]
movzx eax, byte [ecx + ebp - 0x228]
cmp byte [ecx + ebp - 0x218], al
jne 0x59f69b
inc ecx
cmp ecx, 0xf
mov dword [ebp - 0x230], ecx
jle 0x59f4f4
movzx ecx, byte [ebp - 0x1f7]
xor ebx, ebx
xor edx, edx
movzx eax, byte [ebp - 0x1f8]
shld ebx, ecx, 8
shl ecx, 8
or edx, ebx
or eax, ecx
movzx ecx, byte [ebp - 0x1f6]
xor ebx, ebx
shld ebx, ecx, 0x10
shl ecx, 0x10
or edx, ebx
or eax, ecx
movzx ecx, byte [ebp - 0x1f5]
xor ebx, ebx
shld ebx, ecx, 0x18
shl ecx, 0x18
or edx, ebx
or eax, ecx
movzx ecx, byte [ebp - 0x1f4]
mov ebx, ecx
xor ecx, ecx
or eax, ecx
movzx ecx, byte [ebp - 0x1f3]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 8
or eax, ecx
movzx ecx, byte [ebp - 0x1f2]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 0x10
or eax, ecx
movzx ecx, byte [ebp - 0x1f1]
or edx, ebx
mov esi, eax
movzx eax, byte [ebp - 0x1f0]
mov ebx, ecx
xor ecx, ecx
or esi, ecx
movzx ecx, byte [ebp - 0x1ef]
shl ebx, 0x18
mov dword [ebp - 0x238], esi
mov esi, edx
or esi, ebx
mov dword [ebp - 0x234], esi
xor ebx, ebx
xor edx, edx
shld ebx, ecx, 8
shl ecx, 8
or edx, ebx
movzx esi, byte [ebp - 0x1e9]
or eax, ecx
xor ebx, ebx
movzx ecx, byte [ebp - 0x1ee]
mov edi, esi
xor esi, esi
shld ebx, ecx, 0x10
shl ecx, 0x10
or edx, ebx
or eax, ecx
movzx ecx, byte [ebp - 0x1ed]
xor ebx, ebx
shl edi, 0x18
shld ebx, ecx, 0x18
shl ecx, 0x18
or edx, ebx
or eax, ecx
movzx ecx, byte [ebp - 0x1ec]
mov ebx, ecx
xor ecx, ecx
or eax, ecx
movzx ecx, byte [ebp - 0x1eb]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 8
or eax, ecx
movzx ecx, byte [ebp - 0x1ea]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 0x10
or eax, ecx
or edx, ebx
mov ecx, eax
or ecx, esi
mov ebx, edx
or ebx, edi
sub ecx, dword [ebp - 0x238]
sbb ebx, dword [ebp - 0x234]
add ecx, 1
mov eax, ecx
adc ebx, 0
xor eax, 0x800
or eax, ebx
jne 0x59f69b
mov eax, dword [ebp + 0x10]
mov edi, 1
mov edx, dword [ebp + 0xc]
mov word [eax + 0x266], di
mov dword [edx + 0x6e], 0x474e5944
mov word [edx + 0x72], 0x5450
mov byte [edx + 0x74], 0
xor esi, esi
mov eax, 1
mov dword [0x408010], esi
add esp, 0x25c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebp + 0x10]
mov ebx, 1
lea edi, [ebp - 0x218]
mov word [ecx + 0x264], bx
xor ecx, ecx
mov dword [ebp - 0x230], ecx
lea esi, [esi]
lea edi, [edi]
movzx ecx, byte [edi + 0x21]
xor ebx, ebx
xor edx, edx
movzx eax, byte [edi + 0x20]
shld ebx, ecx, 8
shl ecx, 8
or edx, ebx
or eax, ecx
movzx ecx, byte [edi + 0x22]
xor ebx, ebx
shld ebx, ecx, 0x10
shl ecx, 0x10
or edx, ebx
or eax, ecx
movzx ecx, byte [edi + 0x23]
xor ebx, ebx
shld ebx, ecx, 0x18
shl ecx, 0x18
or edx, ebx
or eax, ecx
movzx ecx, byte [edi + 0x24]
mov ebx, ecx
xor ecx, ecx
or eax, ecx
movzx ecx, byte [edi + 0x25]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 8
or eax, ecx
movzx ecx, byte [edi + 0x26]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 0x10
or eax, ecx
movzx ecx, byte [edi + 0x27]
or edx, ebx
mov esi, eax
mov ebx, ecx
xor ecx, ecx
shl ebx, 0x18
or esi, ecx
mov dword [ebp - 0x240], esi
mov esi, edx
or esi, ebx
mov dword [ebp - 0x23c], esi
mov eax, esi
or eax, dword [ebp - 0x240]
je 0x59f683
mov edx, dword [0x408010]
xor ebx, ebx
mov ecx, dword [ebp + 0xc]
mov eax, edx
shl eax, 4
sub eax, edx
movzx edx, byte [ebp - 0x229]
mov byte [ecx + eax*8], dl
mov eax, dword [0x408010]
mov edx, eax
shl edx, 4
sub edx, eax
inc al
mov byte [ecx + edx*8 + 2], al
mov eax, dword [0x408010]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x23c]
mov esi, eax
shl esi, 4
sub esi, eax
mov eax, dword [ebp - 0x240]
shl esi, 3
mov dword [esi + ecx + 0xc], edx
xor edx, edx
mov dword [esi + ecx + 8], eax
movzx ecx, byte [edi + 0x29]
movzx eax, byte [edi + 0x28]
shld ebx, ecx, 8
shl ecx, 8
or edx, ebx
or eax, ecx
movzx ecx, byte [edi + 0x2a]
xor ebx, ebx
shld ebx, ecx, 0x10
shl ecx, 0x10
or edx, ebx
or eax, ecx
movzx ecx, byte [edi + 0x2b]
xor ebx, ebx
shld ebx, ecx, 0x18
shl ecx, 0x18
or edx, ebx
or eax, ecx
movzx ecx, byte [edi + 0x2c]
mov ebx, ecx
xor ecx, ecx
or eax, ecx
movzx ecx, byte [edi + 0x2d]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 8
or eax, ecx
movzx ecx, byte [edi + 0x2e]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 0x10
or eax, ecx
movzx ecx, byte [edi + 0x2f]
or edx, ebx
mov ebx, ecx
xor ecx, ecx
shl ebx, 0x18
or eax, ecx
or edx, ebx
sub eax, dword [ebp - 0x240]
mov ecx, dword [ebp + 0xc]
sbb edx, dword [ebp - 0x23c]
add eax, 1
mov dword [esi + ecx + 0x10], eax
adc edx, 0
mov dword [esi + ecx + 0x14], edx
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x274]
mov dword [esi + ecx + 0x20], eax
add esi, ecx
mov dword [esi + 0x32], 0x6d697250
mov dword [esi + 0x36], 0x797261
mov edx, dword [0x408010]
mov eax, edx
shl eax, 4
sub eax, edx
mov edx, 0x545047
mov dword [ecx + eax*8 + 0x6e], edx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x10], ecx
mov edx, dword [0x408010]
mov esi, dword [ebp + 0xc]
mov eax, edx
shl eax, 4
sub eax, edx
lea eax, [esi + eax*8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x240]
mov edx, dword [ebp - 0x23c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.0059f184
inc dword [ebp - 0x230]
mov esi, dword [ebp + 0x14]
inc dword [0x408010]
add edi, esi
cmp dword [ebp - 0x230], 3
jle 0x59f6c4
add esp, 0x25c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret