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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
push ebx
push esi
push edi
xor edi, edi
mov esi, 0x4a90
lea ebx, [edi + 0x3d]
mov dword [ebp - 0x48], 0x21a4
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], 0x1d07
mov dword [ebp - 0x78], 0xad
mov dword [ebp - 8], 0x78ad
mov dword [ebp - 0x70], 0x57c3
mov dword [ebp - 0x80], 0x1911
mov dword [ebp - 4], 0x72ec
mov dword [ebp - 0x24], 0xff1
mov dword [ebp - 0x40], 0x7158
mov dword [ebp - 0x28], 0x422a
mov dword [ebp - 0x2c], 0x4bb3
mov dword [ebp - 0x3c], 0x244f
mov dword [ebp - 0x44], 0x2191
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x38], 0x4ba9
mov edi, edi
inc edi
mov eax, 0x2aaaaaab
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, edi
sub eax, ecx
jne 0x401c2d
add edi, 2
cmp edi, 0x5bfb
jl 0x401c10
cmp dword [ebp + 8], 0
je 0x402190
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x402190
mov eax, dword [ebp + 0x10]
lea edi, [eax + 0x134]
mov eax, dword [eax + 0x1b4]
xor eax, dword [edi]
cmp ecx, eax
jl 0x402190
call fcn.00403140
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov dword [ecx + 0x23c], eax
mov eax, dword [edi]
xor dword [ecx + 8], eax
mov esi, dword [ecx + 8]
mov eax, dword [ebp + 0xc]
div esi
mov dword [ecx + 0xf4], edi
mov edi, dword [ebp + 0x10]
mov edx, 0xe5
mov ecx, eax
mov dword [edi + 0xa4], ecx
mov eax, 0x687b
jmp 0x401ca0
cmp ebx, edx
cmovl ebx, edx
dec eax
jne 0x401ca0
imul ecx, esi
xor esi, esi
mov dword [edi + 0x294], ecx
test ecx, ecx
je 0x401d07
mov ebx, dword [ebp + 8]
lea ebx, [ebx]
mov eax, dword [edi + 0xf4]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0xf4]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0xf4]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0xf4]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x294]
jb 0x401cc0
mov eax, dword [edi + 8]
xor esi, esi
dec eax
je 0x401de2
mov eax, dword [edi + 8]
dec eax
push eax
push 1
push edi
call fcn.00402f50
mov ecx, dword [ebp - 0x48]
add esp, 0xc
mov bl, al
test ecx, ecx
je 0x401d46
lea esp, [esp]
mov eax, 0x151d07eb
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401d30
mov dword [ebp - 0x48], ecx
xor eax, eax
jmp 0x401d50
cmp bl, byte [edi + eax + 0x2a8]
je 0x401d60
inc eax
cmp eax, esi
jbe 0x401d50
jmp 0x401d62
xor bl, bl
mov eax, dword [ebp - 0x30]
inc eax
cmp eax, 5
jl 0x401d65
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
test ecx, ecx
je 0x401d8d
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401d75
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x78]
mov eax, 0x4d50
mov edx, 0x63
lea ebx, [ebx]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401da0
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x401dca
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401db2
mov dword [ebp - 8], ecx
test bl, bl
je 0x401dd6
mov byte [edi + esi + 0x2a8], bl
inc esi
mov eax, dword [edi + 8]
dec eax
cmp esi, eax
jb 0x401d13
xorps xmm0, xmm0
mov dword [ebp - 0x6c], 0xea96f12f
mov dword [ebp - 0x68], 0xeaeaeaea
mov dword [ebp - 0x64], 0xb9279ff1
movq qword [ebp - 0x60], xmm0
movq qword [ebp - 0x58], xmm0
mov byte [ebp - 0x50], 0
mov dword [ebp - 0x20], 0xbbea14a8
mov dword [ebp - 0x1c], 0xba896c04
mov dword [ebp - 0x18], 0x9e7855a5
mov dword [ebp - 0x14], 0xb7d24716
mov dword [ebp - 0x10], 0x8853b389
mov dword [ebp - 0xc], 0
mov eax, 0x3ca8
mov edx, 0x2e
mov ecx, 0x6a
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401e41
movq xmm0, qword [ebp - 0x20]
add edi, 0x1f4
mov dword [ebp - 8], edi
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x18]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x10]
movq qword [edi + 0x10], xmm0
mov eax, 0x164e
mov edx, 0x5a
mov ecx, 0xb5
mov edi, edi
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x401e80
jmp 0x401e90
xor byte [ebp + eax - 0x6c], 0x7a
inc eax
cmp eax, 0xc
jb 0x401e90
jmp 0x401ea0
mov eax, 0x66666667
imul dword [ebp - 0x70]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x70], eax
jne 0x401ea0
jmp 0x401ec0
mov eax, 0x1b4e81b5
imul dword [ebp - 0x80]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x80], eax
jne 0x401ec0
mov ecx, 0xc3c
lea esp, [esp]
mov eax, 0xb81702e1
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ee0
mov eax, 0x151d07eb
imul dword [ebp - 4]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
jne 0x401ef5
mov esi, dword [ebp + 0x10]
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [esi + 8], ebx
jbe 0x4020e4
lea ecx, [ecx]
movzx edi, byte [ebx + esi + 0x2a8]
imul edi, dword [esi + 0xa4]
mov ecx, dword [ebp - 0x24]
add edi, dword [ebp + 8]
test ecx, ecx
je 0x401f58
lea esp, [esp]
mov eax, 0x964fda6d
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f40
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x401f78
nop
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f60
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x28]
mov dword [esi + 0x3ac], edi
test ecx, ecx
je 0x401f9b
mov eax, 0x22b63cbf
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f85
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x401fba
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401fa2
mov dword [ebp - 0x2c], ecx
movq xmm0, qword [edi]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x64]
movq qword [ebp - 0x84], xmm0
movq xmm0, qword [edi + 8]
movq qword [ebp - 0x74], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x7c], xmm0
movq xmm0, qword [ebp - 0x6c]
movq qword [edi], xmm0
mov dword [edi + 8], eax
test ecx, ecx
je 0x402008
mov eax, 0xa57eb503
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ff0
mov dword [ebp - 0x3c], ecx
mov eax, dword [esi + 0x3ac]
call eax
movq xmm0, qword [ebp - 0x84]
mov eax, dword [ebp + 0x10]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x74]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x7c]
xor esi, esi
movq qword [edi + 0x10], xmm0
cmp dword [eax + 0xa4], esi
jbe 0x40208a
mov ebx, eax
nop
mov eax, dword [ebx + 0xf4]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0xf4]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0xf4]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0xf4]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0xa4]
jb 0x402040
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x4020a9
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402091
mov dword [ebp - 0x44], ecx
mov esi, dword [ebp - 0x4c]
cmp esi, 0xaa7
jge 0x4020d1
mov ecx, 0xaa6
sub ecx, esi
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea esi, [esi + eax*2]
add esi, 0xa
mov dword [ebp - 0x4c], esi
mov esi, dword [ebp + 0x10]
inc ebx
mov dword [ebp - 4], ebx
cmp ebx, dword [esi + 8]
jb 0x401f20
mov edi, dword [ebp - 8]
call fcn.00403140
lea ecx, [eax - 2]
push ecx
push dword [esi + 0x23c]
mov dword [esi + 0x10], eax
call fcn.004010e0
push 0xa7b128
push edi
call fcn.00401a50
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 0x10
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x402138
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.00402e20
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x402120
mov eax, 0x7b97
mov edx, 0xba
mov ecx, 0x5a
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402147
mov eax, 0x623d
mov edx, 0x77
mov ecx, 0xe0
mov edi, edi
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402160
jmp 0x402170
mov eax, 0x17ad2209
imul dword [ebp - 0x38]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x38], eax
jne 0x402170
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xaf3addc7
imul esi
add edx, esi
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402190
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret