Function at 0x466c3c
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffefc
mov esi, edx
mov edi, eax
mov ebx, 0x497c54
mov byte [esp], 0
cmp byte [0x494eb0], 0
je 0x466c61
call fcn.00466e94
test esi, esi
jbe 0x466e86
test esi, 3
jne 0x466e86
call fcn.00466ac8
cmp esi, eax
ja 0x466e86
mov byte [0x494eb0], 1
shr esi, 3
xor ecx, ecx
mov byte [ebx + ecx], cl
mov eax, ecx
xor edx, edx
div esi
mov ebp, edi
add edx, ebp
mov al, byte [edx]
mov byte [esp + ecx + 1], al
mov eax, ecx
inc eax
mov byte [ebx + ecx + 1], al
lea eax, [ecx + 1]
xor edx, edx
div esi
add edx, ebp
mov al, byte [edx]
mov byte [esp + ecx + 2], al
mov eax, ecx
add al, 2
mov byte [ebx + ecx + 2], al
lea eax, [ecx + 2]
xor edx, edx
div esi
add edx, ebp
mov al, byte [edx]
mov byte [esp + ecx + 3], al
mov eax, ecx
add al, 3
mov byte [ebx + ecx + 3], al
lea eax, [ecx + 3]
xor edx, edx
div esi
add edx, ebp
mov al, byte [edx]
mov byte [esp + ecx + 4], al
mov eax, ecx
add al, 4
mov byte [ebx + ecx + 4], al
lea eax, [ecx + 4]
xor edx, edx
div esi
add edx, edi
mov al, byte [edx]
mov byte [esp + ecx + 5], al
mov eax, ecx
add al, 5
mov byte [ebx + ecx + 5], al
lea eax, [ecx + 5]
xor edx, edx
div esi
add edx, edi
mov al, byte [edx]
mov byte [esp + ecx + 6], al
mov eax, ecx
add al, 6
mov byte [ebx + ecx + 6], al
lea eax, [ecx + 6]
xor edx, edx
div esi
add edx, edi
mov al, byte [edx]
mov byte [esp + ecx + 7], al
mov eax, ecx
add al, 7
mov byte [ebx + ecx + 7], al
lea eax, [ecx + 7]
xor edx, edx
div esi
add edx, edi
mov al, byte [edx]
mov byte [esp + ecx + 8], al
add ecx, 8
cmp ecx, 0xff
jb 0x466c8e
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dl, byte [ebx + ecx]
add eax, edx
movzx esi, byte [esp + ecx + 1]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 1]
add eax, edx
movzx esi, byte [esp + ecx + 2]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 1], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 2]
add eax, edx
movzx esi, byte [esp + ecx + 3]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 2], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 3]
add eax, edx
movzx esi, byte [esp + ecx + 4]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 3], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 4]
add eax, edx
movzx esi, byte [esp + ecx + 5]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 4], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 5]
add eax, edx
movzx esi, byte [esp + ecx + 6]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 5], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 6]
add eax, edx
movzx esi, byte [esp + ecx + 7]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 6], dl
mov edx, esi
mov byte [ebx + eax], dl
xor edx, edx
mov dl, byte [ebx + ecx + 7]
add eax, edx
movzx esi, byte [esp + ecx + 8]
add eax, esi
and eax, 0xff
mov esi, edx
mov dl, byte [ebx + eax]
mov byte [ebx + ecx + 7], dl
mov edx, esi
mov byte [ebx + eax], dl
add ecx, 8
cmp ecx, 0xff
jb 0x466d54
mov edx, 0x497d54
mov eax, ebx
mov ecx, pe_nt_image_headers32
call fcn.004029ec
mov byte [esp], 1
mov al, byte [esp]
add esp, 0x104
pop ebp
pop edi
pop esi
pop ebx
ret