Function at 0x409260
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x74
mov dword [esp + 4], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0xa], 0x64bc7f82
mov dword [esp + 0xe], 0x3db07ea6
mov dword [esp + 0x12], 0x75b66991
mov dword [esp + 0x16], 0x64b9308d
mov dword [esp + 0x1a], 0x78b971ad
mov dword [esp + 0x1e], 0x64a275a6
mov dword [esp + 0x22], 0x7f636862
mov dword [esp + 0x26], 0x73b57abd
mov dword [esp + 0x2a], 0x1d481da5
mov word [esp + 0x2e], 0x1049
mov edi, 0x1009
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [esp + edi*2 - 0x2008]
lea ebp, [edi - 0x261e8000]
mov esi, edi
and esi, ebx
mov eax, ebp
and eax, ebx
xor ebp, ebx
lea eax, [eax*2]
add eax, ebp
add esi, esi
sub eax, esi
add eax, 0x7fb8
mov word [esp + edi*2 - 0x2008], ax
inc edi
cmp edi, 0x101c
jne 0x4092d0
mov dword [esp], 0xa401f7b
xor ebp, ebp
mov bl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, word [esp + ebp*2]
mov edi, 0x932e
sub edi, ebp
mov esi, ebp
add esi, 0xee976cd1
xor edi, esi
and edi, eax
xor edi, esi
mov eax, edi
not eax
and edi, 0x9977
and eax, 0x6688
sub edi, eax
mov word [esp + ebp*2], di
mov ebp, 1
xor edi, edi
test bl, 1
mov ebx, 0
jne 0x409320
mov dword [esp + 0x3a], 0x96b0f1ff
mov dword [esp + 0x3e], 0x95909b9a
mov dword [esp + 0x42], 0x90b3d462
mov dword [esp + 0x46], 0x9a96976b
mov dword [esp + 0x4a], 0x96929b93
mov dword [esp + 0x4e], 0x8ddda192
mov dword [esp + 0x52], 0xd4929991
mov dword [esp + 0x56], 0x88758884
mov dword [esp + 0x5a], 0x888dc7b9
mov dword [esp + 0x5e], 0xc9b88c89
mov dword [esp + 0x62], 0x8c8b9080
mov dword [esp + 0x66], 0x8dc9a2ca
mov dword [esp + 0x6a], 0x958e9383
mov dword [esp + 0x6e], 0xa488948d
mov word [esp + 0x72], 0xe7cc
mov ecx, dword [esp + 0x88]
nop
nop
nop
movzx eax, word [esp + edi*2 + 0x3a]
lea esi, [edi - 0x5ce41f1e]
xor esi, eax
mov eax, esi
not eax
and eax, 0x711
and esi, 0xf8ee
sub esi, eax
inc esi
mov word [esp + edi*2 + 0x3a], si
inc edi
cmp edi, 0x1d
jne 0x4093e0
add ecx, edx
mov dword [esp + 0x36], 0x2d2d
xor eax, eax
mov edx, ecx
test al, al
jne 0x40943b
mov bl, 0x2d
lea edi, [esp + 0x37]
mov edx, ecx
nop
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 0x409430
mov byte [edx], 0
mov eax, dword [esp + 4]
movzx ebx, byte [eax + 0x60]
test bl, bl
je 0x40946d
lea edi, [eax + 0x61]
mov eax, dword [esp + 0x8c]
nop
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 0x409460
jmp 0x409474
mov eax, dword [esp + 0x8c]
mov byte [edx], 0
movzx ebx, byte [esp + 0x3a]
test bl, bl
je 0x40949b
lea edi, [esp + 0x3b]
nop
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 0x409490
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp + 0x30], ecx
je 0x4094bb
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x4094b0
mov byte [edx], 0
movzx ecx, byte [esp]
test cl, cl
je 0x4094db
lea edi, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4094d0
mov byte [edx], 0
movzx ecx, byte [esp + 0xa]
test cl, cl
je 0x4094fb
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 0x4094f0
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 ebp, eax
mov esi, eax
and ebp, 3
mov ecx, ebp
shr ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
xor ebp, 1
mov eax, esi
and ebp, esi
add edx, ebp
test al, 1
je 0x40954a
movzx eax, byte [ebx + ebp]
mov byte [edx], al
inc edx
mov dword [esp + 0x3a], 0x83868387
mov word [esp + 0x3e], 0xfd8c
mov ecx, 0xc75a
nop
nop
movzx eax, word [esp + ecx*2 - 0x18e7a]
lea esi, [ecx - 0x55a20000]
mov edi, ecx
and edi, eax
add edi, edi
mov ebx, esi
and ebx, eax
xor esi, eax
lea eax, [esi + ebx*2]
mov esi, eax
not esi
and esi, edi
not edi
and edi, eax
sub edi, esi
add edi, 0xffffc530
mov word [esp + ecx*2 - 0x18e7a], di
inc ecx
cmp ecx, 0xc75d
jne 0x409560
mov dword [esp + 0xa], 0xc34da662
mov word [esp + 0xe], 0xbc11
mov ecx, 0xe09c1527
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [esp + ecx*2 + 0x3ec7d5bc]
mov eax, ecx
and eax, edi
add eax, eax
sub edi, eax
add edi, ecx
mov eax, edi
and eax, 0x56c7
add eax, eax
xor edi, 0xa938
sub eax, edi
mov word [esp + ecx*2 + 0x3ec7d5bc], ax
inc ecx
cmp ecx, 0xe09c152a
jne 0x4095c0
movzx ecx, byte [esp + 0xa]
test cl, cl
je 0x40961d
lea edi, [esp + 0xb]
mov eax, dword [esp + 4]
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 0x409610
jmp 0x409621
mov eax, dword [esp + 4]
mov byte [edx], 0
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40963b
lea edi, [eax + 0x61]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409630
mov byte [edx], 0
movzx ecx, byte [esp + 0x3a]
test cl, cl
je 0x40965b
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 0x409650
mov byte [edx], 0
sub edx, dword [esp + 0x30]
add dword [eax + 0x80], edx
add esp, 0x74
pop esi
pop edi
pop ebx
pop ebp
ret 0x10