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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x180
push ebx
push esi
push edi
push 0x20
pop eax
mov dword [ebp - 0x3c], ecx
lea edi, [ebp - 0x38]
push 5
pop ecx
mov esi, 0xdd1748
mov byte [ebp - 0x1e], al
xor ebx, ebx
mov byte [ebp - 0xd], al
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x40], edx
mov edi, ebx
mov dword [ebp - 0x24], 0xe28a8b7e
mov eax, ebx
mov word [ebp - 0x20], 0x1634
mov dword [ebp - 0x1d], 0x545c5bf4
mov dword [ebp - 0x19], 0x2496171f
mov dword [ebp - 0x15], 0xd43f430c
mov dword [ebp - 0x11], 0xf5cb221c
mov byte [ebp + eax - 0x148], al
inc eax
cmp eax, 0x100
jb 0xddf1ba
mov esi, ebx
mov ebx, dword [0xe1a3bc]
xor edx, edx
mov dword [ebp - 0xc], 0x13
mov eax, esi
mov cl, byte [ebp + esi - 0x148]
div dword [ebp - 0xc]
mov byte [ebp - 1], cl
movzx ecx, cl
push 0x62
movzx eax, byte [ebp + edx - 0x38]
mov edx, 0xfd
add eax, edi
add ecx, eax
xor ebx, 0x384b82ea
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x148]
mov byte [ebp + esi - 0x148], al
mov eax, 0xdd1ce0
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x17e4
ja 0xddf22f
movzx ecx, word [eax]
test ecx, ecx
jne 0xddf219
jmp 0xddf234
call fcn.00ddd94c
mov al, byte [ebp - 1]
lea edx, [ebx + 0x428c03c1]
inc esi
mov byte [ebp + edi - 0x148], al
cmp esi, 0x100
jb 0xddf1d1
mov dword [ebp - 0xc], ebx
xor ebx, ebx
mov ecx, dword [ebp - 0xc]
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
mov dword [ebp - 8], 0xf4f
movzx eax, al
mov dword [ebp - 0xc], eax
push 0x62
pop edi
mov al, byte [ebp + eax - 0x148]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x28], eax
add eax, ebx
movzx ebx, al
or ecx, 0x7cb78ed2
mov eax, 0xdd1ce0
add dword [ebp - 8], edi
lea eax, [eax + 2]
cmp dword [ebp - 8], 0x202b
ja 0xddf2a4
movzx edi, word [eax]
test edi, edi
jne 0xddf28c
jmp 0xddf2ac
mov ecx, edx
or ecx, 0x6925954a
mov edi, dword [ebp - 0xc]
mov edx, ecx
mov al, byte [ebp + ebx - 0x148]
and edx, 0x4cc2e9d4
xor edx, 0x31689581
mov byte [ebp + edi - 0x148], al
mov al, byte [ebp - 1]
mov byte [ebp + ebx - 0x148], al
movzx eax, byte [ebp + edi - 0x148]
add eax, dword [ebp - 0x28]
movzx eax, al
mov al, byte [ebp + eax - 0x148]
xor al, byte [ebp + esi - 0x24]
mov byte [ebp + esi - 0x164], al
inc esi
cmp esi, 0x18
jb 0xddf259
mov esi, 0xdd1958
mov dword [ebp - 8], 0xe56510f3
lea edi, [ebp - 0x30]
xor ebx, ebx
mov byte [ebp - 0x14c], bl
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, ebx
mov byte [ebp + eax - 0x148], al
inc eax
cmp eax, 0x100
jb 0xddf31d
xor ecx, 0x68e2f32
mov esi, ebx
push 0xb
mov dword [ebp - 0xc], ecx
mov dword [0xe1a304], ecx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x148]
mov eax, esi
div ecx
movzx ecx, bl
push 0xb
movzx eax, byte [ebp + edx - 0x30]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x148]
mov byte [ebp + esi - 0x148], al
inc esi
mov byte [ebp + edi - 0x148], bl
cmp esi, 0x100
jb 0xddf340
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x148]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x148]
mov byte [ebp + edi - 0x148], al
mov byte [ebp + ebx - 0x148], cl
movzx eax, byte [ebp + edi - 0x148]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x148]
xor al, byte [ebp + esi - 8]
mov byte [ebp + esi - 0x48], al
inc esi
cmp esi, 4
jb 0xddf383
xor ebx, ebx
mov dword [ebp - 0x2c], 8
push 0x41
mov byte [ebp - 0x44], bl
mov eax, ebx
pop esi
mov dword [ebp - 0x28], 0xffffffb7
add esi, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, 2
jl 0xddf3e8
push 0x5c
mov dword [ebp - 0x2c], 5
mov eax, ebx
mov dword [ebp - 0x28], 0xffffff9f
pop edi
add edi, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, 2
jl 0xddf405
mov eax, dword [ebp - 0xc]
or eax, 0x80351520
mov dword [ebp - 0x2c], 0xc
push 0x2c
mov dword [0xe1a3bc], eax
mov eax, ebx
pop edx
mov dword [ebp - 0x28], 0xffffffc8
add edx, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, 2
jl 0xddf42f
push 0x1e
pop ecx
mov dword [ebp - 0x2c], 0x40
mov eax, ebx
mov dword [ebp - 0x28], 0xffffffa2
add ecx, dword [ebp + eax*4 - 0x2c]
inc eax
cmp eax, 2
jl 0xddf44c
lea eax, [ebp - 0xc]
push eax
push ecx
push edx
push edi
push dword [ebp + 8]
lea ecx, [ebp - 0x48]
push esi
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x164]
call fcn.00dee9ca
call eax
test eax, eax
jne 0xddf49c
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [edx]
call fcn.00e05b22
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [edx + 4]
call fcn.00e05b22
jmp 0xddf623
mov esi, 0xdd1964
mov dword [ebp - 0x24], 0x1dc93c5
lea edi, [ebp - 0x2c]
mov dword [ebp - 0x20], 0x2748d20b
push 0x20
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x1b], al
mov eax, ebx
mov byte [ebp - 0x1c], 0x42
mov dword [ebp - 0x1a], 0x568afd89
movsw word es:[edi], word [esi]
mov dword [ebp - 0x16], 0x3ab3d826
mov dword [ebp - 0x12], 0x77f2af83
mov word [ebp - 0xe], 0xc6fc
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x148], al
inc eax
cmp eax, 0x100
jb 0xddf4df
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x148]
push 6
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x2c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x148]
mov byte [ebp + esi - 0x148], al
inc esi
mov byte [ebp + edi - 0x148], bl
cmp esi, 0x100
jb 0xddf4f0
mov esi, dword [0xe1a304]
add esi, 0x563f68ef
xor ebx, ebx
mov dword [ebp - 8], esi
mov edi, ebx
mov dword [0xe1a304], esi
mov esi, ebx
lea eax, [esi + 1]
movzx esi, al
mov cl, byte [ebp + esi - 0x148]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x148]
mov byte [ebp + esi - 0x148], al
mov byte [ebp + ebx - 0x148], cl
movzx eax, byte [ebp + esi - 0x148]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x148]
xor al, byte [ebp + edi - 0x24]
mov byte [ebp + edi - 0x180], al
inc edi
cmp edi, 0x18
jb 0xddf548
mov esi, dword [ebp - 8]
xor ebx, ebx
xor esi, 0xcd92e954
mov byte [ebp - 0x168], bl
push 0x20
mov dword [ebp - 0x30], 0x61
mov dword [ebp - 0x2c], 0x57
mov dword [ebp - 0x28], 0xffffff28
mov dword [0xe1a3bc], esi
pop eax
add eax, dword [ebp + ebx*4 - 0x30]
inc ebx
cmp ebx, 3
jl 0xddf5c7
lea ecx, [ebp - 0x180]
mov dword [ebp - 0x28], eax
call fcn.00e0523e
mov esi, eax
mov ecx, esi
call fcn.00e05897
add eax, eax
push eax
push esi
push dword [ebp - 0x3c]
call fcn.00e05084
mov ecx, esi
call fcn.00e05897
add eax, eax
push eax
push esi
push dword [ebp - 0x40]
call fcn.00e05084
mov ecx, esi
call fcn.00e05897
push eax
mov eax, dword [ebp - 0x28]
push eax
push esi
call fcn.00e05117
add esp, 0x24
mov ecx, esi
call fcn.00dee98d
pop edi
pop esi
pop ebx
leave
ret