Function at 0x424bb0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, dword [eax + 0x10]
push edi
test ebx, ebx
push esi
jge 0x424c10
mov ecx, eax
mov eax, ebx
neg eax
cdq
mov dword [ecx + 0x10], eax
mov edi, 0xc
idiv edi
xchg ecx, eax
mov esi, ecx
lea edx, [ecx*4]
lea edx, [edx + edx*2]
add edx, ebx
neg edx
jne 0x424bf0
sub dword [eax + 0x14], ecx
mov dword [eax + 0x10], 0
jmp 0x424c32
mov ebx, esi
lea ecx, [ebx + 1]
shl ebx, 2
sub dword [eax + 0x14], ecx
lea ebx, [ebx + ebx*2]
sub ebx, dword [eax + 0x10]
add ebx, 0xc
mov dword [eax + 0x10], ebx
jmp 0x424c32
mov ebx, dword [eax + 0x10]
cmp ebx, 0xb
jle 0x424c32
xchg ebx, eax
cdq
mov ecx, 0xc
idiv ecx
xchg ebx, eax
mov esi, ebx
add dword [eax + 0x14], ebx
mov ebx, esi
shl ebx, 2
lea ebx, [ebx + ebx*2]
sub dword [eax + 0x10], ebx
mov ebx, dword [eax + 0x14]
add ebx, 0x76c
cmp ebx, 0x7b2
jl 0x424c4b
cmp ebx, 0x7f5
jle 0x424c55
pop esi
or eax, 0xffffffff
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4c050c]
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jge 0x424c66
neg ecx
jmp 0x424c6f
mov ecx, dword [0x4c050c]
mov ecx, dword [ecx + 0x14]
cmp ecx, 0x5a0
jle 0x424c82
mov edx, dword [0x4c02c0]
mov edx, dword [edx + 0xc]
jmp 0x424c97
mov edx, dword [0x4c050c]
mov edx, dword [edx + 0x14]
lea ecx, [edx*4]
shl edx, 6
sub edx, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [eax + 0x14]
mov edi, ecx
mov ebx, ecx
sar edi, 0x1f
xor ebx, edi
sub ebx, edi
and ebx, 3
xor ebx, edi
sub ebx, edi
sete bl
and ebx, 0xff
add ecx, 0x76b
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x18], ebx
cmp ecx, 0x7b2
jl 0x424d05
xor edi, edi
mov ebx, edi
mov edi, ecx
sar edi, 0x1f
mov edx, ecx
xor edx, edi
sub edx, edi
and edx, 3
xor edx, edi
sub edx, edi
sete dl
and edx, 0xff
dec ecx
mov edi, edx
add edi, 0x16d
add edi, ebx
cmp ecx, 0x7b2
jge 0x424cd2
mov dword [ebp - 0xc], edi
mov edi, eax
push 0
mov ecx, dword [edi + 0x10]
cmp ecx, 2
setge bl
and ebx, 0xff
neg ebx
and ebx, dword [ebp - 0x18]
add ebx, dword [ecx*4 + 0x460c04]
mov ecx, dword [ebp - 0x14]
add ebx, dword [edi + 0xc]
dec ebx
add ebx, dword [ebp - 0xc]
mov dword [ebp - 0xc], ebx
shl ebx, 7
lea ebx, [ebx + ebx*8]
lea ebx, [ebx + ebx*4]
mov eax, ebx
shl ebx, 4
sub ebx, eax
mov eax, dword [edi + 8]
shl eax, 4
lea edx, [eax + eax*2]
shl edx, 5
add edx, eax
shl eax, 7
add edx, eax
add edx, ecx
add edx, ebx
mov ebx, dword [edi + 4]
lea eax, [ebx*4]
shl ebx, 6
sub ebx, eax
lea eax, [ebp - 4]
add ebx, edx
mov edx, edi
add ebx, dword [edi]
mov dword [ebp - 4], ebx
mov ebx, dword [edi + 0x20]
push ebx
mov dword [ebp - 0x10], ebx
sub esp, 0xc
call fcn.004289a0
mov eax, edi
add esp, 0x14
mov ebx, dword [eax + 0x20]
inc ebx
cmp ebx, 4
ja case.default.0x424d94
jmp dword [ebx*4 + 0x424dfc]
mov ebx, dword [0x4c050c]
mov ebx, dword [ebx + 0x40]
sub dword [ebp - 4], ebx
jmp case.0x424d94.1
cmp dword [ebp - 0x10], 0
jne 0x424dc0
mov dword [eax + 0x20], 0
jmp case.0x424d94.1
mov ebx, dword [0x4c050c]
mov ebx, dword [ebx + 0x40]
sub dword [ebp - 4], ebx
cmp dword [ebp - 0x10], 4
jne case.0x424d94.1
mov dword [eax + 0x20], 2
jmp case.0x424d94.1
pop esi
or eax, 0xffffffff
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 4], 0
jge 0x424df0
or eax, 0xffffffff
jmp 0x424df3
mov eax, dword [ebp - 4]
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret