Function at 0x4249a2
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov eax, dword [0x44ce10]
mov dword [esp + 8], 0xb270b02a
mov dword [esp + 0xc], 0xb625b423
mov dword [esp + 0x10], 0xba18b873
mov dword [esp + 0x14], 0xbe1cbc2f
mov dword [esp + 0x18], 0xa2a1a05a
mov dword [esp + 0x1c], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x17
ja 0x4245ab
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 8]
add ecx, 0x8307433f
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x10
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x18
jb 0x424570
lea edi, [esp + 0x8c]
lea esi, [esp + 8]
push edi
push 0
push 0
push 9
push esi
push 0
call eax
mov ebx, dword [esp + 0x8c]
test ebx, ebx
jns 0x4245d4
mov eax, 0xffffffff
jmp 0x4245d7
lea eax, [ebx + ebx]
push eax
call fcn.004096b0
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [0x44ce10]
mov dword [esp + 8], 0x5b1b597d
mov dword [esp + 0xc], 0x5f2e5d2c
mov dword [esp + 0x10], 0x53335114
mov dword [esp + 0x14], 0x57375520
mov dword [esp + 0x18], 0x6b6a694d
mov dword [esp + 0x1c], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x17
ja 0x424674
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 8]
lea ebp, [ecx + 0x50]
add ecx, edx
and ebp, edx
add ebp, ebp
sub ecx, ebp
add ecx, 0x4574cc50
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xf8
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x18
jb 0x424630
push edi
push ebx
push dword [esp + 0x54]
push 9
push esi
push 0
call eax
mov dword [esp + 8], 0xc6acc489
mov dword [esp + 0xc], 0xc2aec05c
mov dword [esp + 0x10], 0xce5dcc5c
mov dword [esp + 0x14], 0xcacbc8a5
lea edx, [esp + 0x18]
mov word [esp + 0x18], 0
mov byte [esp + 0x1a], 0
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x58]
cmp eax, 0x12
ja 0x424709
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
movzx ecx, byte [esp + ecx + 8]
add eax, 0xac070ed0
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xeb
mov ecx, dword [esp + 0x58]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x58]
mov eax, dword [esp + 0x58]
cmp eax, 0x13
jb 0x4246d0
lea eax, [esp + 0xd4]
lea esi, [esp + 8]
mov edi, eax
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xe4]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 8], 0x6e8068ad
mov dword [esp + 0xc], 0x12f66cf8
mov dword [esp + 0x10], 0x16811080
mov dword [esp + 0x14], 0x1ade14f1
mov dword [esp + 0x18], 0x1e8d18fe
mov dword [esp + 0x1c], 0x2951cfa
mov dword [esp + 0x20], 0x607009e
lea esi, [esp + 0x24]
mov byte [esp + 0x24], 0
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x1c
ja 0x4247cb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 8]
add ecx, 0x9f6d8e3a
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0xad
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x1d
jb 0x424790
lea edx, [esp + 0xb8]
lea ebx, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0x28462a6f
mov dword [esp + 0xc], 0x2c482eba
mov dword [esp + 0x10], 0x50c752c2
mov dword [esp + 0x14], 0x54255633
mov dword [esp + 0x18], 0x581f5a2f
lea ebx, [esp + 0x1c]
mov word [esp + 0x1c], 0x5e5f
mov dword [esp + 0x1e], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x19
ja 0x42489e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x90]
movzx esi, byte [esp + esi + 8]
lea edi, [ecx + esi]
add ecx, 0x38
and ecx, esi
add ecx, ecx
sub edi, ecx
add edi, 0x9e55c838
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x58]
add cl, 0xed
mov esi, dword [esp + 0x90]
mov byte [esp + esi + 8], cl
inc dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x1a
jb 0x424850
lea esi, [esp + 0x58]
lea ebp, [esp + 8]
mov edi, esi
mov ecx, 5
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
lea edi, [esp + 0x6c]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0xa0], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x78], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x4492ac]
jmp dword [0x4492bc]
jmp dword [0x4492c4]
push dword [esp + 0x4c]
call fcn.004096c0
add esp, 4
mov eax, dword [esp + 0x78]
and al, 1
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xb0], ecx
mov ebp, dword [esp + ecx + 0x90]
mov esi, 0xfffffffe
nop
nop
nop
nop
cmp word [ebp + esi + 2], 0
lea esi, [esi + 2]
jne 0x424970
mov edi, esi
sar edi, 1
mov eax, dword [esp + 0x8c]
add eax, edi
add eax, 0xd
mov ecx, dword [case.0x4248fa.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
test eax, eax
jns 0x4249b0
mov eax, 0xffffffff
jmp 0x4249b2
add eax, eax
push eax
call fcn.004096b0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x4c]
movzx ecx, word [eax]
mov dword [esp + 0x70], edx
mov eax, edx
test cx, cx
je 0x4249f1
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x70]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4249e0
mov word [eax], 0x5c
mov dword [esp + 8], 0xb877ba69
mov dword [esp + 0xc], 0xbc18be0a
mov dword [esp + 0x10], 0x802f821c
mov dword [esp + 0x14], 0x84508661
mov dword [esp + 0x18], 0x882a8a31
mov dword [esp + 0x1c], 0x8c2a8e3d
mov word [esp + 0x20], 0x928d
lea ecx, [esp + 8]
mov word [ecx + 0x1e], 0
mov dword [ecx + 0x1a], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1f
ja 0x424a80
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
add ecx, 0x1626fa57
xor ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x40]
add cl, 0x1e
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x20
jb 0x424a50
add eax, 2
movzx ecx, word [ebp]
test cx, cx
je 0x424aa1
lea edx, [ebp + 2]
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424a90
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x424ad1
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424ac0
mov word [eax], 0
lea eax, [esp + 0x88]
push 0x60
push 3
push 0x120089
push eax
push dword [esp + 0x80]
call fcn.00440e00
add esp, 0x14
mov ecx, dword [case.0x4248fa.15]
nop
nop
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x4492ec]
xor ebx, ebx
jmp dword [0x44934c]
lea eax, [esp + 0x84]
push 0
push eax
push dword [esp + 0x90]
call fcn.00441180
add esp, 0xc
not eax
shr eax, 0x1f
xor ebx, ebx
mov dword [esp + 0x74], edi
jmp dword [eax*4 + 0x4492f4]
mov edi, dword [esp + 0x84]
lea eax, [edi + 1]
push eax
call fcn.004096b0
add esp, 4
push 0
push edi
mov edi, eax
push eax
push dword [esp + 0x94]
call fcn.00441260
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x4492fc]
jmp dword [0x449304]
mov eax, dword [esp + 0x84]
mov byte [edi + eax], 0
push edi
call fcn.00402840
add esp, 4
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x84]
mov byte [edi + eax], 0
push edi
call fcn.00402840
add esp, 4
jmp dword [0x449310]
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
jmp dword [ecx*4 + 0x449314]
jmp dword [0x449344]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x54], eax
mov dword [esp + 8], 0xe2fdfcff
mov word [esp + 0xc], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x424c3e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x9c510d4d
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x4d
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x424c10
mov ecx, dword [0x44ce14]
test ecx, ecx
je 0x424c80
mov edx, dword [esp + 8]
xor edi, edi
mov eax, dword [0x44ce18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x625b6034
je 0x424c70
inc edi
cmp ecx, edi
jne 0x424c60
jmp 0x424c80
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
jne 0x424c90
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x74]
jmp dword [0x44934c]
push dword [esp + 0x54]
push 1
push dword [0x44ce1c]
push eax
call fcn.0043ea00
add esp, 0x10
mov edi, dword [esp + 0x74]
jmp dword [0x44934c]