Function at 0x448ba0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 0xc]
shr eax, 9
not al
and eax, 0xffffff01
push ebx
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
push esi
push edi
xor esi, esi
mov edi, dword [eax]
mov ecx, dword [eax + 4]
movzx eax, word [eax + 8]
mov dword [ebp + 0x10], ecx
mov ecx, eax
lea ebx, [edi + 3]
mov dword [ebp - 4], edi
and ebx, 0xfffffffc
cmp eax, 8
jae 0x448be7
mov eax, 8
xor edx, edx
div ecx
mov ecx, eax
jmp 0x448bea
shr ecx, 3
push str.read_RGB_image_32bit_alpha_hack
imul ebx, ecx
push str.C:dev_allegro_winpkguniversal_allegro_addonsimage_bmp.c
push 0x3b2
push ebx
call fcn.00432e30
add esp, 0x10
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x448c45
push str.read_RGB_image_32bit_alpha_hack
push 0x3b5
push str.C:dev_allegro_winpkguniversal_allegro_addonsimage_bmp.c
push 2
push dword [0x638d50]
call fcn.004320f0
add esp, 0x14
test al, al
je 0x448c3c
push str.Failed_to_allocate_pixel_row_buffer_n
call fcn.004322d0
add esp, 4
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
xor ebx, ebx
test edx, edx
mov eax, edx
lea ecx, [edx - 1]
cmovns ebx, ecx
sar eax, 0x1f
and eax, 2
mov dword [ebp - 0xc], ebx
dec eax
mov ecx, ebx
mov dword [ebp - 8], eax
mov eax, edx
cdq
xor eax, edx
mov dword [ebp - 0x10], ecx
sub eax, edx
mov edx, eax
mov dword [ebp + 0x10], eax
test edx, edx
jle 0x448d9a
mov dword [ebp - 0x14], edx
mov ebx, edi
nop
mov eax, dword [ebp + 0x14]
push 0
push ebx
mov edi, dword [eax + 8]
imul edi, ecx
add edi, dword [eax]
push edi
push dword [ebp - 0x18]
push dword [ebp + 8]
call fcn.00448760
add esp, 0x14
test ebx, ebx
jle 0x448cb8
lea ecx, [edi + 3]
mov edx, ebx
xor eax, eax
lea ecx, [ecx + 4]
cmp byte [ecx - 4], al
setne al
or esi, eax
sub edx, 1
jne 0x448ca6
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 8]
sub dword [ebp - 0x14], 1
mov dword [ebp - 0x10], ecx
jne 0x448c80
mov ebx, dword [ebp - 0xc]
test esi, esi
je 0x448d66
cmp byte [ebp + 0xc], 0
je 0x448d9a
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
mov edi, dword [ecx + 8]
imul edi, ebx
inc edi
test eax, eax
jle 0x448d57
add edi, dword [ecx]
mov ebx, eax
nop word [eax + eax]
movzx esi, byte [edi + 2]
lea edi, [edi + 4]
movzx ecx, byte [edi - 5]
mov eax, 0x80808081
imul ecx, esi
mul ecx
movzx ecx, byte [edi - 4]
mov eax, 0x80808081
imul ecx, esi
shr edx, 7
mov byte [edi - 5], dl
mul ecx
movzx ecx, byte [edi - 3]
mov eax, 0x80808081
imul ecx, esi
shr edx, 7
mov byte [edi - 4], dl
mul ecx
shr edx, 7
mov byte [edi - 3], dl
sub ebx, 1
jne 0x448d00
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp - 8]
add ebx, esi
sub edx, 1
mov dword [ebp - 0xc], ebx
mov dword [ebp + 0x10], edx
jne 0x448ce8
jmp 0x448d9a
mov edx, dword [ebp + 0x10]
mov edi, dword [ebp - 4]
test edx, edx
jle 0x448d9a
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx + 8]
imul eax, ebx
add eax, 3
test edi, edi
jle 0x448d92
add eax, dword [ecx]
mov ecx, edi
mov byte [eax], 0xff
lea eax, [eax + 4]
sub ecx, 1
jne 0x448d84
mov ecx, dword [ebp + 0x14]
add ebx, dword [ebp - 8]
sub edx, 1
jne 0x448d73
push str.read_RGB_image_32bit_alpha_hack
push str.C:dev_allegro_winpkguniversal_allegro_addonsimage_bmp.c
push 0x3e3
push dword [ebp - 0x18]
call fcn.00432e10
add esp, 0x10
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret