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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a8
push 0x3a
mov dword [ebp - 0x78], ecx
xor eax, eax
pop ecx
mov dword [ebp - 0x60], 6
mov dword [ebp - 0x5c], 0xc4
add ecx, dword [ebp + eax*4 - 0x60]
inc eax
cmp eax, 2
jl 0x40e2de
push ebx
push esi
push edi
mov esi, 0x401bd0
mov dword [ebp - 0x58], ecx
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x54], 0x1c971cd5
push 0x15
pop eax
movsd dword es:[edi], dword [esi]
mov ecx, 0x44a274
mov byte [ebp - 0x3c], al
mov al, byte [0x44a274]
mov dword [ebp - 0x50], 0xa61cd85e
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x4c], 0x8f652156
mov dword [ebp - 0x48], 0x2c84bb5
mov dword [ebp - 0x44], 0x8b0d5f54
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x40], 0x335c823a
mov dword [ebp - 0x3b], 0x427962fc
mov dword [ebp - 0x37], 0x787a94f2
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x33], 0xbcfba73d
mov dword [ebp - 0x2f], 0x21c30254
mov word [ebp - 0x2b], 0x8b7
movsw word es:[edi], word [esi]
mov byte [ebp - 0x29], 0xf1
movsb byte es:[edi], byte [esi]
jmp 0x40e368
sub al, 0x30
cmp al, 9
ja 0x40e3e1
inc ecx
mov al, byte [ecx]
test al, al
jne 0x40e35f
mov ebx, dword [0x44a304]
or ebx, 0x6b8ac93c
push ecx
mov edx, ebx
call fcn.0040cec2
and dword [ebp - 8], 0
add esp, 4
xor eax, eax
mov byte [ebp + eax - 0x178], al
inc eax
cmp eax, 0x100
jb 0x40e389
mov esi, dword [0x44a2b4]
xor edi, edi
mov dword [ebp - 0x10], 0x12
xor edx, edx
mov cl, byte [ebp + edi - 0x178]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x10]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x6c]
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov ecx, 0x401f6c
mov dword [ebp - 8], eax
mov al, 0x69
sub al, 0x30
cmp al, 9
ja 0x40e3ef
inc ecx
mov al, byte [ecx]
test al, al
jne 0x40e3d2
jmp 0x40e3fb
mov ebx, dword [0x44a304]
or ebx, 0x4ab49ffb
jmp 0x40e372
imul esi, esi, 0xd99af039
mov dword [0x44a2b4], esi
imul ebx, ebx, 0x1e248dee
push ecx
mov edx, ebx
call fcn.0040cec2
mov ecx, dword [ebp - 8]
add esp, 4
mov al, byte [ebp + ecx - 0x178]
mov byte [ebp + edi - 0x178], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x178], al
cmp edi, 0x100
jb 0x40e3a7
mov dword [ebp - 8], ebx
xor edi, edi
mov dword [ebp - 0x74], esi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x178]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x178]
mov byte [ebp + edi - 0x178], al
mov byte [ebp + ebx - 0x178], cl
movzx eax, byte [ebp + edi - 0x178]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x178]
xor al, byte [ebp + esi - 0x54]
mov byte [ebp + esi - 0x1a8], al
inc esi
cmp esi, 0x2c
jb 0x40e440
push 5
and dword [ebp - 0x10], 0
lea edi, [ebp - 0x28]
mov ebx, dword [ebp - 8]
mov esi, 0x401be4
pop ecx
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x17c], 0
xor eax, eax
mov dword [ebp - 0x60], 0xf0328bd5
mov word [ebp - 0x5c], 0xdc21
movsw word es:[edi], word [esi]
mov byte [ebp + eax - 0x178], al
inc eax
cmp eax, 0x100
jb 0x40e4bc
mov esi, dword [ebp - 0x74]
xor edi, edi
mov al, byte [0x44a274]
mov ecx, 0x44a274
jmp 0x40e4e5
sub al, 0x30
cmp al, 9
ja 0x40e4eb
inc ecx
mov al, byte [ecx]
test al, al
jne 0x40e4dc
jmp 0x40e4f9
mov esi, ebx
or esi, 0xbc96f685
mov dword [0x44a2b4], esi
mov eax, esi
mov bl, byte [ebp + edi - 0x178]
xor eax, 0xfc5c604d
xor edx, edx
mov dword [ebp - 8], eax
mov dword [0x44a304], eax
mov eax, edi
push 0x15
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x28]
add eax, dword [ebp - 0x10]
add ecx, eax
movzx edx, cl
mov dword [ebp - 0x10], edx
mov al, byte [ebp + edx - 0x178]
mov byte [ebp + edi - 0x178], al
inc edi
mov byte [ebp + edx - 0x178], bl
mov ebx, dword [ebp - 8]
cmp edi, 0x100
jb 0x40e4d0
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x178]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x178]
mov byte [ebp + edi - 0x178], al
mov byte [ebp + ebx - 0x178], cl
movzx eax, byte [ebp + edi - 0x178]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x178]
xor al, byte [ebp + esi - 0x60]
mov byte [ebp + esi - 0x10], al
inc esi
cmp esi, 6
jb 0x40e552
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x10]
add eax, eax
mov byte [ebp - 0xa], 0
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0x78]
push 2
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x1a8]
call fcn.0041d4c4
call eax
test eax, eax
jne 0x40e731
push 0x12
pop eax
push 6
pop ecx
mov esi, 0x401bfc
mov byte [ebp - 0x21], al
lea edi, [ebp - 0x70]
mov dword [ebp - 0x28], 0xe77fbee0
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov word [ebp - 0x24], 0x253d
mov byte [ebp - 0x22], 0x7b
xor eax, eax
mov dword [ebp - 0x20], 0xb9c33520
mov dword [ebp - 0x1c], 0xa9bd5a41
mov dword [ebp - 0x18], 0xa9902352
mov dword [ebp - 0x14], 0x16950e02
mov byte [ebp + eax - 0x178], al
inc eax
cmp eax, 0x100
jb 0x40e617
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x178]
push 0x17
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x70]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x178]
mov byte [ebp + esi - 0x178], al
inc esi
mov byte [ebp + edi - 0x178], bl
cmp esi, 0x100
jb 0x40e628
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x178]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x178]
mov byte [ebp + edi - 0x178], al
mov byte [ebp + ebx - 0x178], cl
movzx eax, byte [ebp + edi - 0x178]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x178]
xor al, byte [ebp + esi - 0x28]
mov byte [ebp + esi - 0x44], al
inc esi
cmp esi, 0x18
jb 0x40e66b
mov dword [ebp - 0x68], 0x13
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x64], 0x3e
mov dword [ebp - 0x60], 0x39
mov dword [ebp - 0x5c], 0xffffff3f
movups xmm1, xmmword [ebp - 0x68]
mov byte [ebp - 0x2c], 0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd edi, xmm1
add edi, 0x37
call fcn.0043430e
mov esi, eax
mov ecx, esi
call fcn.004348f7
add eax, eax
push eax
push esi
push dword [ebp - 0x78]
call fcn.004341ae
mov ecx, esi
call fcn.004348f7
push eax
push edi
push esi
call fcn.0043423a
add esp, 0x18
mov ecx, esi
call fcn.0041d467
pop edi
pop esi
pop ebx
leave
ret