Function at 0x47d2ab
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp byte [edi + 0x2eb], 0
jne 0x47d65f
mov eax, dword [0x57b4c8]
cmp byte [eax + 0x36], 0
je 0x47d65f
cmp dword [edi + 0xd0], 0
jne 0x47d65f
add edi, 0x44
mov eax, edi
call fcn.0041ae5a
cmp eax, 1
jb 0x47d65f
mov ebx, 0x80
push ebx
push ebx
lea esi, [ebp - 0x20]
call fcn.00404795
mov eax, dword [eax]
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xd0], eax
mov ecx, ebx
mov eax, ebx
lea esi, [ebp - 0x30]
call fcn.0040d9af
mov ecx, ebx
mov eax, ebx
lea esi, [ebp - 0x3c]
call fcn.0040d9af
xor esi, esi
lea eax, [ebp - 0x24]
mov word [ebp - 0x24], si
mov word [ebp - 0x22], si
mov word [ebp - 0x20], 0xa3
mov word [ebp - 0x1e], 0x7a
call fcn.00403597
fldz
push esi
push ecx
fstp dword [esp]
mov eax, 0xffffff
push 1
push eax
call fcn.00403606
fld dword [0x544138]
pop ecx
pop ecx
fstp dword [esp + 4]
fld dword [0x544280]
fstp dword [esp]
call fcn.00403857
mov eax, dword [ebp + 8]
pop ecx
pop ecx
add eax, 0x16c
call fcn.00480c5a
mov esi, eax
mov eax, edi
call fcn.0041ae5a
cmp esi, eax
jne 0x47d407
and dword [ebp - 8], 0
mov eax, edi
call fcn.0041ae5a
test eax, eax
jbe 0x47d407
mov esi, dword [ebp + 8]
push dword [ebp - 8]
add esi, 0x16c
call fcn.00480c70
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
call fcn.00458652
push esi
mov esi, dword [ebp + 8]
add esi, 0x16c
mov dword [ebp - 0x20], eax
call fcn.00480c70
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov esi, dword [ebp - 8]
mov dword [eax], edx
mov dword [eax + 4], ecx
call fcn.00458652
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
inc dword [ebp - 8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
mov eax, edi
call fcn.0041ae5a
cmp dword [ebp - 8], eax
jb 0x47d39e
mov esi, dword [ebp + 8]
push esi
call fcn.0045754a
lea eax, [esi + 0x16c]
call fcn.00480c5a
mov esi, eax
mov eax, edi
call fcn.0041ae5a
cmp esi, eax
jne 0x47d4a0
and dword [ebp - 8], 0
mov eax, edi
call fcn.0041ae5a
test eax, eax
jbe 0x47d4a0
mov esi, dword [ebp + 8]
push dword [ebp - 8]
add esi, 0x16c
call fcn.00480c70
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
call fcn.00458652
push esi
mov esi, dword [ebp + 8]
add esi, 0x16c
mov dword [ebp - 0x20], eax
call fcn.00480c70
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov esi, dword [ebp - 8]
mov dword [eax], edx
mov dword [eax + 4], ecx
call fcn.00458652
mov eax, dword [eax]
mov ecx, dword [ebp - 0x1c]
inc dword [ebp - 8]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
mov eax, edi
call fcn.0041ae5a
cmp dword [ebp - 8], eax
jb 0x47d437
push 2
pop esi
call fcn.00403a67
xor esi, esi
inc esi
call fcn.00403a67
lea eax, [ebp - 0x30]
push eax
call fcn.00404fae
mov edx, dword [ebp - 0x3c]
pop ecx
push 0x7e
lea ecx, [edx + 0x3fe]
lea eax, [edx + 0xfe06]
pop edi
mov esi, 0x200
mov byte [eax - 0xfe00], 0xff
mov byte [eax], 0xff
mov byte [ecx - 0x1fc], 0xff
mov byte [ecx], 0xff
add eax, 4
add ecx, esi
dec edi
jne 0x47d4d1
and dword [ebp - 8], edi
jmp 0x47d4f5
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 8]
and eax, 0x80000001
jns 0x47d504
dec eax
or eax, 0xfffffffe
inc eax
mov eax, dword [ebp - 0x30]
jne 0x47d577
add eax, 0x202
add edx, 0x206
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], 0x7e
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], 0x7e
movzx edx, byte [ecx + 0x204]
movzx eax, byte [ecx + 8]
add eax, edx
movzx edx, byte [ecx - 0x1fc]
lea edi, [ecx + 4]
movzx ecx, byte [ecx]
add eax, edx
add eax, ecx
movzx ecx, byte [edi]
add eax, ecx
push 5
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0xc]
add dword [ebp - 0xc], 4
dec dword [ebp - 0x18]
mov byte [ecx], al
mov ecx, edi
jne 0x47d531
add dword [ebp - 0x10], esi
add dword [ebp - 0x14], esi
dec dword [ebp - 0x20]
jne 0x47d521
jmp 0x47d5e3
add edx, 0x202
add eax, 0x206
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], 0x7e
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x20], 0x7e
movzx edx, byte [ecx - 0x1fc]
movzx eax, byte [ecx + 0x204]
add eax, edx
movzx edx, byte [ecx + 8]
lea edi, [ecx + 4]
movzx ecx, byte [ecx]
add eax, edx
movzx edx, byte [edi]
add eax, edx
add eax, ecx
push 5
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x14], 4
dec dword [ebp - 0x20]
mov byte [ecx], al
mov ecx, edi
jne 0x47d59f
add dword [ebp - 0x10], esi
add dword [ebp - 0xc], esi
dec dword [ebp - 0x18]
jne 0x47d58f
inc dword [ebp - 8]
cmp dword [ebp - 8], 6
jl 0x47d4f2
mov edi, dword [ebp - 0x30]
lea eax, [edi + 2]
mov ecx, ebx
mov esi, ebx
or dl, 0xff
sub dl, byte [eax]
mov byte [eax + 1], dl
mov byte [eax], 0
mov byte [eax - 1], 0
mov byte [eax - 2], 0
add eax, 4
dec esi
jne 0x47d5fa
dec ecx
jne 0x47d5f8
mov eax, dword [ebp + 8]
xor ebx, ebx
push ebx
push ebx
push dword [eax + 0xd0]
lea esi, [ebp - 0x30]
call fcn.00404d11
add esp, 0xc
lea eax, [ebp - 0x24]
mov word [ebp - 0x24], bx
mov word [ebp - 0x22], bx
mov word [ebp - 0x20], 0x400
mov word [ebp - 0x1e], 0x300
call fcn.00403597
call fcn.004037d4
push dword [ebp - 0x3c]
call fcn.004e0f9f
pop ecx
push edi
call fcn.004e0f9f
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4