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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
push ebx
xor eax, eax
push esi
push edi
mov ebx, 0x68c8
mov ecx, 0x22f0
mov esi, 0x5e66
mov dword [ebp - 8], eax
mov dword [ebp - 0x10], 0x5c89
mov dword [ebp - 0x14], 0x228b
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 0x6417
mov dword [ebp - 0x24], 0x79b6
mov dword [ebp - 0x28], 0x4e52
mov edi, 0x1aef
mov edi, edi
mov eax, 0x4ec4ec4f
imul edi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401dc0
mov eax, 0x99d722db
imul ebx
add edx, ebx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401dd3
cmp dword [ebp + 8], edi
je 0x402430
cmp dword [ebp + 0xc], edi
je 0x402430
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 0x2f8]
xor eax, dword [ebx + 0x304]
lea edx, [ebx + 0x304]
mov dword [ebp - 0x2c], edx
cmp dword [ebp + 0xc], eax
jl 0x402430
call fcn.00403440
mov dword [ebx + 0x138], eax
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, edi
sub eax, ecx
jne 0x401e4d
add edi, 3
jmp 0x401e4e
inc edi
cmp edi, 0x5385
jl 0x401e26
mov ebx, 0x6629
jmp 0x401e60
mov eax, 0x2aaaaaab
imul ebx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e60
mov eax, dword [ebp - 0x2c]
mov ebx, dword [ebp + 0x10]
mov eax, dword [eax]
xor dword [ebx + 0x108], eax
mov edi, dword [ebx + 0x108]
xor esi, esi
lea esp, [esp]
inc esi
mov eax, 0x38e38e39
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x401ead
add esi, 2
cmp esi, 0x7674
jl 0x401e90
lea eax, [ebx + 0x304]
mov dword [ebx + 0x2f0], eax
xor esi, esi
inc esi
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, esi
sub eax, ecx
jne 0x401ede
inc esi
cmp esi, 0x780a
jl 0x401ec3
mov eax, dword [ebp + 0xc]
xor edx, edx
div edi
xor esi, esi
imul edi, eax
mov dword [ebx + 0x2f4], eax
mov dword [ebx + 0x2b8], edi
test edi, edi
je 0x401f4c
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 0x2f0]
inc esi
mov al, byte [eax]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x2f0]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x2f0]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x2f0]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x2b8]
jb 0x401f05
mov eax, 0x373d
mov edx, 0xf0
mov ecx, 0xa8
jmp 0x401f60
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401f60
mov eax, dword [ebx + 0x108]
xor esi, esi
dec eax
je 0x402001
mov eax, dword [ebx + 0x108]
dec eax
push eax
push 1
push ebx
call fcn.004032c0
mov cl, al
mov eax, dword [ebp - 8]
add esp, 0xc
mov byte [ebp - 1], cl
cmp eax, 0x47cd
jge 0x401fba
mov ecx, 0x47cc
sub ecx, eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [ebp - 8]
mov cl, byte [ebp - 1]
shr edx, 1
add eax, edx
lea eax, [eax + edx*2]
add eax, 3
mov dword [ebp - 8], eax
mov edi, dword [ebp - 0x10]
test edi, edi
je 0x401fd7
mov eax, 0x30c30c31
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401fc1
mov dword [ebp - 0x10], edi
xor eax, eax
lea esp, [esp]
cmp cl, byte [eax + ebx]
je 0x401ff2
inc eax
cmp eax, esi
jbe 0x401fe0
test cl, cl
je 0x401ff2
mov byte [esi + ebx], cl
inc esi
mov eax, dword [ebx + 0x108]
dec eax
cmp esi, eax
jb 0x401f77
xorps xmm0, xmm0
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 0x7c], 0
movq qword [ebp - 0x7b], xmm0
movq qword [ebp - 0x73], xmm0
movq qword [ebp - 0x6b], xmm0
movq qword [ebp - 0x63], xmm0
mov dword [ebp - 0x5b], 0
mov byte [ebp - 0x57], 0
call fcn.00402950
add esp, 4
mov eax, 0x123d
mov edx, 0x42
mov ecx, 0xd4
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402042
xor esi, esi
lea esp, [esp]
inc esi
mov eax, 0x66666667
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x40206d
add esi, 2
cmp esi, 0x6753
jl 0x402050
mov ebx, 0x2adf
lea ebx, [ebx]
mov eax, 0x43b3d5b
imul ebx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402080
mov eax, 0xa21
mov edx, 0x8a
mov ecx, 0xe8
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4020a2
mov dword [ebp - 0x48], 0x71f359e5
mov dword [ebp - 0x44], 0x88620666
mov dword [ebp - 0x40], 0x4e74763b
mov dword [ebp - 0x3c], 0xe4b3611
mov dword [ebp - 0x38], 0x1820d979
mov dword [ebp - 0x34], eax
mov ebx, 0x2031
mov eax, 0x2e8ba2e9
imul ebx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x4020d5
mov ebx, dword [ebp + 0x10]
movq xmm0, qword [ebp - 0x48]
movq qword [ebx + 0x1bc], xmm0
movq xmm0, qword [ebp - 0x40]
movq qword [ebx + 0x1c4], xmm0
movq xmm0, qword [ebp - 0x38]
movq qword [ebx + 0x1cc], xmm0
mov byte [ebx + 0x1d4], 0
xor eax, eax
jmp 0x402120
xor byte [ebp + eax - 0x7c], 0x85
inc eax
cmp eax, 0x24
jb 0x402120
mov ebx, 0x7700
mov eax, 0x22b63cbf
imul ebx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402130
mov ebx, dword [ebp + 0x10]
mov eax, 0xccf
mov edx, 0x27
mov ecx, 0x3b
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402155
mov dword [ebp - 0x10], eax
cmp dword [ebx + 0x108], eax
jbe 0x40230e
lea esp, [esp]
movzx edi, byte [eax + ebx]
imul edi, dword [ebx + 0x2f4]
mov ecx, dword [ebp - 0x14]
add edi, dword [ebp + 8]
test ecx, ecx
je 0x40219b
mov eax, 0x3e0f83e1
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402185
mov dword [ebp - 0x14], ecx
mov esi, dword [ebp - 0xc]
cmp esi, 0x7ea4
jge 0x4021cc
inc esi
mov eax, 0x2aaaaaab
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, esi
sub eax, ecx
jne 0x4021c1
inc esi
cmp esi, 0x7ea4
jl 0x4021a6
mov dword [ebp - 0xc], esi
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x2e0], edi
inc eax
cmp eax, 0x1a55
jl 0x4021d5
xorps xmm0, xmm0
push 0x25
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x54]
push edi
push eax
mov byte [ebp - 0x54], 0
movq qword [ebp - 0x53], xmm0
movq qword [ebp - 0x4b], xmm0
movq qword [ebp - 0x43], xmm0
movq qword [ebp - 0x3b], xmm0
mov dword [ebp - 0x33], 0
mov byte [ebp - 0x2f], 0
call fcn.00403140
movq xmm0, qword [ebp - 0x7c]
mov eax, dword [ebp - 0x1c]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x74]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x6c]
add esp, 0xc
cmp eax, 0x4b5e
movq qword [edi + 0x10], xmm0
movq xmm0, qword [ebp - 0x64]
mov ecx, 0x4b5e
cmovl eax, ecx
mov ecx, dword [ebp - 0x20]
movq qword [edi + 0x18], xmm0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x5c]
mov dword [edi + 0x20], eax
test ecx, ecx
je 0x402276
lea esp, [esp]
mov eax, 0x78787879
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402260
mov dword [ebp - 0x20], ecx
mov eax, dword [ebx + 0x2e0]
call eax
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x40229b
mov eax, 0x473c1ab7
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402285
mov dword [ebp - 0x24], ecx
push 0x25
lea eax, [ebp - 0x54]
push eax
push edi
call fcn.00403140
xor esi, esi
add esp, 0xc
cmp dword [ebx + 0x2f4], esi
jbe 0x4022fb
mov eax, dword [ebx + 0x2f0]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x2f0]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x2f0]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x2f0]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x2f4]
jb 0x4022b4
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebx + 0x108]
jb 0x402170
mov ebx, 0x5f9b
mov eax, 0x38e38e39
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402313
mov ebx, dword [ebp + 0x10]
mov edi, 0x3caf
mov edi, edi
mov eax, 0x5397829d
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402330
call fcn.00403440
mov dword [ebx + 0x1e0], eax
mov ecx, 0x3cd4
mov esi, 7
lea edi, [ebx + 0x1bc]
mov edx, 0x87
cmp edx, esi
cmovl edx, esi
dec ecx
jne 0x402363
lea ecx, [eax - 2]
push ecx
push dword [ebx + 0x138]
call fcn.004010b0
push 0x11519a21
push edi
call fcn.00401c90
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 0x10
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x4023b8
mov ebx, dword [ebp + 8]
nop
push edi
push 0x100
push ebx
call fcn.004031a0
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x4023a0
mov eax, 0x4ec7
mov edx, 0x1c
mov ecx, 0x64
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x4023c7
nop
mov eax, 0x60f25deb
imul dword [ebp - 0x28]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x28], eax
jne 0x4023d0
mov ecx, 0x6356
lea esp, [esp]
mov eax, 0x8c08c08d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023f0
mov ecx, 0x308c
lea ebx, [ebx]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402410
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xa57eb503
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402430
mov eax, 0x5254e78f
imul esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402445
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret