Function at 0x409260
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [ebp + 8]
add eax, dword [ecx + 0x60]
mov word [esp + 0x18], 0x4345
mov byte [esp + 0x1a], 0x34
mov dword [esp + 0x1f], 0
mov dword [esp + 0x1b], 0
mov byte [esp + 0x23], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0xb
ja 0x4092fc
nop word cs:[eax + eax]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + edx + 0x18]
lea edx, [edi + 0x132c0289]
lea esi, [edi + ebx]
add esi, 0x132c0289
add edi, 0x89
and edi, ebx
and edx, ebx
add edx, edi
mov edi, edx
xor edi, esi
not edx
and edx, esi
add edx, edx
sub edx, edi
add dl, 0x41
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x18], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0xc
jb 0x4092b0
mov dword [esp + 8], 0xb4b2b694
mov word [esp + 0xc], 0xbdb0
mov dword [esp + 0x12], 0
mov dword [esp + 0xe], 0
mov word [esp + 0x16], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0xf
ja 0x409381
nop word cs:[eax + eax]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx edi, byte [esp + esi + 8]
lea esi, [edx + edi]
add esi, 0x2c11e337
add edx, 0x37
and edx, edi
add edx, edx
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
add dl, 0x7f
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 8], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x10
jb 0x409340
movaps xmm0, xmmword [0x43a510]
movups xmmword [esp + 0x28], xmm0
movaps xmm0, xmmword [0x43a520]
movups xmmword [esp + 0x38], xmm0
movaps xmm0, xmmword [0x43a530]
movups xmmword [esp + 0x48], xmm0
movsd xmm0, qword [0x43a540]
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x60], 0x253fe6ed
mov byte [esp + 0x64], 0x7a
mov dword [esp + 0x65], 0
mov byte [esp + 0x69], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x41
ja 0x409433
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x28]
mov edi, edx
and edi, 0xd7ac3ea9
xor edx, 0xd7ac3ea9
lea edx, [edx + edi*2]
lea edi, [edx + esi]
and edx, esi
add edx, edx
mov esi, edi
not esi
and esi, edx
not edx
and edx, edi
sub edx, esi
mov esi, edx
xor esi, 0x60
and edx, 0x60
lea edx, [esi + edx*2]
inc dl
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x28], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x42
jb 0x4093e0
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esp + 0x28]
mov edx, eax
test bl, bl
je 0x40945b
lea edi, [esp + 0x29]
mov edx, eax
nop word [eax + eax]
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409450
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40947b
inc esi
nop word cs:[eax + eax]
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409470
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ebx, byte [esp + 8]
test bl, bl
je 0x40949b
lea edi, [esp + 9]
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 [esi]
test bl, bl
je 0x4094bb
inc esi
nop word cs:[eax + eax]
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4094b0
mov byte [edx], 0
movzx ebx, byte [esp + 0x18]
test bl, bl
je 0x4094db
lea esi, [esp + 0x19]
nop dword [eax + eax]
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x4094d0
mov byte [edx], 0
sub edx, eax
add dword [ecx + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc