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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
push ebx
push esi
xor esi, esi
push edi
mov eax, 0xe1
mov edi, 0x19d1
mov ebx, 0x2bdc
mov dword [ebp - 0x60], 0x84
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x84], 0x1c00
mov dword [ebp - 0x8c], 0x88
mov dword [ebp - 0x94], 0x2cdd
mov dword [ebp - 0xc], 0x5ae0
mov dword [ebp - 0x48], 0x69d8
mov dword [ebp - 0x3c], 0x4a59
mov dword [ebp - 0x50], 0x67fc
mov dword [ebp - 0x64], 0xdac
mov dword [ebp - 0x58], 0x37a
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x40], 0x5260
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x4c], 0x7a
mov dword [ebp - 0x54], 0x3da1
mov dword [ebp - 0x5c], esi
mov ecx, 0x62c1
mov edx, 0xac
cmp eax, 0xac
cmovl eax, edx
dec ecx
jne 0x401d77
cmp dword [ebp + 8], esi
je 0x40250e
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x40250e
mov eax, dword [ebp + 0x10]
lea ecx, [eax + 0xe4]
mov eax, dword [eax + 0xb0]
xor eax, dword [ecx]
cmp edx, eax
jl 0x40250e
call fcn.00403570
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x13c], eax
mov eax, dword [ecx + 0xe4]
xor dword [ecx + 0x194], eax
mov ecx, dword [ecx + 0x194]
nop
mov eax, 0x473c1ab7
imul edi
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401dd0
mov edi, dword [ebp + 0x10]
xor edx, edx
lea eax, [edi + 0xe4]
mov dword [edi + 0x2d0], eax
mov eax, dword [ebp + 0xc]
div ecx
imul ecx, eax
mov dword [edi + 0x138], eax
mov dword [edi + 0x154], ecx
xor edi, edi
test ecx, ecx
je 0x401e62
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x2d0]
inc edi
mov al, byte [eax]
xor byte [edi + ebx - 1], al
movzx ecx, byte [edi + ebx - 1]
mov eax, dword [esi + 0x2d0]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [edi + ebx - 1], dl
mov eax, dword [esi + 0x2d0]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [edi + ebx - 1], cl
mov eax, dword [esi + 0x2d0]
mov al, byte [eax + 3]
xor al, cl
mov byte [edi + ebx - 1], al
cmp edi, dword [esi + 0x154]
jb 0x401e14
xor esi, esi
mov ebx, 0x2bdc
mov eax, 0x487ede05
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e62
mov esi, 0x38b7
lea ebx, [ebx]
mov eax, 0x5397829d
imul esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401e80
mov ebx, dword [ebp + 0x10]
xor ecx, ecx
mov eax, dword [ebx + 0x194]
mov dword [ebp - 4], ecx
mov esi, ecx
dec eax
je 0x401fe6
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x14], 0x8e
xor ebx, ebx
mov eax, dword [edi + 0x194]
dec eax
push eax
push 1
push edi
call fcn.00403380
mov dl, al
mov eax, dword [ebp - 0x60]
add esp, 0xc
mov byte [ebp - 5], dl
mov ecx, 0x1b01
cmp eax, 0x8e
cmovg eax, dword [ebp - 0x14]
dec ecx
jne 0x401ed6
mov dword [ebp - 0x60], eax
cmp ebx, 0x5f13
jge 0x401f16
lea ecx, [ecx]
inc ebx
mov eax, 0x38e38e39
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x401f0b
inc ebx
cmp ebx, 0x5f13
jl 0x401ef0
mov dl, byte [ebp - 5]
mov ecx, dword [ebp - 4]
xor eax, eax
jmp 0x401f20
cmp dl, byte [edi + eax + 0x1c4]
je 0x401f30
inc eax
cmp eax, ecx
jbe 0x401f20
jmp 0x401f32
xor dl, dl
cmp esi, 0x5d76
jge 0x401f5e
lea ebx, [ebx]
mov eax, esi
and eax, 0x80000003
jns 0x401f4e
dec eax
or eax, 0xfffffffc
inc eax
jne 0x401f55
add esi, 3
jmp 0x401f56
inc esi
cmp esi, 0x5d76
jl 0x401f40
cmp dword [ebp - 0x18], 0x7f98
jge 0x401f7f
mov edi, dword [ebp - 0x18]
mov eax, 0x7f97
sub eax, edi
shr eax, 1
lea edi, [edi + eax*2]
add edi, 2
mov dword [ebp - 0x18], edi
mov edi, dword [ebp + 0x10]
test dl, dl
je 0x401f8e
mov byte [edi + ecx + 0x1c4], dl
inc ecx
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 0x84]
test ecx, ecx
je 0x401fb8
jmp 0x401fa0
mov eax, 0x43b3d5b
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401fa0
mov dword [ebp - 0x84], ecx
mov ecx, dword [ebp - 0x8c]
mov eax, 0x56b1
mov edx, 0x85
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401fc8
mov eax, dword [edi + 0x194]
dec eax
mov dword [ebp - 0x8c], ecx
cmp dword [ebp - 4], eax
jb 0x401eb6
mov ecx, 0x328e
jmp 0x401ff0
mov eax, 0x84210843
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ff0
xor esi, esi
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 0x402022
inc esi
cmp esi, 0x78d6
jl 0x402007
mov eax, 0x59f5
nop
cdq
and edx, 3
add eax, edx
sar eax, 2
test eax, eax
jne 0x402030
xorps xmm0, xmm0
mov dword [ebp - 0x80], 0x7b1c7ba5
mov dword [ebp - 0x7c], 0xf7107331
mov dword [ebp - 0x78], 0x33ad157b
movq qword [ebp - 0x74], xmm0
movq qword [ebp - 0x6c], xmm0
mov ebx, 0x5c69
mov eax, 0x4c346405
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402064
mov ebx, dword [ebp + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0x33ce75cb
mov dword [ebp - 0x34], 0xfe14eac9
mov dword [ebp - 0x30], 0xde507d6e
mov dword [ebp - 0x2c], 0x986ade0e
mov dword [ebp - 0x28], 0x2a0ef4a7
movq qword [ebp - 0x24], xmm0
xor cl, cl
jmp 0x4020b0
mov eax, 0x5254e78f
imul dword [ebp - 0x94]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x94], eax
jne 0x4020b0
movq xmm0, qword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
lea edi, [ebx + 0x20]
mov dword [ebp - 0x14], edi
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x28]
movq qword [edi + 0x10], xmm0
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], 0
mov byte [edi + 0x1e], cl
xor eax, eax
xor byte [ebp + eax - 0x80], 0xf0
inc eax
cmp eax, 0xc
jb 0x402101
mov eax, 0x70d6
mov edx, 0xc6
mov ecx, 0x3a
jmp 0x402120
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x402120
mov ecx, 0x7a
lea ecx, [ecx]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402130
xor esi, esi
inc esi
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, esi
sub eax, ecx
jne 0x402165
inc esi
cmp esi, 0x4a84
jl 0x402147
mov ebx, 0x7045
mov eax, 0x24168e19
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402172
mov ebx, dword [ebp + 0x10]
mov edi, 0x4028
lea ecx, [ecx]
mov eax, 0x94f2095
imul edi
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402190
mov eax, 0x60606061
imul dword [ebp - 0xc]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xc], eax
jne 0x4021a3
xor ecx, ecx
mov dword [ebp - 0xc], ecx
cmp dword [ebx + 0x194], ecx
jbe 0x40242c
jmp 0x4021d0
mov esi, dword [ebp - 0x48]
test esi, esi
je 0x4021ef
mov eax, 0x8fb823ef
imul esi
add edx, esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4021d7
mov dword [ebp - 0x48], esi
mov esi, dword [ebp - 0x3c]
test esi, esi
je 0x40220e
mov eax, 0xea0ea0eb
imul esi
add edx, esi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4021f6
mov dword [ebp - 0x3c], esi
movzx ecx, byte [ebx + ecx + 0x1c4]
imul ecx, dword [ebx + 0x138]
add ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x50]
mov dword [ebp - 4], ecx
test esi, esi
je 0x402248
lea ebx, [ebx]
mov eax, 0x8d3dcb09
imul esi
add edx, esi
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402230
mov dword [ebp - 0x50], esi
mov dword [ebx + 0x110], ecx
mov ebx, dword [ebp - 0x64]
test ebx, ebx
je 0x40226d
mov eax, 0x964fda6d
imul ebx
add edx, ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402255
mov dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x58]
test ebx, ebx
je 0x40228a
mov eax, 0x66666667
imul ebx
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402274
mov dword [ebp - 0x58], ebx
mov ebx, dword [ebp - 0x10]
cmp ebx, 0x7e9b
jge 0x4022c3
inc ebx
mov eax, 0x66666667
imul ebx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x4022b5
add ebx, 2
cmp ebx, 0x7e9b
jl 0x402295
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x40]
test ebx, ebx
je 0x4022e6
lea ebx, [ebx]
mov eax, 0x4d4873ed
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x4022d0
mov dword [ebp - 0x40], ebx
movq xmm0, qword [ecx]
mov eax, dword [ebp - 0x44]
mov esi, dword [ecx + 0x18]
mov di, word [ecx + 0x1c]
mov bl, byte [ecx + 0x1e]
movq qword [ebp - 0x98], xmm0
movq xmm0, qword [ecx + 8]
cmp eax, 0x3900
movq qword [ebp - 0x90], xmm0
movq xmm0, qword [ecx + 0x10]
mov edx, 0x3900
cmovl eax, edx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x78]
movq qword [ebp - 0x88], xmm0
movq xmm0, qword [ebp - 0x80]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x110]
call eax
mov eax, dword [ebp - 4]
movq xmm0, qword [ebp - 0x98]
mov ecx, dword [ebp - 0x4c]
movq qword [eax], xmm0
movq xmm0, qword [ebp - 0x90]
movq qword [eax + 8], xmm0
movq xmm0, qword [ebp - 0x88]
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], esi
mov word [eax + 0x1c], di
mov edi, eax
mov eax, 0x2aa3
mov byte [edi + 0x1e], bl
mov edx, 0x37
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x402385
mov ebx, dword [ebp + 0x10]
xor esi, esi
mov dword [ebp - 0x4c], ecx
cmp dword [ebx + 0x138], esi
jbe 0x4023e7
lea ecx, [ecx]
mov eax, dword [ebx + 0x2d0]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x2d0]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x2d0]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x2d0]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x138]
jb 0x4023a0
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x402406
mov edi, edi
mov eax, 0x473c1ab7
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023f0
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x5c]
cmp eax, 0x8ac
mov ecx, 0x8ac
cmovl eax, ecx
mov ecx, dword [ebp - 0xc]
inc ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0xc], ecx
cmp ecx, dword [ebx + 0x194]
jb 0x4021d0
mov ecx, 0xe0
mov eax, 0x84a9f9c9
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402431
call fcn.00403570
mov ecx, eax
mov dword [ebx + 0x78], ecx
mov esi, 0x78a2
mov eax, 0xd20d20d3
imul esi
add edx, esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x402455
lea eax, [ecx - 2]
push eax
push dword [ebx + 0x13c]
call fcn.004010f0
add esp, 8
mov edi, 0x77cf
mov eax, 0x214d0215
imul edi
sar edx, 4
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x402481
mov edi, dword [ebp - 0x14]
mov ecx, 0x2961
lea esp, [esp]
mov eax, 0xea0ea0eb
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4024a0
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x4024c4
dec eax
or eax, 0xfffffff8
inc eax
jne 0x4024c9
add ecx, 2
cmp ecx, 0x5208
jl 0x4024b5
push 0x42ce580
push edi
call fcn.00401bb0
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
add esp, 8
lea esi, [edx + eax]
sar esi, 8
test esi, esi
je 0x40250e
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.00403250
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x4024f6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret