Function at 0x4090a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x74
mov dword [esp + 0x34], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0xa], 0x753a4e60
mov dword [esp + 0xe], 0x8c324f40
mov dword [esp + 0x12], 0x44c87053
mov dword [esp + 0x16], 0x75bb9993
mov dword [esp + 0x1a], 0x41bf58cf
mov dword [esp + 0x1e], 0x75c044c0
mov dword [esp + 0x22], 0x4e8d7180
mov dword [esp + 0x26], 0x5ab743b3
mov dword [esp + 0x2a], 0xed6eecc7
mov word [esp + 0x2e], 0xfe6f
xor eax, eax
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [esp + ebp*2 + 0xa]
mov esi, ebp
xor esi, 0x50f3aa85
mov edi, eax
and edi, 0x34
sub edi, esi
xor edi, ebx
add edi, 0x71415001
mov esi, edi
and esi, 0x79d5427
xor edi, 0x879d5427
lea esi, [edi + esi*2]
mov edi, esi
xor edi, 0x5001
and esi, 0x2ffe
add esi, esi
sub esi, edi
inc esi
mov word [esp + ebp*2 + 0xa], si
inc ebp
add eax, 2
cmp ebp, 0x13
jne 0x409110
mov dword [esp + 6], 0xa0d22
mov dword [esp + 0x3a], 0x60da8615
mov dword [esp + 0x3e], 0x63fe6df4
mov dword [esp + 0x42], 0x66d9a2e8
mov dword [esp + 0x46], 0x6cf061ed
mov dword [esp + 0x4a], 0x60c86dc9
mov dword [esp + 0x4e], 0x5a03b7cc
mov dword [esp + 0x52], 0xa2c86fcb
mov dword [esp + 0x56], 0x5ed35ec2
mov dword [esp + 0x5a], 0x5ec79013
mov dword [esp + 0x5e], 0x9e165ac7
mov dword [esp + 0x62], 0x5ac166ca
mov dword [esp + 0x66], 0x5a0fb70c
mov dword [esp + 0x6a], 0x63d465d9
mov dword [esp + 0x6e], 0xb2d662d3
mov word [esp + 0x72], 0xf016
xor edi, edi
nop
lea eax, [edi - 0x3928]
xor ax, word [esp + edi*2 + 0x3a]
add eax, 0xffffc940
mov word [esp + edi*2 + 0x3a], ax
inc edi
cmp edi, 0x1d
jne 0x4091e0
mov ecx, dword [esp + 0x88]
add ecx, edx
mov dword [esp + 2], 0x16137b3f
xor edx, edx
mov bl, 1
mov ebp, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [esp + edx*2 + 2]
mov esi, 0xd9fd
sub esi, edx
mov edi, edx
or edi, 0x2602
xor esi, edi
and esi, eax
xor esi, edi
add esi, 0xffffcff0
mov word [esp + edx*2 + 2], si
mov edx, 1
test bl, 1
mov ebx, 0
jne 0x409220
movzx ebx, byte [esp + 2]
mov edx, ecx
test bl, bl
je 0x40927b
lea edi, [esp + 3]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409270
mov byte [edx], 0
movzx ebx, byte [ebp + 0x60]
test bl, bl
mov eax, dword [esp + 0x8c]
je 0x40929b
lea edi, [ebp + 0x61]
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409290
mov byte [edx], 0
movzx ebx, byte [esp + 0x3a]
test bl, bl
je 0x4092bb
lea edi, [esp + 0x3b]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4092b0
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp + 0x30], ecx
je 0x4092db
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x4092d0
mov byte [edx], 0
movzx ecx, byte [esp + 6]
test cl, cl
je 0x4092fb
lea edi, [esp + 7]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4092f0
mov byte [edx], 0
movzx ecx, byte [esp + 0xa]
test cl, cl
je 0x40931b
lea edi, [esp + 0xb]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409310
mov byte [edx], 0
mov ebx, dword [esp + 0x94]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0x90]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and ebx, 0xfffffffc
add edx, ebx
add ebx, esi
mov ecx, eax
mov esi, eax
shr ecx, 1
and ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, esi
mov ecx, esi
and ecx, 2
add edx, ecx
test al, 1
je 0x409368
movzx eax, byte [ebx + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x3a], 0x23522353
mov word [esp + 0x3e], 0x2940
lea ecx, [esp + 0x3a]
mov edi, 0x97d1
movzx eax, word [ecx]
mov esi, edi
and esi, eax
lea ebx, [edi - 0x6eca0000]
or ebx, eax
not ebx
or ebx, esi
add ebx, 0x6da6641a
mov eax, ebx
and eax, 0x3e8f
xor ebx, 0xbe8f
lea eax, [ebx + eax*2]
add eax, 0xffff9be7
mov word [ecx], ax
add ecx, 2
dec edi
cmp edi, 0x97ce
jne 0x409380
mov dword [esp + 0xa], 0x4d066827
mov word [esp + 0xe], 0x7e2c
xor ecx, ecx
xor edi, edi
mov eax, edi
and eax, 0xfffffffc
add eax, ecx
xor ax, word [esp + edi + 0xa]
xor eax, 0xfffff1fa
add eax, 0x7030
mov word [esp + edi + 0xa], ax
add edi, 2
inc ecx
cmp edi, 6
jne 0x4093d0
movzx ecx, byte [esp + 0xa]
test cl, cl
je 0x40941b
lea edi, [esp + 0xb]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409410
mov byte [edx], 0
movzx ecx, byte [ebp + 0x60]
test cl, cl
je 0x40943b
lea edi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409430
mov byte [edx], 0
movzx ecx, byte [esp + 0x3a]
test cl, cl
je 0x40945b
lea edi, [esp + 0x3b]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409450
mov byte [edx], 0
sub edx, dword [esp + 0x30]
add dword [ebp + 0x80], edx
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret 0x10