Function at 0x481340
Capabilities:
Encrypt data using rc4 ksa
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov edi, dword [ebp + 0xc]
lea esi, [ebp - 0x10]
xor eax, eax
push ebp
push 0x48155c
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x58]
mov edx, ebx
call fcn.00404250
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x14]
call fcn.004811c8
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x14]
call fcn.00404518
push eax
call sub.kernel32.dll_CreateFileA
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4813b0
xor ebx, ebx
jmp 0x48153e
xor eax, eax
mov dword [ebp - 0xc], eax
push 0
lea eax, [ebp - 0xc]
push eax
push 0x12
lea eax, [ebp - 0x26]
push eax
push ebx
call sub.kernel32.dll_ReadFile
cmp byte [ebp - 0x26], 0
jne 0x4813df
cmp byte [ebp - 0x25], 0
jne 0x4813df
cmp byte [ebp - 0x24], 2
jne 0x4813df
cmp byte [ebp - 0x16], 0x20
je 0x4813ec
push ebx
call sub.kernel32.dll_CloseHandle
xor ebx, ebx
jmp 0x48153e
lea eax, [ebp - 0x52]
xor ecx, ecx
mov edx, 0x2c
call fcn.00402ca0
mov dword [ebp - 0x52], 0x28
mov al, byte [ebp - 0x15]
mov edx, eax
and dl, 0x10
cmp dl, 0x10
sete byte [edi]
movzx edx, word [ebp - 0x1a]
mov ecx, dword [ebp - 8]
mov dword [ecx], edx
cmp byte [edi], 0
je 0x481429
movzx edx, word [ebp - 0x1a]
neg edx
mov dword [ebp - 0x4e], edx
jmp 0x481430
movzx edx, word [ebp - 0x1a]
mov dword [ebp - 0x4e], edx
and al, 0x20
cmp al, 0x20
mov eax, dword [ebp + 8]
sete byte [eax]
mov ax, word [ebp - 0x18]
movzx edx, ax
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edx
mov ecx, dword [ebp + 8]
cmp byte [ecx], 0
je 0x481458
movzx eax, ax
neg eax
mov dword [ebp - 0x4a], eax
jmp 0x48145b
mov dword [ebp - 0x4a], edx
mov word [ebp - 0x46], 1
xor eax, eax
mov al, byte [ebp - 0x16]
mov word [ebp - 0x44], ax
xor eax, eax
mov dword [ebp - 0x42], eax
push 0
push 0
push esi
push 0
lea eax, [ebp - 0x52]
push eax
push 0
call sub.gdi32.dll_CreateDIBSection
mov edi, eax
test edi, edi
jne 0x481494
push ebx
call sub.kernel32.dll_CloseHandle
xor ebx, ebx
jmp 0x48153e
push 0
lea eax, [ebp - 0xc]
push eax
movzx eax, word [ebp - 0x1a]
movzx edx, word [ebp - 0x18]
imul edx
shl eax, 2
push eax
mov eax, dword [esi]
push eax
push ebx
call sub.kernel32.dll_ReadFile
push ebx
call sub.kernel32.dll_CloseHandle
movzx ebx, word [ebp - 0x1a]
movzx eax, word [ebp - 0x18]
imul ebx, eax
sub ebx, 2
test ebx, ebx
jl 0x481531
inc ebx
xor ecx, ecx
mov eax, dword [esi]
movzx eax, byte [eax + ecx*4]
mov edx, dword [esi]
movzx edx, byte [edx + ecx*4 + 3]
imul edx
push ecx
mov ecx, 0xff
xor edx, edx
div ecx
pop ecx
mov edx, dword [esi]
mov byte [edx + ecx*4], al
mov eax, dword [esi]
movzx eax, byte [eax + ecx*4 + 1]
mov edx, dword [esi]
movzx edx, byte [edx + ecx*4 + 3]
imul edx
push ecx
mov ecx, 0xff
xor edx, edx
div ecx
pop ecx
mov edx, dword [esi]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [esi]
movzx eax, byte [eax + ecx*4 + 2]
mov edx, dword [esi]
movzx edx, byte [edx + ecx*4 + 3]
imul edx
push ecx
mov ecx, 0xff
xor edx, edx
div ecx
pop ecx
mov edx, dword [esi]
mov byte [edx + ecx*4 + 2], al
inc ecx
dec ebx
jne 0x4814cc
mov eax, dword [ebp - 4]
mov byte [eax], 1
call sub.gdi32.dll_GdiFlush
mov ebx, edi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x481563
lea eax, [ebp - 0x58]
call fcn.00404058
lea eax, [ebp - 0x14]
call fcn.00404058
ret