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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf4
push ebx
push esi
push edi
xor ebx, ebx
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [ebp - 0x3c], 0x3d
mov dword [ebp - 0x44], 0xdd
mov dword [ebp - 0x48], 0x2655
mov dword [ebp - 8], 0x6815
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x40], 0x4fdd
mov dword [ebp - 0x4c], 0x6d9d
inc esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
sub eax, ecx
jne 0x401e18
inc esi
cmp esi, 0x875
jl 0x401df4
cmp dword [ebp + 8], ebx
je 0x402517
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x402517
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 0x2cc]
xor eax, dword [esi + 0x40]
cmp edx, eax
jl 0x402517
call fcn.004033d0
mov dword [esi + 0x240], eax
mov ecx, 0x5591
mov edx, 0x86
mov eax, 0x35
cmp eax, 0x86
cmovg eax, edx
dec ecx
jne 0x401e62
mov eax, dword [esi + 0x40]
xor dword [esi + 0x278], eax
lea ecx, [esi + 0x40]
mov ebx, 0x5dfc
mov edi, edi
mov eax, 0x42df9bb1
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401e80
mov dword [esi + 0x270], ecx
mov eax, 0x3fd2
mov edx, 0x46
mov ecx, 0x67
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401ea8
inc edi
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401ecc
add edi, edi
jmp 0x401ed5
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add edi, eax
cmp edi, 0x78ff
jl 0x401eb0
mov ecx, dword [esi + 0x278]
mov eax, dword [ebp + 0xc]
xor edx, edx
div ecx
imul ecx, eax
mov dword [esi + 0x2e8], eax
mov dword [ebp - 0x10], ecx
mov dword [esi + 0x22c], ecx
xor edi, edi
mov edi, edi
inc edi
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 0x401f24
inc edi
cmp edi, 0x28a9
jl 0x401f00
mov ebx, 0x3810
mov eax, 0x3e88cb3d
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401f31
mov eax, 0x5133
mov edx, 0xcd
mov ecx, 0xc9
cmp ecx, edx
cmovl ecx, edx
dec eax
jne 0x401f53
mov ecx, 0x4eaa
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f60
mov ecx, 0x1c5e
lea ebx, [ebx]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401f80
mov eax, dword [ebp - 0x10]
xor edi, edi
test eax, eax
je 0x401fea
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x270]
inc edi
mov al, byte [eax]
xor byte [edi + ebx - 1], al
movzx ecx, byte [edi + ebx - 1]
mov eax, dword [esi + 0x270]
mov dl, byte [eax + 1]
xor dl, cl
mov byte [edi + ebx - 1], dl
mov eax, dword [esi + 0x270]
mov cl, byte [eax + 2]
xor cl, dl
mov byte [edi + ebx - 1], cl
mov eax, dword [esi + 0x270]
mov al, byte [eax + 3]
xor al, cl
mov byte [edi + ebx - 1], al
cmp edi, dword [esi + 0x22c]
jb 0x401fa1
xor ebx, ebx
mov ecx, 0x720b
nop
mov eax, 0xf2b9d649
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ff0
mov ebx, 0x3bf5
lea ebx, [ebx]
mov eax, 0x473c1ab7
imul ebx
sar edx, 6
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402010
mov ecx, 0x5e5
jmp 0x402030
mov eax, 0xd20d20d3
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402030
mov ebx, 0x331b
lea ebx, [ebx]
mov eax, 0x4bda12f7
imul ebx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x402050
mov eax, dword [esi + 0x278]
xor edi, edi
dec eax
je 0x40215a
mov dword [ebp - 0x10], 0xa7
mov dword [ebp - 0x14], 0x7b
cmp ebx, 0x2752
jge 0x4020a2
mov ecx, 0x2751
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 eax, dword [esi + 0x278]
dec eax
push eax
push 1
push esi
call fcn.00403250
mov dl, al
mov eax, dword [ebp - 0x3c]
add esp, 0xc
mov byte [ebp - 1], dl
mov ecx, 0x372c
cmp eax, 0xa7
cmovg eax, dword [ebp - 0x10]
dec ecx
jne 0x4020c2
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x3c], eax
mov eax, 0x33c3
lea esp, [esp]
cmp ecx, 0x7b
cmovl ecx, dword [ebp - 0x14]
dec eax
jne 0x4020e0
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x48]
test ecx, ecx
je 0x40210d
mov eax, 0x42df9bb1
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4020f4
mov dl, byte [ebp - 1]
mov dword [ebp - 0x48], ecx
xor eax, eax
nop
cmp dl, byte [esi + eax + 0x2ec]
je 0x40212a
inc eax
cmp eax, edi
jbe 0x402110
test dl, dl
je 0x40212a
mov byte [esi + edi + 0x2ec], dl
inc edi
mov ecx, dword [ebp - 8]
test ecx, ecx
je 0x402149
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402131
mov dword [ebp - 8], ecx
mov eax, dword [esi + 0x278]
dec eax
cmp edi, eax
jb 0x402080
xor ebx, ebx
push 0x51
lea eax, [ebp - 0x9f]
push 0
push eax
mov byte [ebp - 0xa0], 0
call fcn.004030e0
lea eax, [ebp - 0xa0]
push eax
call fcn.00402b70
xorps xmm0, xmm0
add esp, 0x10
mov dword [ebp - 0x34], 0x60e3de5f
mov dword [ebp - 0x30], 0x5b4e522b
mov dword [ebp - 0x2c], 0x91852505
mov dword [ebp - 0x28], 0x88d17a39
mov dword [ebp - 0x24], 0xa5cfbec5
movq qword [ebp - 0x20], xmm0
xor edi, edi
lea ecx, [ecx]
inc edi
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
lea eax, [eax + eax*4]
sub ecx, eax
jne 0x4021cd
add edi, 2
cmp edi, 0x1d3e
jl 0x4021b0
movq xmm0, qword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
lea edi, [esi + 0x48]
movq qword [edi], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [edi + 8], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [edi + 0x10], xmm0
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], 0
xor eax, eax
inc eax
cmp eax, 0x50
jb 0x402203
mov ecx, 0x5b6a
mov edi, edi
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402210
xor ebx, ebx
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 0x402246
add ebx, ebx
cmp ebx, 0x6e09
jl 0x402227
xor eax, eax
mov dword [ebp - 8], eax
mov ebx, eax
cmp dword [esi + 0x278], eax
jbe 0x4023d3
movzx edi, byte [esi + eax + 0x2ec]
imul edi, dword [esi + 0x2e8]
add edi, dword [ebp + 8]
push 0x51
lea eax, [ebp - 0xf3]
push 0
push eax
mov dword [ebp - 0x14], edi
mov dword [esi + 0x23c], edi
mov byte [ebp - 0xf4], 0
call fcn.004030e0
push 0x51
lea eax, [ebp - 0xf4]
push edi
push eax
call fcn.004030b0
add esp, 0x18
cmp ebx, 0x57bd
jge 0x4022e3
lea ecx, [ecx]
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 0x4022d7
add ebx, 3
jmp 0x4022d8
inc ebx
cmp ebx, 0x57bd
jl 0x4022b0
mov dword [ebp - 0xc], ebx
mov esi, dword [ebp - 0x38]
cmp esi, 0x62e3
jge 0x40230a
mov ecx, 0x62e2
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 - 0x38], eax
mov eax, dword [ebp + 0x10]
mov ecx, 0x14
lea esi, [ebp - 0xa0]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x23c]
call eax
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je 0x402348
lea esp, [esp]
mov eax, 0x81020409
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402330
mov dword [ebp - 0x40], ecx
mov edi, dword [ebp - 0x14]
push 0x51
lea eax, [ebp - 0xf4]
push eax
push edi
call fcn.004030b0
mov eax, dword [ebp + 0x10]
xor esi, esi
add esp, 0xc
cmp dword [eax + 0x2e8], esi
jbe 0x4023ba
mov ebx, eax
lea esp, [esp]
mov eax, dword [ebx + 0x270]
inc esi
mov al, byte [eax + 3]
xor byte [esi + edi - 1], al
movzx ecx, byte [esi + edi - 1]
mov eax, dword [ebx + 0x270]
mov dl, byte [eax + 2]
xor dl, cl
mov byte [esi + edi - 1], dl
mov eax, dword [ebx + 0x270]
mov cl, byte [eax + 1]
xor cl, dl
mov byte [esi + edi - 1], cl
mov eax, dword [ebx + 0x270]
mov al, byte [eax]
xor al, cl
mov byte [esi + edi - 1], al
cmp esi, dword [ebx + 0x2e8]
jb 0x402370
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 0x10]
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [esi + 0x278]
jb 0x402261
lea edi, [esi + 0x48]
mov ecx, 0x4d7
jmp 0x4023e0
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4023e0
call fcn.004033d0
mov dword [esi + 0x228], eax
add eax, 0xfffffffe
push eax
push dword [esi + 0x240]
call fcn.00401140
add esp, 8
mov ecx, 0x4764
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x402417
push 0x15dc97
push edi
call fcn.00401d30
add esp, 8
xor ebx, ebx
lea esp, [esp]
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 0x40245b
inc ebx
cmp ebx, 0x3c1e
jl 0x402440
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xff
lea esi, [edx + eax]
sar esi, 8
xor eax, eax
inc eax
mov ecx, eax
and ecx, 0x80000007
jns 0x402485
dec ecx
or ecx, 0xfffffff8
inc ecx
jne 0x402488
inc eax
cmp eax, 0x7122
jl 0x402475
xor ebx, ebx
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 0x4024b7
add ebx, 5
cmp ebx, 0x781
jl 0x402491
test esi, esi
je 0x4024de
mov ebx, dword [ebp + 8]
push edi
push 0x100
push ebx
call fcn.00403140
add esp, 0xc
add ebx, 0x100
dec esi
jne 0x4024c6
xor ecx, ecx
inc ecx
mov eax, ecx
and eax, 0x80000007
jns 0x4024ef
dec eax
or eax, 0xfffffff8
inc eax
jne 0x4024f2
inc ecx
cmp ecx, 0x23fe
jl 0x4024e0
lea ebx, [ebx]
mov eax, 0x60606061
imul dword [ebp - 0x4c]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x4c], eax
jne 0x402500
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret