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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec
push ebx
xor eax, eax
push esi
mov esi, 0x6f
push edi
mov ecx, 0x3e7e
mov ebx, 0x6cc1
lea edi, [esi + 0x70]
mov dword [ebp - 0x40], 0x766f
mov dword [ebp - 0x48], 0x7c20
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x5c], 0x351e
mov dword [ebp - 0x64], 0x6190
mov dword [ebp - 0x6c], 0x691d
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x58], 0x2f8
mov dword [ebp - 4], 0xf5a
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x60], 0x1d40
mov dword [ebp - 0x50], 0x303e
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], 0x4829
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x4c], 0x4fb9
mov dword [ebp - 0x54], 0x71ea
cmp dword [ebp + 8], eax
je 0x4022f3
cmp dword [ebp + 0xc], eax
je 0x4022f3
mov eax, dword [ebp + 0x10]
lea edx, [eax + 0x260]
mov eax, dword [eax + 0x98]
xor eax, dword [edx]
cmp dword [ebp + 0xc], eax
jl 0x4022f3
mov eax, 0xd20d20d3
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401cf4
call fcn.00403320
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x28], 0xa
lea ecx, [edx + 0x260]
mov dword [edx + 0x1e4], eax
mov eax, dword [ecx]
xor dword [edx + 0x374], eax
mov eax, 0x1d41
cmp esi, 0xa
cmovg esi, dword [ebp - 0x28]
dec eax
jne 0x401d31
mov dword [edx + 0x378], ecx
mov eax, 0x6f74ae27
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401d41
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebx + 0x374]
xor edx, edx
div ecx
xor esi, esi
mov dword [ebx + 0x1a4], eax
imul eax, ecx
mov dword [ebx + 0x364], eax
test eax, eax
je 0x401dcc
mov edi, dword [ebp + 8]
lea esp, [esp]
mov eax, dword [ebx + 0x378]
inc esi
mov al, byte [eax]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x378]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x378]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x378]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x364]
jb 0x401d80
mov edi, 0xdf
mov eax, 0x6074
mov ecx, 0x13
cmp edi, ecx
cmovl edi, ecx
dec eax
jne 0x401dd6
mov edi, edi
mov eax, 0x473c1ab7
imul dword [ebp - 0x40]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
jne 0x401de0
mov edi, ebx
xor esi, esi
mov eax, dword [edi + 0x374]
dec eax
je 0x401f15
mov eax, dword [edi + 0x374]
dec eax
push eax
push 1
push edi
call fcn.00403190
mov ecx, dword [ebp - 0x48]
add esp, 0xc
mov bl, al
test ecx, ecx
je 0x401e3c
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e24
mov dword [ebp - 0x48], ecx
xor eax, eax
mov edi, edi
cmp bl, byte [edi + eax + 0x9c]
je 0x401e50
inc eax
cmp eax, esi
jbe 0x401e40
jmp 0x401e52
xor bl, bl
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x3eb6
jge 0x401e7f
lea ecx, [ecx]
inc ecx
mov eax, ecx
and eax, 0x80000001
jns 0x401e6f
dec eax
or eax, 0xfffffffe
inc eax
jne 0x401e74
add ecx, 2
cmp ecx, 0x3eb6
jl 0x401e60
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x5c]
test ecx, ecx
je 0x401e9e
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401e86
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x401eaf
cdq
sub eax, edx
sar eax, 1
jne 0x401ea5
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x6c]
test eax, eax
je 0x401ec6
cdq
and edx, 7
add eax, edx
sar eax, 3
test eax, eax
jne 0x401eb6
mov dword [ebp - 0x6c], eax
test bl, bl
je 0x401ed2
mov byte [edi + esi + 0x9c], bl
inc esi
mov eax, dword [ebp - 0x38]
inc eax
cmp eax, 0x4c5b
jl 0x401ed5
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x38], eax
test ecx, ecx
je 0x401f06
jmp 0x401ef0
mov eax, 0x67b23a55
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ef0
mov dword [ebp - 0x58], ecx
mov eax, dword [edi + 0x374]
dec eax
cmp esi, eax
jb 0x401e08
push 0x3e
lea eax, [ebp - 0xab]
push 0
push eax
mov byte [ebp - 0xac], 0
call fcn.00403020
lea eax, [ebp - 0xac]
push eax
call fcn.00402a50
add edi, 0x218
mov dword [ebp - 0x1c], 0xd48d0107
mov dword [ebp - 0x18], 0xa93b0958
movq xmm0, qword [ebp - 0x1c]
movq qword [edi], xmm0
mov dword [ebp - 0x14], 0x331a28b8
mov dword [ebp - 0x10], 0x5ca040c3
movq xmm0, qword [ebp - 0x14]
mov dword [ebp - 0xc], 0x4266c6c7
mov eax, dword [ebp - 0xc]
xor ecx, ecx
movq qword [edi + 8], xmm0
mov dword [edi + 0x10], eax
add esp, 0x10
mov word [edi + 0x14], cx
mov dword [ebp - 0x28], edi
mov byte [edi + 0x16], cl
xor ebx, ebx
jmp 0x401f90
inc ebx
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, ebx
sub eax, ecx
jne 0x401fb4
inc ebx
cmp ebx, 0x4fc2
jl 0x401f90
xor eax, eax
mov edi, edi
xor byte [ebp + eax - 0xac], 0x25
inc eax
cmp eax, 0x3d
jb 0x401fc0
mov ecx, 0x174
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401fd3
jmp 0x401ff0
mov eax, 0x3e88cb3d
imul dword [ebp - 4]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
jne 0x401ff0
mov ebx, dword [ebp + 0x10]
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebx + 0x374], eax
jbe 0x402240
mov edi, ebx
lea ecx, [ecx]
movzx ebx, byte [eax + edi + 0x9c]
imul ebx, dword [edi + 0x1a4]
add ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x68]
mov dword [edi + 0x300], ebx
jmp 0x402040
inc eax
cmp eax, 0x2201
jl 0x402040
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x68], eax
cmp esi, 0x63cf
jge 0x402072
mov ecx, 0x63ce
sub ecx, esi
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + esi]
lea eax, [eax + edx*2]
add eax, 3
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x402096
lea esp, [esp]
mov eax, 0x3a196b1f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402080
mov dword [ebp - 0x60], ecx
push 0x3e
lea eax, [ebp - 0xeb]
push 0
push eax
mov byte [ebp - 0xec], 0
call fcn.00403020
mov ecx, dword [ebp - 0x50]
add esp, 0xc
test ecx, ecx
je 0x4020d6
jmp 0x4020c0
mov eax, 0x5397829d
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020c0
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x30]
cmp ecx, 0x6535
jge 0x4020f4
mov eax, 0x6534
sub eax, ecx
shr eax, 3
lea ecx, [ecx + eax*8]
add ecx, 8
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x7dc5
jge 0x40211d
nop
inc ecx
mov eax, ecx
and eax, 0x80000003
jns 0x40210f
dec eax
or eax, 0xfffffffc
inc eax
jne 0x402112
inc ecx
cmp ecx, 0x7dc5
jl 0x402100
mov dword [ebp - 0x24], ecx
push 0x3e
lea eax, [ebp - 0xec]
push ebx
push eax
call fcn.00402ff0
mov eax, dword [ebp - 0x34]
add esp, 0xc
inc eax
cmp eax, 0x1141
jl 0x402132
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x34], eax
test ecx, ecx
je 0x40215c
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402144
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x44]
cmp ecx, 0xce5
jge 0x40217a
mov eax, 0xce4
sub eax, ecx
shr eax, 2
lea ecx, [ecx + eax*4]
add ecx, 4
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x402199
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402181
mov dword [ebp - 0x4c], ecx
mov ecx, 0xf
lea esi, [ebp - 0xac]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x300]
call eax
push 0x3e
lea eax, [ebp - 0xec]
push eax
push ebx
call fcn.00402ff0
add esp, 0xc
mov eax, 0x5cf6
jmp 0x4021d0
dec eax
jne 0x4021d0
xor esi, esi
cmp dword [edi + 0x1a4], esi
jbe 0x402227
lea ecx, [ecx]
mov eax, dword [edi + 0x378]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x378]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x378]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x378]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x1a4]
jb 0x4021e0
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [edi + 0x374]
jb 0x402020
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp + 0x10]
mov eax, 0x17b1
mov edx, 0x2b
mov ecx, 0xf9
nop
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402250
call fcn.00403320
mov dword [ebx + 0x1f4], eax
add eax, 0xfffffffe
push eax
push dword [ebx + 0x1e4]
call fcn.004010f0
push 0xf73a94d
push edi
call fcn.00401ba0
add esp, 0x10
mov edi, 0x5b77
mov eax, 0x38e38e39
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402285
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea edi, [ebx + 0x218]
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x4022d0
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.00403050
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x4022b5
lea ecx, [ecx]
mov eax, 0x51eb851f
imul dword [ebp - 0x54]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x54], eax
jne 0x4022d0
mov eax, 0x11e4
lea esp, [esp]
dec eax
jne 0x4022f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret