Function at 0x42cae9
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push 0xb8
mov eax, 0x48e534
call fcn.00474ec1
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
xor esi, esi
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x54], esi
cmp eax, esi
jle 0x42cdce
mov dword [ebp - 0x4c], esi
xor edi, edi
cmp esi, edi
jl 0x42cdee
cmp esi, eax
jge 0x42cdee
mov eax, dword [ebx]
add eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
add eax, 0x28
push eax
call fcn.004016f0
mov dword [ebp - 4], edi
cmp dword [ebp - 0x18], 0x10
mov ecx, dword [ebp - 0x2c]
mov edx, ecx
jae 0x42cdd6
lea edx, [ebp - 0x2c]
mov eax, edx
add eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x18], 0x10
jae 0x42cb5a
lea ecx, [ebp - 0x2c]
push edx
push eax
push ecx
lea eax, [ebp - 0xb4]
push eax
call fcn.00418f20
add esp, 0x10
cmp esi, dword [ebx + 4]
jge 0x42cddd
mov eax, dword [ebx]
add eax, dword [ebp - 0x4c]
mov edi, str.bitmap
mov ecx, dword [eax + 0x118]
mov dword [ebp - 0x70], ecx
mov ecx, dword [eax + 0x110]
add ecx, dword [eax + 0x118]
push edi
mov dword [ebp - 0x68], ecx
mov ecx, dword [eax + 0x114]
mov dword [ebp - 0x74], ecx
mov ecx, dword [eax + 0x10c]
add ecx, dword [eax + 0x114]
mov dword [ebp - 0x6c], ecx
call fcn.0046de90
pop ecx
push edi
mov edi, eax
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
call fcn.004129b8
test eax, eax
je 0x42cbea
mov edi, 0x49fcec
push edi
call fcn.0046de90
pop ecx
push edi
mov edi, eax
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
call fcn.004129b8
test eax, eax
jne 0x42cd95
cmp esi, dword [ebx + 4]
jge 0x42cddd
mov eax, dword [ebx]
add eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x64]
add eax, 0xc
push eax
lea esi, [edi + 0x144]
call fcn.004388ed
cmp eax, 0xffffffff
jle 0x42cd92
lea esi, [ebp - 0xb0]
call fcn.0041d33a
mov eax, edi
mov byte [ebp - 4], 1
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebx + 4]
jge 0x42cddd
mov ebx, dword [ebx]
add ebx, dword [ebp - 0x4c]
lea eax, [edi + 0x144]
add ebx, 0xc
push ebx
lea ebx, [ebp - 0x48]
call fcn.0043889a
cmp dword [eax + 0x14], 8
jb 0x42cc5b
mov eax, dword [eax]
lea ecx, [ebp - 0xb0]
push ecx
mov ecx, eax
call fcn.0041d607
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x48]
mov esi, eax
call fcn.0040bba0
cmp esi, ebx
jne 0x42cd81
mov edi, dword [ebp - 0xa4]
mov dword [ebp - 0x50], ebx
cmp edi, ebx
jle 0x42cd16
mov dword [ebp - 0x5c], ebx
cmp dword [ebp - 0xa0], ebx
jle 0x42cd04
mov eax, dword [ebp - 0x98]
imul eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x9c]
imul ecx, dword [ebp - 0x5c]
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, dword [ebp - 0xa8]
mov esi, 0xff
add ecx, eax
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx]
imul eax, edx
mov dword [ebp - 0x60], edx
cdq
mov edi, esi
idiv edi
mov byte [ecx], al
movzx eax, byte [ecx + 1]
imul eax, dword [ebp - 0x60]
cdq
idiv edi
mov byte [ecx + 1], al
movzx eax, byte [ecx + 2]
imul eax, dword [ebp - 0x60]
cdq
idiv esi
inc dword [ebp - 0x5c]
mov byte [ecx + 2], al
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0xa0]
jl 0x42cc9c
inc dword [ebp - 0x50]
mov edi, dword [ebp - 0xa4]
cmp dword [ebp - 0x50], edi
jl 0x42cc91
mov eax, dword [ebp - 0xa0]
dec edi
dec eax
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x70]
lea esi, [ebp - 0xb0]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x6c]
sub eax, dword [ebp - 0x74]
cmp byte [ebp - 0x93], bl
mov dword [ebp - 0x50], eax
setne al
mov byte [ebp - 0x56], 0xff
mov word [ebp - 0x58], bx
mov byte [ebp - 0x55], al
call fcn.0041d5c4
push dword [ebp - 0x58]
push dword [ebp - 0xb8]
push edi
push ebx
push ebx
push dword [ebp - 0x88]
push dword [ebp - 0x60]
push dword [ebp - 0x50]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
call dword [sym.imp.MSIMG32.dll_AlphaBlend]
call fcn.0041dba4
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], bl
call fcn.0041d3a6
mov ebx, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x54]
cmp esi, dword [ebx + 4]
jge 0x42cddd
mov eax, dword [ebx]
add eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x64]
push eax
call fcn.0042cae9
or dword [ebp - 4], 0xffffffff
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.00401524
mov eax, dword [ebx + 4]
add dword [ebp - 0x4c], 0x1f8
inc esi
mov dword [ebp - 0x54], esi
cmp esi, eax
jl 0x42cb14
call fcn.00474f44
ret 4
mov eax, ecx
jmp 0x42cb4e
push 0
push 0
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]
push edi
push edi
jmp 0x42cde1