Function at 0x48ef1c
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x5a0b04]
xor eax, ebp
mov dword [ebp - 4], eax
movss xmm0, dword [ebp + 0x10]
mov eax, ecx
subss xmm0, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x4c], edi
comiss xmm0, dword [0x550114]
jbe 0x48f14a
push ebx
push esi
push dword [eax + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
movss xmm0, dword [ebp + 0x10]
mov ebx, eax
movss xmm1, dword [ebp + 8]
movss xmm3, dword [0x55011c]
subss xmm0, xmm1
movd xmm2, edi
cvtdq2ps xmm2, xmm2
mov dword [ebp - 0x54], ebx
comiss xmm0, xmm2
jbe 0x48ef9d
subss xmm0, xmm2
mulss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [ebp + 8], xmm1
mov esi, dword [ebp + 0x1c]
addss xmm2, xmm1
movss xmm0, dword [ebp + 0x14]
movss xmm1, dword [ebp + 0xc]
subss xmm0, xmm1
movss dword [ebp + 0x10], xmm2
movd xmm2, esi
cvtdq2ps xmm2, xmm2
comiss xmm0, xmm2
jbe 0x48efdf
subss xmm0, xmm2
mulss xmm0, xmm3
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [ebp + 0xc], xmm1
xor ecx, ecx
mov dword [ebp - 0x30], 0x28
xor eax, eax
mov dword [ebp - 0x2c], edi
push 0x20
inc eax
mov dword [ebp - 0x28], esi
mov word [ebp - 0x24], ax
addss xmm2, xmm1
pop eax
push ecx
push ecx
mov word [ebp - 0x22], ax
lea eax, [ebp - 0x38]
push eax
push ecx
lea eax, [ebp - 0x30]
movss dword [ebp + 0x14], xmm2
push eax
push ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x38], ecx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x48f141
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x5c], eax
mov edx, 0xff
lea eax, [esi - 1]
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x40], eax
test eax, eax
js 0x48f0e7
mov ebx, edi
imul ebx, eax
shl ebx, 2
imul ecx, edi, 0xfffffffc
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x50], ecx
test edi, edi
jle 0x48f0d4
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp + 0x20]
mov dword [ebp - 0x48], ebx
movzx ecx, byte [edi + 3]
xor edx, edx
movzx eax, byte [edi]
imul eax, ecx
mov esi, dword [ebp - 0x38]
div dword [ebp - 0x34]
xor edx, edx
mov byte [ebx + esi + 2], al
movzx eax, byte [edi + 1]
imul eax, ecx
div dword [ebp - 0x34]
xor edx, edx
mov byte [ebx + esi + 1], al
movzx eax, byte [edi + 2]
imul eax, ecx
mov ecx, 0xff
div ecx
mov byte [ebx + esi], al
lea ebx, [ebx + 4]
mov al, byte [edi + 3]
add edi, 4
sub dword [ebp - 0x3c], 1
mov byte [ebx + esi - 1], al
jne 0x48f079
mov ebx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x50]
mov dword [ebp + 0x20], edi
mov edi, dword [ebp - 0x4c]
dec eax
add ebx, ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ebx
test eax, eax
jns 0x48f06c
mov ebx, dword [ebp - 0x54]
mov esi, dword [ebp + 0x1c]
movss xmm0, dword [ebp + 0x14]
xor eax, eax
subss xmm0, dword [ebp + 0xc]
mov dword [ebp - 0x34], 0x1ff0000
push dword [ebp - 0x34]
push esi
push edi
push eax
push eax
cvttss2si eax, xmm0
push ebx
movss xmm0, dword [ebp + 0x10]
subss xmm0, dword [ebp + 8]
push eax
cvttss2si eax, xmm0
push eax
cvttss2si eax, dword [ebp + 0xc]
push eax
cvttss2si eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x58]
push dword [eax + 8]
call dword [sym.imp.MSIMG32.dll_AlphaBlend]
push dword [ebp - 0x5c]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x60]
call dword [sym.imp.GDI32.dll_DeleteObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.0049badb
leave
ret 0x1c