Function at 0x44b75f
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x4fc504]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x5073bc], 0
push ebx
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x3c], ebx
je 0x44b9cf
fld dword [ebp + 0x10]
fsub dword [ebp + 8]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fcomp dword [0x4ee120]
fnstsw ax
test ah, 0x41
jne 0x44b9cf
push esi
push edi
push dword [ecx + 8]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
fld dword [ebp + 0x10]
mov esi, eax
fsub dword [ebp + 8]
mov dword [ebp - 0x40], esi
fstp dword [ebp - 0x44]
fild dword [ebp - 0x3c]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x44]
fld dword [ebp - 0x34]
fcom st(1)
fnstsw ax
fld qword [0x4ee170]
test ah, 5
jp 0x44b801
fld st(1)
fsubp st(3)
fmul st(2), st(0)
fxch st(2)
call fcn.004b7d00
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
jmp 0x44b803
fstp st(2)
fadd dword [ebp + 8]
fstp dword [ebp + 0x10]
fld dword [ebp + 0x14]
fsub dword [ebp + 0xc]
fstp dword [ebp - 0x3c]
fild dword [ebp + 0x1c]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x3c]
fld dword [ebp - 0x34]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x44b850
fld st(0)
fsubp st(2)
fxch st(1)
fmulp st(2)
fxch st(1)
call fcn.004b7d00
mov dword [ebp - 0x34], eax
fild dword [ebp - 0x34]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fadd dword [ebp + 0xc]
fstp dword [ebp + 0xc]
jmp 0x44b854
fstp st(1)
fstp st(1)
fadd dword [ebp + 0xc]
mov edi, dword [ebp + 0x1c]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x30], 0x28
push 0x20
inc eax
mov dword [ebp - 0x2c], ebx
mov word [ebp - 0x24], ax
pop eax
push ecx
push ecx
mov word [ebp - 0x22], ax
lea eax, [ebp - 0x48]
push eax
push ecx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x28], edi
push eax
push esi
fstp dword [ebp + 0x14]
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 - 0x48], ecx
call dword [sym.imp.GDI32.dll_CreateDIBSection]
mov dword [ebp - 0x58], eax
test eax, eax
je 0x44b9c6
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x50], eax
mov edx, 0xff
lea eax, [edi - 1]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x3c], eax
test eax, eax
js 0x44b958
mov edi, ebx
imul edi, eax
shl edi, 2
imul ecx, ebx, 0xfffffffc
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x60], ecx
test ebx, ebx
jle 0x44b945
mov dword [ebp - 0x44], ebx
mov ebx, dword [ebp + 0x20]
mov dword [ebp - 0x54], edi
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx]
imul eax, ecx
mov esi, dword [ebp - 0x48]
cdq
idiv dword [ebp - 0x38]
mov byte [edi + esi + 2], al
movzx eax, byte [ebx + 1]
imul eax, ecx
cdq
idiv dword [ebp - 0x38]
mov byte [edi + esi + 1], al
movzx eax, byte [ebx + 2]
imul eax, ecx
mov ecx, 0xff
cdq
idiv ecx
mov byte [edi + esi], al
lea edi, [edi + 4]
mov al, byte [ebx + 3]
add ebx, 4
dec dword [ebp - 0x44]
mov byte [edi + esi - 1], al
jne 0x44b8ee
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x60]
mov dword [ebp + 0x20], ebx
mov ebx, dword [ebp - 0x4c]
dec eax
add edi, ecx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], edi
test eax, eax
jns 0x44b8e1
mov esi, dword [ebp - 0x40]
mov edi, dword [ebp + 0x1c]
fld dword [ebp + 0x14]
xor eax, eax
fld dword [ebp + 0xc]
fld st(0)
mov dword [ebp - 0x38], 0x1ff0000
push dword [ebp - 0x38]
fsubp st(2)
fxch st(1)
push edi
push ebx
push eax
push eax
fstp dword [ebp - 0x40]
fld dword [ebp - 0x40]
push esi
call fcn.004b65d5
fld dword [ebp + 0x10]
fld dword [ebp + 8]
fld st(0)
fsubp st(2)
fxch st(1)
push eax
fstp dword [ebp - 0x40]
fld dword [ebp - 0x40]
call fcn.004b7d00
push eax
fxch st(1)
call fcn.004b7d00
push eax
call fcn.004b7d00
push eax
mov eax, dword [ebp - 0x5c]
push dword [eax + 8]
call dword [0x5073bc]
push dword [ebp - 0x50]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x58]
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.004906a0
mov esp, ebp
pop ebp
ret 0x1c