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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
push ebx
xor eax, eax
push esi
mov esi, 8
mov ebx, 0x68ed
push edi
lea edi, [esi + 0x72]
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x64], 0x15dc
mov dword [ebp - 0x58], 0x23b5
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x34], 0x33cb
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x68], 0x52
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], 0x2f31
mov dword [ebp - 0x4c], 0xf0
mov dword [ebp - 8], eax
mov dword [ebp - 0x2c], 0x6930
mov dword [ebp - 0x54], 0x6aa3
mov dword [ebp - 0x30], 0x77bd
mov dword [ebp - 0x38], 0x1ed0
mov dword [ebp - 0x40], 0x26d6
mov dword [ebp - 0x48], 0x4f16
mov dword [ebp - 0x50], 0x6101
cmp dword [ebp + 8], eax
je 0x402367
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402367
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x120]
xor eax, dword [ecx]
cmp edx, eax
jl 0x402367
call fcn.00403530
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x6c], 0x92
lea ecx, [edx + 0x120]
mov dword [edx + 0xc8], eax
mov eax, dword [ecx]
xor dword [edx + 0x78], eax
mov eax, 0x4630
lea esp, [esp]
cmp esi, 0x92
cmovg esi, dword [ebp - 0x6c]
dec eax
jne 0x401ce0
mov eax, dword [ebp + 0xc]
mov dword [edx + 0x80], ecx
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov esi, dword [ecx + 0x78]
div esi
mov edx, 0x25
mov ecx, eax
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x29c], ecx
mov eax, 0x6188
cmp edi, edx
cmovg edi, edx
dec eax
jne 0x401d15
mov edi, dword [ebp + 0x10]
imul ecx, esi
xor esi, esi
mov dword [edi + 0x114], ecx
test ecx, ecx
je 0x401d79
mov ebx, dword [ebp + 8]
mov eax, dword [edi + 0x80]
inc esi
mov al, byte [eax]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x80]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x80]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x80]
mov al, byte [eax + 3]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x114]
jb 0x401d32
mov ebx, 0x35d7
mov edi, edi
mov eax, 0x19c2d14f
imul ebx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401d80
mov ebx, dword [ebp - 0x70]
mov eax, 0x8c08c08d
imul ebx
add edx, ebx
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401d96
mov eax, dword [edi + 0x78]
xor esi, esi
dec eax
je 0x401ee5
mov eax, dword [edi + 0x78]
dec eax
push eax
push 1
push edi
call fcn.004033e0
mov cl, al
mov eax, dword [ebp - 0x64]
add esp, 0xc
test eax, eax
je 0x401de0
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
test eax, eax
jne 0x401dd0
mov dword [ebp - 0x64], eax
mov ebx, dword [ebp - 0x58]
test ebx, ebx
je 0x401dff
mov eax, 0x8d3dcb09
imul ebx
add edx, ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401de7
mov dword [ebp - 0x58], ebx
mov eax, dword [ebp - 0x5c]
inc eax
cmp eax, 0x2f28
jl 0x401e02
mov dword [ebp - 0x5c], eax
xor eax, eax
nop
cmp cl, byte [edi + eax + 0x140]
je 0x401e20
inc eax
cmp eax, esi
jbe 0x401e10
jmp 0x401e22
xor cl, cl
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x401e46
lea esp, [esp]
mov eax, 0x214d0215
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e30
mov dword [ebp - 0x34], ebx
test cl, cl
je 0x401e52
mov byte [edi + esi + 0x140], cl
inc esi
mov ebx, dword [ebp - 0x60]
cmp ebx, 0x1e43
jge 0x401e7a
mov ecx, 0x1e42
sub ecx, ebx
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [edx + edx*4]
lea ebx, [ebx + eax*2]
add ebx, 0xa
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp - 0x3c]
cmp ebx, 0x222b
jge 0x401ea1
mov ecx, 0x222a
sub ecx, ebx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
lea eax, [edx + ebx]
lea eax, [eax + edx*2]
add eax, 3
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x68]
mov eax, 0x624c
mov edx, 0x15
mov edi, edi
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401eb0
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x5ac6
jge 0x401ed9
mov eax, 0x5ac5
sub eax, ecx
shr eax, 3
lea ecx, [ecx + eax*8]
add ecx, 8
mov dword [ebp - 0x44], ecx
mov eax, dword [edi + 0x78]
dec eax
cmp esi, eax
jb 0x401db7
mov ecx, 0x76d5
lea ebx, [ebx]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ef0
push 0x5d
push ecx
lea eax, [ebp - 0xcf]
push eax
mov byte [ebp - 0xd0], cl
call fcn.004032a0
lea eax, [ebp - 0xd0]
push eax
call fcn.00402a60
add esp, 0x10
mov eax, 0x6780
mov edx, 0x1f
mov ecx, 0xf0
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401f38
xorps xmm0, xmm0
movq qword [ebp - 0x14], xmm0
lea ebx, [edi + 0xf0]
mov dword [ebp - 0x28], 0x37266e2a
mov dword [ebp - 0x24], 0xafb8f346
movq xmm0, qword [ebp - 0x28]
movq qword [ebx], xmm0
mov dword [ebp - 0x20], 0xe3938e24
mov dword [ebp - 0x1c], 0xe5abece
movq xmm0, qword [ebp - 0x20]
movq qword [ebx + 8], xmm0
mov dword [ebp - 0x18], 0xa706dbdc
movq xmm0, qword [ebp - 0x18]
movq qword [ebx + 0x10], xmm0
mov dword [ebp - 0xc], eax
movq xmm0, qword [ebp - 0x10]
movq qword [ebx + 0x18], xmm0
jmp 0x401fa0
xor byte [ebp + eax - 0xd0], 0x37
inc eax
cmp eax, 0x5c
jb 0x401fa0
mov edi, 0x1ab9
mov eax, 0x22b63cbf
imul edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401fb3
mov edi, dword [ebp + 0x10]
lea esp, [esp]
mov eax, 0x487ede05
imul dword [ebp - 4]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
jne 0x401fd0
mov ecx, 0x4647
lea esp, [esp]
mov eax, 0x9c09c09d
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ff0
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x402014
dec eax
or eax, 0xfffffff8
inc eax
jne 0x402018
add ecx, ecx
cmp ecx, 0x61cb
jl 0x402005
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [edi + 0x78], eax
jbe 0x402211
mov edx, 0xe0
jmp 0x402040
movzx ebx, byte [eax + edi + 0x140]
imul ebx, dword [edi + 0x29c]
add ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x4c]
mov eax, 0x7a16
lea ebx, [ebx]
cmp ecx, 0xe0
cmovl ecx, edx
dec eax
jne 0x402060
mov esi, dword [ebp - 8]
mov dword [ebp - 0x4c], ecx
cmp esi, 0x6a48
jge 0x4020a4
lea ebx, [ebx]
inc esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x402099
inc esi
cmp esi, 0x6a48
jl 0x402080
mov dword [ebp - 8], esi
mov ecx, dword [ebp - 0x2c]
mov dword [edi + 0x260], ebx
test ecx, ecx
je 0x4020c9
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020b1
mov dword [ebp - 0x2c], ecx
push 0x5d
lea eax, [ebp - 0x12f]
push 0
push eax
mov byte [ebp - 0x130], 0
call fcn.004032a0
mov ecx, dword [ebp - 0x54]
add esp, 0xc
test ecx, ecx
je 0x402106
lea ebx, [ebx]
mov eax, 0x10624dd3
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020f0
mov dword [ebp - 0x54], ecx
push 0x5d
lea eax, [ebp - 0x130]
push ebx
push eax
call fcn.00403270
mov ecx, dword [ebp - 0x30]
add esp, 0xc
test ecx, ecx
je 0x402136
nop
mov eax, 0x7e07e07f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402120
mov dword [ebp - 0x30], ecx
mov ecx, 0x17
lea esi, [ebp - 0xd0]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x402168
lea esp, [esp]
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402150
mov dword [ebp - 0x38], ecx
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 0x260]
call eax
push 0x5d
lea eax, [ebp - 0x130]
push eax
push ebx
call fcn.00403270
xor esi, esi
add esp, 0xc
cmp dword [edi + 0x29c], esi
jbe 0x4021d7
nop
mov eax, dword [edi + 0x80]
inc esi
mov al, byte [eax + 3]
xor byte [esi + ebx - 1], al
movzx ecx, byte [esi + ebx - 1]
mov eax, dword [edi + 0x80]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + ebx - 1], dl
mov eax, dword [edi + 0x80]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + ebx - 1], cl
mov eax, dword [edi + 0x80]
mov al, byte [eax]
xor al, cl
mov byte [esi + ebx - 1], al
cmp esi, dword [edi + 0x29c]
jb 0x402190
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x4021f6
mov edi, edi
mov eax, 0x2fa0be83
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4021e0
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
mov edx, 0xe0
cmp eax, dword [edi + 0x78]
jb 0x402040
lea ebx, [edi + 0xf0]
mov ecx, 0x6cad
mov eax, 0xf6603d99
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402216
call fcn.00403530
mov dword [edi + 0x264], eax
xor edx, edx
jmp 0x402240
inc edx
mov ecx, edx
and ecx, 0x80000003
jns 0x402250
dec ecx
or ecx, 0xfffffffc
inc ecx
jne 0x402253
inc edx
cmp edx, 0x1faa
jl 0x402240
add eax, 0xfffffffe
push eax
push dword [edi + 0xc8]
call fcn.00401100
add esp, 8
mov eax, 0x676f
mov edx, 0x8d
mov ecx, 0x35
lea esp, [esp]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402280
xor esi, esi
lea ebx, [ebx]
inc esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, esi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x4022ab
add esi, 2
cmp esi, 0x36d3
jl 0x402290
push 0x857e5c2
push ebx
call fcn.00401b10
add esp, 8
mov ecx, 0x3af4
mov eax, 0xf2b9d649
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4022c6
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
mov ebx, 0x64cb
lea esi, [edx + eax]
sar esi, 8
mov eax, 0x7e07e07f
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x4022f0
lea ebx, [edi + 0xf0]
test esi, esi
je 0x402330
mov edi, dword [ebp + 8]
push ebx
push 0x100
push edi
call fcn.004032d0
add esp, 0xc
add edi, 0x100
dec esi
jne 0x402310
jmp 0x402330
mov eax, 0x38e38e39
imul dword [ebp - 0x48]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x48], eax
jne 0x402330
jmp 0x402350
mov eax, 0x3949660b
imul dword [ebp - 0x50]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x50], eax
jne 0x402350
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret