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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e8
push ebx
push esi
push edi
push ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], 0x57567a29
mov dword [ebp - 0x68], 0x50ef0170
mov dword [ebp - 0x64], 0x56a10c2a
mov dword [ebp - 0x60], 0xb74c6908
mov dword [ebp - 0x5c], 0xdf460eb6
mov dword [ebp - 0x58], 0xa3e55c27
mov dword [ebp - 0x54], 0x18771cb3
mov dword [ebp - 0x50], 0xb345c9eb
mov dword [ebp - 0x4c], 0x7cadc2b4
mov dword [ebp - 0x48], 0x2157fd44
mov dword [ebp - 0x44], 0xb6433fc2
mov dword [ebp - 0x40], 0x9ce9a2e8
mov dword [ebp - 0x3c], 0x192f4aa9
mov dword [ebp - 0x38], 0x5b3e61b6
mov dword [ebp - 0x34], 0xbbfccf3e
mov dword [ebp - 0x30], 0xb64361df
mov byte [ebp - 0x2c], 0x87
call fcn.004082d5
mov ebx, dword [0x4341d0]
xor eax, eax
pop ecx
mov esi, eax
add ebx, 0x19a9a639
inc esi
cmp word [esi*2 + 0x42db10], ax
jne 0x408556
mov edi, 0x42d8f0
mov ecx, edi
call fcn.004075bc
cmp esi, 0x124c
jae 0x408583
xor ebx, 0x5fd5d4b9
jmp 0x408598
push 0x434218
mov edx, edi
mov ecx, edi
call fcn.0040815b
pop ecx
add ebx, 0x7d851795
push 5
pop ecx
mov esi, 0x42d740
lea edi, [ebp - 0x88]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor esi, esi
mov edi, ebx
push ecx
mov edx, 0x434218
mov ecx, ebx
call fcn.00408029
imul ebx, edi, 0x51ed8ca3
xor eax, eax
inc esi
pop ecx
mov edi, ebx
cmp word [esi*2 + 0x42dcf0], ax
jne 0x4085ae
push 0x434218
push ecx
mov edx, ebx
call fcn.00407992
pop ecx
pop ecx
cmp esi, 0x43
jae 0x4085fe
and ebx, 0x514ea0b7
mov dword [0x4341d0], ebx
call fcn.00407d6d
mov edi, dword [0x4341d0]
jmp 0x408604
lea edi, [ebx - 0x7017e6a8]
xor ecx, ecx
mov dword [ebp - 0x10], edi
mov eax, ecx
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, 0x100
jb 0x40860b
mov esi, ecx
mov edi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1a4]
push 0x15
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
inc esi
mov byte [ebp + edi - 0x1a4], bl
cmp esi, 0x100
jb 0x40861e
mov edi, dword [ebp - 0x10]
xor eax, eax
mov dword [ebp - 4], eax
mov ebx, eax
mov esi, eax
lea eax, [ebx + 1]
or edi, 0x4d6caf9b
movzx ebx, al
mov eax, dword [ebp - 4]
mov cl, byte [ebp + ebx - 0x1a4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 4], eax
mov al, byte [ebp + eax - 0x1a4]
mov byte [ebp + ebx - 0x1a4], al
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x1a4], cl
movzx eax, byte [ebp + ebx - 0x1a4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + esi - 0x6c]
mov byte [ebp + esi - 0x1e8], al
inc esi
cmp esi, 0x41
jb 0x40866a
xor eax, eax
mov dword [ebp - 0x28], 0x67ced5c7
lea ebx, [edi + 0x3d6b2f0c]
mov byte [ebp - 0x1a7], al
and ebx, 0x80397b7f
mov dword [ebp - 0x24], 0xc74edc64
mov dword [ebp - 0x20], 0xfc6c5343
mov dword [ebp - 0x1c], 0xda4e75e6
mov dword [ebp - 0x18], 0x6f4ede2f
mov dword [ebp - 0x14], 0x44651289
mov dword [ebp - 0x7c], 0x73657268
mov dword [ebp - 0x78], 0x746c75
mov dword [ebp - 0x10], eax
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, 0x100
jb 0x408717
call fcn.004072b2
xor edi, edi
mov esi, edi
call fcn.00407448
and ebx, 0xf1a426ee
inc esi
cmp word [esi*2 + 0x42dcf0], di
jne 0x40872f
mov edi, dword [ebp - 8]
mov dword [ebp - 4], ebx
cmp edi, esi
jae 0x40877c
mov eax, ebx
cmp edi, 0x15e5
jne 0x408761
mov ebx, eax
xor ebx, 0x8cd1d64e
lea eax, [ebx - 0x26645001]
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
call fcn.00407aff
mov eax, dword [ebp - 8]
inc edi
mov ebx, eax
cmp edi, esi
jb 0x408751
xor eax, eax
mov esi, eax
xor edx, edx
mov bl, byte [ebp + esi - 0x1a4]
push 7
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x7c]
add eax, dword [ebp - 0x10]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x10], ecx
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
inc esi
mov byte [ebp + ecx - 0x1a4], bl
cmp esi, 0x100
jb 0x408780
mov edx, dword [ebp - 4]
lea edi, [ebp - 0x80]
mov esi, 0x42c4bc
xor eax, eax
mov ecx, eax
mov ebx, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, eax
lea eax, [esi + 1]
movzx esi, al
mov al, byte [ebp + esi - 0x1a4]
movzx edi, al
mov byte [ebp - 9], al
lea eax, [edi + ecx]
movzx eax, al
mov dword [ebp - 8], eax
xor eax, eax
mov ecx, eax
mov al, byte [0x434218]
cmp al, byte [ebp - 0x80]
jne 0x40881b
test al, al
je 0x40881b
cmp byte [ebp + ecx - 0x80], 0
je 0x40881b
mov al, byte [ecx + 0x434219]
inc ecx
cmp al, byte [ebp + ecx - 0x80]
je 0x408803
movzx eax, byte [ebp + ecx - 0x80]
movzx ecx, byte [ecx + 0x434218]
sub ecx, eax
cmp ecx, 0x1fa6
jne 0x408846
mov ecx, 0x42db10
call fcn.004075bc
mov edx, dword [ebp - 4]
or edx, 0x463e9538
jmp 0x40884c
add edx, 0x2ba4f4b0
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], edx
mov dword [0x4341d0], edx
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
mov al, byte [ebp - 9]
mov byte [ebp + ecx - 0x1a4], al
movzx eax, byte [ebp + esi - 0x1a4]
add eax, edi
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + ebx - 0x28]
mov byte [ebp + ebx - 0xa4], al
inc ebx
cmp ebx, 0x18
jb 0x4087d9
mov ecx, dword [ebp - 0x70]
xor eax, eax
inc ecx
mov byte [ebp - 0x8c], al
call fcn.0040a2a8
mov ecx, 0x104
mov edi, eax
call fcn.0040a2a8
mov ebx, eax
lea edx, [ebp - 0x1e8]
mov ecx, ebx
call fcn.0040b905
mov ecx, ebx
call fcn.0040b8e6
xor ecx, ecx
lea edx, [ebp - 0xa4]
sub eax, 2
inc ecx
mov dword [ebp - 0x10], eax
call fcn.0040a2e6
call eax
mov ecx, dword [ebp - 0x70]
add eax, ecx
mov dword [ebp - 8], eax
xor eax, eax
mov esi, eax
test ecx, ecx
je 0x40890f
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 8]
push eax
call fcn.0040b68e
pop ecx
mov ecx, dword [ebp - 0x70]
mov al, byte [eax + ebx]
mov byte [esi + edi], al
inc esi
cmp esi, ecx
jb 0x4088f2
xor eax, eax
mov byte [edi + ecx + 1], al
mov ecx, ebx
call fcn.0040a2d2
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret