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

Disassembly:
add byte [ebx - 0x7a2f080e], cl
div byte [ebp - 0x73]
movsb byte es:[edi], byte [esi]
and al, 0
add byte [ecx + 0x3c10000], al
je 0x403727
add cl, al
add esi, dword [ecx + ebx + 0xf]
mov dh, 0x11
movzx edx, byte [ecx]
xor edx, eax
and edx, 0xb00ff
add al, ch
or byte [ebx], dh
add al, 0x95
or byte [ebx + ebx*4], dh
add byte [ecx + 0x4e], al
jne 0x403709
mov esp, 0x20fe0000
jb 0x40393d
mov edi, esi
shr edi, 5
movsd dword es:[edi], dword [esi]
add byte [eax], al
add dword [ebx + 0x10eac1d0], ecx
mov ebx, eax
shr ebx, 8
and ebx, 0x3c
and edx, 0xff
mov edx, dword [edx*4 + 0x689b3808]
add byte [eax], al
popfd
or byte [ebx + ebx*4], bh
add byte [ebx + 0x18ebc1d8], cl
xor edx, dword [ebx*4 + 0x7a]
and eax, 0xff
xor edx, dword [eax*4 + 0x9b4008]
fiadd word [eax]
add byte [ebx + 0x10e8c1c2], cl
and eax, 0xff
mov eax, dword [eax*4 + 0x23]
mov ebx, edx
shr ebx, 8
and ebx, 0xff
xor edx, dword [eax]
add byte [ebx + ebx*4], bh
add byte [ebx + 0x18ebc1da], cl
xor eax, dword [ebx*4 + 0xf73408]
add dl, ah
inc dword [eax]
add byte [eax], al
xor eax, dword [edx*4 + 0x9b4008]
xor esp, dword [edi]
add al, dl
shr edx, 0x10
mov ebx, eax
shr ebx, 8
and ebx, 0xc000ff
add dl, ah
inc dword [eax]
add byte [eax], al
mov edx, dword [edx*4 + 0x9b3808]
xor esp, dword [0x9b3c0000]
add byte [ebx + 0x18ebc1d8], cl
xor edx, dword [ebx*4 + 0xb13408]
add bh, bh
add byte [eax], al
add byte [ebx], dh
adc al, 0x85
or byte [eax - 0x65], al
add byte [ebx], dh
push ecx
push edx
add byte [eax], al
shr eax, 0x10
and eax, 0xff
mov eax, dword [eax*4 + 0x1a3808]
add dl, bl
shr ebx, 8
and ebx, 0xff
xor eax, dword [ebx*4 + 3]
mov ebx, edx
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x9b3408]
outsb dx, byte [esi]
add byte [eax], al
add byte [eax], al
add byte [ebx], dh
add al, 0x95
or byte [eax - 0x65], al
add byte [ebx], dh
inc ecx
adc byte [ebp + 0x10ea0000], ah
mov ebx, eax
shr ebx, 8
and edx, 0xff
dec eax
add byte [eax], al
or byte [eax], bh
wait
add byte [ecx + 0xffe3], al
add byte [ebx], dh
adc al, 0x9d
pushal
add byte [eax], al
add byte [ebx + 0x18ebc1d8], cl
xor edx, dword [ebx*4 + 0x9b3408]
push edi
add byte [eax], al
add byte [eax], al
xor edx, dword [eax*4 + 0x9b4008]
xor edx, dword [ecx + 0x14]
mov ebp, dword [edi]
add byte [eax], al
adc byte [0xff], ah
mov eax, dword [eax*4 + 0x9b3808]
mov al, byte [0x8eb0000]
and ebx, 0xff
xor eax, dword [ebx*4 + 0xcf3c08]
add dl, bl
shr ebx, 0x18
xor eax, dword [ebx*4 + 0x9b3408]
and edx, 0x93
xor eax, dword [edx*4 + 0x9b4008]
add ecx, 0x20
xor eax, dword [ecx - 0x22]
add byte [eax], al
and byte [ebx - 0x3e277430], cl
ljmp 0xe281
cmp esi, 4
jb 0x403992
mov edx, esi
shr edx, 2
dec eax
add byte [eax], al
add dword [ebx - 0x774fb3f], eax
add byte [ecx], al
add ecx, 4
mov edi, eax
shr edi, 0x10
and edi, 0x6800ff
add byte [edi*4 + 0x9b3808], bh
mov ebx, eax
shr ebx, 8
and ebx, 0x8d
xor edi, dword [ebx*4 + 0x9b3c08]
mov ebx, eax
shr ebx, 0x18
fiadd word [eax]
add byte [eax], cl
xor al, 0x9b
add byte [0xff], ah
xor edi, dword [eax*4 + 0x6b08]
sub esi, 4
dec edx
mov eax, edi
jne 0x403949
pop edi
pop ebx
test esi, esi
je 0x4039e6
add byte [eax], al
mov dh, 0x11
xor edx, eax
and edx, 0xff
add byte [esi - 0x7e2fccef], dh
loop 0x4039a0
inc dword [eax]
add byte [eax], al
add byte [eax], al
add cl, al
call fcn.004098b2
shr eax, 8
pop edi
add byte [eax], al
or byte [ebx + ebx*4], dh
add byte [ecx + 0x4e], al
jne 0x403999
not eax
pop esi
ret
add byte [ebx + 0xc4d8bec], cl
test ecx, ecx
jne 0x4039c7
xor eax, eax
pop ebp
ret
dec ebx
add byte [eax], al
mov eax, dword [ebp + 8]
pop ebp
jmp 0x4036f9
rcr byte [esi], 0
inc eax
or al, 0x85
sal byte [esp + edx + 0x5e], 0x89
push esp
and al, 8
jmp eax