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

Disassembly:
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
shr eax, 2
mov ecx, eax
imul ecx, dword [esp + 0xc]
add ecx, dword [esp + 8]
push ebp
mov ebp, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0xc]
shr edx, 2
lea ecx, [esi + ecx*4]
mov esi, edx
imul esi, dword [esp + 0x24]
add esi, dword [esp + 0x20]
push edi
mov edi, dword [esp + 0x20]
lea esi, [edi + esi*4]
mov edi, dword [esp + 0x38]
sub eax, ebp
sub edx, ebp
cmp edi, 0xc
ja case.default.0x44431b
push ebx
jmp dword [edi*4 + 0x444c58]
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp dword [esp + 0x34], 0
jle 0x444438
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov ebx, dword [esi]
mov ebp, dword [ecx]
mov dword [esp + 0x1c], ebp
shr ebp, 0x18
mov edi, ebx
shr edi, 0x18
mov edx, 0xff
sub edx, edi
imul edx, ebp
mov eax, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x18], edx
mov edx, edi
imul edx, ebp
mov eax, 0x80808081
mul edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
shr edx, 7
mov ebp, edi
sub ebp, edx
add ebp, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
je 0x444416
shr eax, 0x10
and eax, 0xff
imul eax, dword [esp + 0x18]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
imul edx, edi
add eax, edx
xor edx, edx
div ebp
shl ebp, 8
movzx edx, bh
imul edx, edi
movzx ebx, bl
imul ebx, edi
or eax, ebp
shl eax, 8
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x1d]
imul eax, dword [esp + 0x18]
add eax, edx
xor edx, edx
div dword [esp + 0x14]
mov edx, dword [esp + 0x24]
or edx, eax
movzx eax, byte [esp + 0x1c]
imul eax, dword [esp + 0x18]
shl edx, 8
mov dword [esp + 0x1c], edx
xor edx, edx
add eax, ebx
div dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
or edx, eax
mov dword [ecx], edx
jmp 0x444427
and ebx, 0xfefefe
and eax, 0xfefefe
add ebx, eax
shr ebx, 1
mov dword [ecx], ebx
add ecx, 4
add esi, 4
sub dword [esp + 0x2c], 1
jne 0x444355
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x28], 1
jne 0x444342
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp dword [esp + 0x34], 0
jle 0x444566
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov ebp, dword [ecx]
mov ebx, dword [esi]
mov dword [esp + 0x1c], ebp
shr ebp, 0x18
mov edi, ebx
shr edi, 0x18
mov edx, 0xff
sub edx, ebp
imul edx, edi
mov eax, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x18], edx
mov edx, edi
imul edx, ebp
mov eax, 0x80808081
mul edx
shr edx, 7
sub edi, edx
add edi, ebp
mov dword [esp + 0x14], edi
je 0x444540
mov edx, dword [esp + 0x1c]
shr edx, 0x10
and edx, 0xff
imul edx, ebp
mov eax, ebx
shr eax, 0x10
and eax, 0xff
imul eax, dword [esp + 0x18]
add eax, edx
xor edx, edx
div edi
movzx edx, byte [esp + 0x1d]
shl edi, 8
imul edx, ebp
or eax, edi
shl eax, 8
mov dword [esp + 0x24], eax
movzx eax, bh
imul eax, dword [esp + 0x18]
add eax, edx
xor edx, edx
div dword [esp + 0x14]
mov edx, dword [esp + 0x24]
movzx edi, byte [esp + 0x1c]
imul edi, ebp
or edx, eax
movzx eax, bl
imul eax, dword [esp + 0x18]
shl edx, 8
mov dword [esp + 0x1c], edx
xor edx, edx
add eax, edi
div dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
or edx, eax
mov dword [ecx], edx
jmp 0x444555
mov eax, dword [esp + 0x1c]
and ebx, 0xfefefe
and eax, 0xfefefe
add ebx, eax
shr ebx, 1
mov dword [ecx], ebx
add ecx, 4
add esi, 4
sub dword [esp + 0x2c], 1
jne 0x444483
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x28], 1
jne 0x444470
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], edi
mov edi, edi
cmp dword [esp + 0x34], 0
jle 0x44461c
mov edi, dword [esp + 0x34]
nop
mov ebx, dword [ecx]
mov edx, dword [esi]
shr edx, 0x10
and edx, 0xff
mov eax, ebx
shr eax, 0x10
and eax, 0xff
imul edx, eax
mov eax, 0x80808081
mul edx
shr edx, 7
mov ebp, edx
movzx edx, byte [esi + 1]
movzx eax, bh
imul edx, eax
mov eax, 0x80808081
mul edx
shr edx, 7
shl ebp, 8
or ebp, edx
movzx edx, byte [esi]
movzx eax, bl
imul edx, eax
mov eax, 0x80808081
mul edx
shl ebp, 8
shr edx, 7
or ebp, edx
and ebx, 0xff000000
or ebp, ebx
mov dword [ecx], ebp
add ecx, 4
add esi, 4
sub edi, 1
jne 0x4445b0
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x1c], 1
jne 0x4445a0
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x34], 0
jle 0x444745
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov ebp, dword [ecx]
mov ebx, dword [esi]
mov edi, ebp
and edi, 0xff0000
and ebx, 0xff0000
mov edx, edi
imul edx, ebx
mov eax, ebp
and eax, 0xff000000
mov dword [esp + 0x14], eax
mov eax, 0x80808081
mul edx
shr edx, 7
sub edi, edx
add edi, ebx
cmp edi, 0xff0000
mov dword [esp + 0x1c], edi
jbe 0x4446ad
mov dword [esp + 0x1c], 0xff0000
jmp 0x4446b5
and dword [esp + 0x1c], 0xff0000
mov edi, dword [esi]
mov ebx, ebp
and ebx, 0xff00
and edi, 0xff00
mov edx, ebx
imul edx, edi
mov eax, 0x80808081
mul edx
shr edx, 7
sub ebx, edx
add ebx, edi
mov edi, ebx
cmp edi, 0xff00
jbe 0x4446e9
mov edi, 0xff00
jmp 0x4446f1
and dword [esp + 0x1c], 0xff00
mov ebx, dword [esi]
and ebx, 0xff
and ebp, 0xff
mov edx, ebx
imul edx, ebp
mov eax, 0x80808081
mul edx
shr edx, 7
sub ebx, edx
add ebx, ebp
mov eax, ebx
cmp eax, 0xff
jbe 0x444722
mov eax, 0xff
jmp 0x444727
and eax, 0xff
or eax, edi
or eax, dword [esp + 0x1c]
add ecx, 4
or eax, dword [esp + 0x14]
add esi, 4
sub dword [esp + 0x18], 1
mov dword [ecx - 4], eax
jne 0x444667
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x2c], 1
jne 0x444654
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edi
lea ecx, [ecx]
cmp dword [esp + 0x34], 0
jle 0x444863
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov edi, dword [esi]
mov eax, dword [ecx]
shr edi, 0x10
mov ebx, eax
and ebx, 0xff000000
and edi, 0xff
cmp edi, 0xff
mov dword [esp + 0x14], ebx
je 0x4447e1
shr eax, 0x10
and eax, 0xff
imul eax, eax, 0xff
mov ebp, 0xff
sub ebp, edi
xor edx, edx
div ebp
mov edi, eax
cmp edi, 0xff
jbe 0x4447de
mov edi, 0xff0000
jmp 0x4447e1
shl edi, 0x10
movzx ebp, byte [esi + 1]
cmp ebp, 0xff
je 0x444818
movzx eax, byte [ecx + 1]
imul eax, eax, 0xff
mov edx, 0xff
sub edx, ebp
mov ebp, edx
xor edx, edx
div ebp
mov ebp, eax
cmp ebp, 0xff
jbe 0x444815
mov ebp, 0xff00
jmp 0x444818
shl ebp, 8
movzx edx, byte [esi]
cmp edx, 0xff
je 0x44484a
movzx eax, byte [ecx]
imul eax, eax, 0xff
mov ebx, 0xff
sub ebx, edx
xor edx, edx
div ebx
mov ebx, dword [esp + 0x14]
mov edx, eax
cmp edx, 0xff
jbe 0x44484a
mov edx, 0xff
or edx, ebp
or edx, edi
or edx, ebx
mov dword [ecx], edx
add ecx, 4
add esi, 4
sub dword [esp + 0x1c], 1
jne 0x444793
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x18], 1
jne 0x444780
pop ebx
pop edi
pop esi
pop ebp
ret
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x444c51
lea edi, [eax*4]
mov esi, edx
test ebp, ebp
jle 0x4448b0
mov edx, ebp
mov eax, dword [ecx]
mov ebx, eax
not ebx
xor ebx, eax
and ebx, 0xffffff
xor ebx, eax
mov dword [ecx], ebx
add ecx, 4
sub edx, 1
jne 0x444896
add ecx, edi
sub esi, 1
jne 0x444890
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x14], edi
lea esp, [esp]
cmp dword [esp + 0x34], 0
jle 0x44496a
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov edx, dword [ecx]
mov edi, dword [esi]
mov dword [esp + 0x1c], edi
mov eax, edx
and edi, 0xff0000
and eax, 0xff0000
mov ebx, edx
add edi, eax
and ebx, 0xff000000
cmp edi, 0xff0000
jbe 0x44491f
mov edi, 0xff0000
mov ebp, dword [esp + 0x1c]
mov eax, edx
and ebp, 0xff00
and eax, 0xff00
add ebp, eax
cmp ebp, 0xff00
jbe 0x44493f
mov ebp, 0xff00
movzx eax, byte [esp + 0x1c]
movzx edx, dl
add eax, edx
cmp eax, 0xff
jbe 0x444955
mov eax, 0xff
or eax, ebp
or eax, edi
or eax, ebx
mov dword [ecx], eax
add ecx, 4
add esi, 4
sub dword [esp + 0x18], 1
jne 0x4448f3
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x14], 1
jne 0x4448e0
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edi
cmp dword [esp + 0x34], 0
jle 0x444a14
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
mov edi, dword [esi]
mov ebx, edi
mov edx, eax
and ebx, 0xff0000
and edx, 0xff0000
mov ebp, eax
sub edx, ebx
and ebp, 0xff000000
test edx, edx
jns 0x4449d9
xor edx, edx
mov ebx, edi
mov edi, eax
and ebx, 0xff00
and edi, 0xff00
sub edi, ebx
test edi, edi
jns 0x4449f1
xor edi, edi
movzx ebx, byte [esi]
movzx eax, al
sub eax, ebx
test eax, eax
jns 0x4449ff
xor eax, eax
or eax, edi
or eax, edx
or eax, ebp
mov dword [ecx], eax
add ecx, 4
add esi, 4
sub dword [esp + 0x1c], 1
jne 0x4449b5
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x18], 1
jne 0x4449a2
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add edx, edx
add eax, eax
add edx, edx
mov ebx, edi
jmp 0x444a48
mov ebp, dword [esp + 0x34]
test ebp, ebp
jle 0x444a5f
mov edi, dword [esp + 0x34]
mov ebp, dword [esi]
mov dword [ecx], ebp
add ecx, 4
add esi, 4
sub edi, 1
jne 0x444a50
add ecx, eax
add esi, edx
sub ebx, 1
jne 0x444a44
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add edx, edx
add eax, eax
add edx, edx
mov ebx, edi
jmp 0x444a89
mov ebp, dword [esp + 0x34]
test ebp, ebp
jle 0x444aab
mov edi, dword [esp + 0x34]
mov ebp, dword [esi]
xor ebp, dword [ecx]
add ecx, 4
and ebp, 0xffffff
xor ebp, dword [esi]
add esi, 4
sub edi, 1
mov dword [ecx - 4], ebp
jne 0x444a91
add ecx, eax
add esi, edx
sub ebx, 1
jne 0x444a85
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov ebp, edi
cmp dword [esp + 0x34], 0
jle 0x444b12
mov ebx, dword [esp + 0x34]
mov edi, dword [ecx]
movzx edx, byte [esi + 3]
mov eax, edi
shr eax, 0x18
imul edx, eax
mov eax, 0x80808081
mul edx
shr edx, 7
shl edx, 0x18
and edi, 0xffffff
or edx, edi
mov dword [ecx], edx
add ecx, 4
add esi, 4
sub ebx, 1
jne 0x444ae2
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub ebp, 1
jne 0x444ad7
pop ebx
pop edi
pop esi
pop ebp
ret
mov edi, dword [esp + 0x38]
test edi, edi
jle 0x444c51
add eax, eax
add eax, eax
add edx, edx
add edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], edi
cmp dword [esp + 0x34], 0
jle 0x444c3e
mov eax, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
mov ebx, dword [esi]
mov ebp, dword [ecx]
mov dword [esp + 0x1c], ebp
shr ebp, 0x18
mov edi, ebx
shr edi, 0x19
mov edx, 0xff
sub edx, edi
imul edx, ebp
mov eax, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x18], edx
mov edx, edi
imul edx, ebp
mov eax, 0x80808081
mul edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
shr edx, 7
mov ebp, edi
sub ebp, edx
add ebp, dword [esp + 0x14]
mov dword [esp + 0x14], ebp
je 0x444c1c
shr eax, 0x10
and eax, 0xff
imul eax, dword [esp + 0x18]
mov edx, ebx
shr edx, 0x10
and edx, 0xff
imul edx, edi
add eax, edx
xor edx, edx
div ebp
shl ebp, 8
movzx edx, bh
imul edx, edi
movzx ebx, bl
imul ebx, edi
or eax, ebp
shl eax, 8
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x1d]
imul eax, dword [esp + 0x18]
add eax, edx
xor edx, edx
div dword [esp + 0x14]
mov edx, dword [esp + 0x24]
or edx, eax
movzx eax, byte [esp + 0x1c]
imul eax, dword [esp + 0x18]
shl edx, 8
mov dword [esp + 0x1c], edx
xor edx, edx
add eax, ebx
div dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
or edx, eax
mov dword [ecx], edx
jmp 0x444c2d
and ebx, 0xfefefe
and eax, 0xfefefe
add ebx, eax
shr ebx, 1
mov dword [ecx], ebx
add ecx, 4
add esi, 4
sub dword [esp + 0x2c], 1
jne 0x444b57
add ecx, dword [esp + 0x20]
add esi, dword [esp + 0x30]
sub dword [esp + 0x28], 1
jne 0x444b44
pop ebx
pop edi
pop esi
pop ebp
ret