Function at 0x41f179
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x24]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x34]
sub esi, dword [edi + 0x6c]
sub esi, dword [edi + 0x64]
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], 0
jne 0x41f1ba
mov edi, dword [ebp + 8]
cmp dword [edi + 0x64], 0
jne 0x41f1ba
cmp dword [edi + 0x6c], 0
jne 0x41f1ba
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x14], edi
jmp 0x41f2e5
cmp dword [ebp - 0x14], 0xffffffff
jne 0x41f1c8
dec dword [ebp - 0x14]
jmp 0x41f2e5
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x10]
mov ebx, dword [edi + 0x24]
sub ebx, 0x106
add esi, ebx
cmp dword [edi + 0x64], esi
jb 0x41f2e5
mov edi, dword [ebp - 0x10]
push edi
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x30]
add edi, esi
push edi
push esi
call sub.CRTDLL.DLL_memcpy
add esp, 0xc
mov edi, dword [ebp + 8]
add edi, 0x68
mov esi, dword [ebp - 0x10]
sub dword [edi], esi
mov edi, dword [ebp + 8]
add edi, 0x64
mov esi, dword [ebp - 0x10]
sub dword [edi], esi
mov edi, dword [ebp + 8]
add edi, 0x54
mov esi, dword [ebp - 0x10]
sub dword [edi], esi
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x44]
mov dword [ebp - 4], edi
mov edi, dword [ebp - 4]
shl edi, 1
mov esi, dword [ebp + 8]
add edi, dword [esi + 0x3c]
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0xc]
add edi, 0xfffffffe
mov dword [ebp - 0xc], edi
movzx edi, word [edi]
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 8], edi
jb 0x41f265
mov edi, dword [ebp - 8]
mov ebx, edi
sub ebx, dword [ebp - 0x10]
jmp 0x41f26a
mov ebx, 0
mov edi, dword [ebp - 0xc]
mov esi, ebx
mov word [edi], si
mov edi, dword [ebp - 4]
sub edi, 1
mov dword [ebp - 4], edi
cmp edi, 0
jne 0x41f23f
mov edi, dword [ebp - 0x10]
mov dword [ebp - 4], edi
mov edi, dword [ebp - 4]
shl edi, 1
mov esi, dword [ebp + 8]
add edi, dword [esi + 0x38]
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0xc]
add edi, 0xfffffffe
mov dword [ebp - 0xc], edi
movzx edi, word [edi]
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x10]
cmp dword [ebp - 8], edi
jb 0x41f2bf
mov edi, dword [ebp - 8]
mov ebx, edi
sub ebx, dword [ebp - 0x10]
jmp 0x41f2c4
mov ebx, 0
mov edi, dword [ebp - 0xc]
mov esi, ebx
mov word [edi], si
mov edi, dword [ebp - 4]
sub edi, 1
mov dword [ebp - 4], edi
cmp edi, 0
jne 0x41f299
mov edi, dword [ebp - 0x10]
add dword [ebp - 0x14], edi
mov edi, dword [ebp + 8]
mov edi, dword [edi]
cmp dword [edi + 4], 0
jne 0x41f2fa
jmp 0x41f391
push dword [ebp - 0x14]
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x6c]
mov ebx, dword [edi + 0x64]
add ebx, dword [edi + 0x30]
add esi, ebx
push esi
push dword [edi]
call fcn.0041ed28
add esp, 0xc
mov dword [ebp - 4], eax
mov edi, dword [ebp + 8]
add edi, 0x6c
mov esi, dword [ebp - 4]
add dword [edi], esi
mov edi, dword [ebp + 8]
cmp dword [edi + 0x6c], 3
jb 0x41f374
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x64]
mov ebx, dword [edi + 0x30]
movzx esi, byte [ebx + esi]
mov dword [edi + 0x40], esi
mov edi, dword [ebp + 8]
mov esi, edi
add esi, 0x40
mov ebx, dword [esi]
mov ecx, dword [edi + 0x50]
shl ebx, cl
mov edx, dword [edi + 0x64]
add edx, 1
mov ecx, dword [edi + 0x30]
movzx edx, byte [ecx + edx]
xor ebx, edx
and ebx, dword [edi + 0x4c]
mov dword [esi], ebx
mov edi, dword [ebp + 8]
cmp dword [edi + 0x6c], 0x106
jae 0x41f391
mov edi, dword [edi]
cmp dword [edi + 4], 0
jne 0x41f18b
pop edi
pop esi
pop ebx
leave
ret