Function at 0x409270
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x70
mov ebp, dword [esp + 0x88]
mov dword [esp + 8], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x10], 0x3a3333e8
mov dword [esp + 0x14], 0xff353eca
mov dword [esp + 0x18], 0xc3352dd7
mov dword [esp + 0x1c], 0x4eb8f8ed
mov dword [esp + 0x20], 0x46bebd4f
mov dword [esp + 0x24], 0x464fb542
mov dword [esp + 0x28], 0x49885c8c
mov dword [esp + 0x2c], 0xa9ac52b5
mov dword [esp + 0x30], 0xf3f7f15f
mov word [esp + 0x34], 0xc0f5
lea esi, [esp + 0x10]
mov edi, 0xcc
movzx eax, byte [esi]
lea ebx, [edi - 0x4b68b300]
or ebx, eax
and eax, edi
not ebx
or ebx, eax
add ebx, 0xa4ba6e67
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
mov byte [esi], al
inc esi
dec edi
cmp edi, 0xa6
jne 0x4092e0
mov dword [esp + 4], 0xea131515
mov esi, 0x8f
mov edi, 0x70
movzx ebx, byte [esp + esi - 0x8b]
mov eax, ebx
not eax
or eax, edi
or ebx, esi
and ebx, eax
add bl, 0x88
mov byte [esp + esi - 0x8b], bl
inc esi
dec edi
cmp esi, 0x93
jne 0x409320
mov dword [esp + 0x36], 0x13287074
mov dword [esp + 0x3a], 0x1e0a1a13
mov dword [esp + 0x3e], 0x1d275f15
mov dword [esp + 0x42], 0xb181616
mov dword [esp + 0x46], 0x3020e00
mov dword [esp + 0x4a], 0x165f3403
mov dword [esp + 0x4e], 0x490e000e
mov dword [esp + 0x52], 0xe9031711
mov dword [esp + 0x56], 0xedf5aac2
mov dword [esp + 0x5a], 0xa2c2ebf0
mov dword [esp + 0x5e], 0xe1fffbe7
mov dword [esp + 0x62], 0xfea7cda7
mov dword [esp + 0x66], 0xe2fee6e0
mov dword [esp + 0x6a], 0xddfae3fc
mov word [esp + 0x6e], 0x92b3
xor ebx, ebx
mov ecx, dword [esp + 0x84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x61
xor al, byte [esp + ebx + 0x36]
add al, 0xf8
mov byte [esp + ebx + 0x36], al
inc ebx
cmp ebx, 0x3a
jne 0x4093d0
add ecx, edx
mov word [esp + 1], 0xf5ea
mov byte [esp + 3], 0x29
mov edx, 0x7194d24f
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x7194d24e]
xor eax, edx
lea ebx, [eax + 0x87]
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0x4b
xor bl, 1
add bl, 0xb5
mov byte [esp + edx - 0x7194d24e], bl
inc edx
cmp edx, 0x7194d252
jne 0x409400
movzx ebx, byte [esp + 1]
mov edx, ecx
test bl, bl
je 0x40945b
lea esi, [esp + 2]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409450
mov byte [edx], 0
mov eax, dword [esp + 8]
movzx ebx, byte [eax + 0x60]
test bl, bl
je 0x40947b
lea esi, [eax + 0x61]
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409470
mov byte [edx], 0
movzx ebx, byte [esp + 0x36]
test bl, bl
je 0x40949b
lea esi, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409490
mov byte [edx], 0
movzx ebx, byte [ebp]
test bl, bl
mov dword [esp + 0xc], ecx
je 0x4094bc
inc ebp
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x4094b0
mov byte [edx], 0
movzx ecx, byte [esp + 4]
test cl, cl
je 0x4094ed
lea esi, [esp + 5]
mov ebp, dword [esp + 0x90]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x4094e0
jmp 0x4094f4
mov ebp, dword [esp + 0x90]
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40951b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409510
mov byte [edx], 0
mov ecx, ebp
shr ecx, 2
mov esi, dword [esp + 0x8c]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebx, ebp
and ebx, 0xfffffffc
add edx, ebx
add ebx, esi
mov ecx, ebp
and ecx, 3
mov esi, ecx
not esi
or esi, 1
add esi, ecx
shr ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
and ebp, 2
add edx, ebp
mov ecx, esi
inc ecx
je 0x4095bb
add ebx, ebp
mov ebp, ecx
and ebp, 3
je 0x409582
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx + edi]
mov byte [edx + edi], al
inc edi
cmp ebp, edi
jne 0x409570
add ebx, edi
add edx, edi
sub ecx, edi
cmp esi, 3
jb 0x4095bb
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebx + esi]
mov byte [edx + esi], al
movzx eax, byte [ebx + esi + 1]
mov byte [edx + esi + 1], al
movzx eax, byte [ebx + esi + 2]
mov byte [edx + esi + 2], al
movzx eax, byte [ebx + esi + 3]
mov byte [edx + esi + 3], al
add esi, 4
cmp ecx, esi
jne 0x409590
add edx, esi
mov dword [esp + 0x36], 0x9f99999f
mov byte [esp + 0x3a], 0x96
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x82
xor al, byte [esp + ecx + 0x36]
add al, 0xf0
mov byte [esp + ecx + 0x36], al
inc ecx
cmp ecx, 5
jne 0x4095d0
mov dword [esp + 0x10], 0xeaeb8f89
mov byte [esp + 0x14], 0x88
xor esi, esi
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, esi
xor eax, 0x5c
mov ebx, esi
and ebx, 3
add ebx, ebx
sub ebx, eax
xor bl, byte [esp + esi + 0x10]
add bl, 0xe0
mov byte [esp + esi + 0x10], bl
and ecx, 1
not esi
or esi, 1
sub ecx, esi
mov esi, ecx
cmp ecx, 5
jb 0x409600
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40964d
lea esi, [esp + 0x11]
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409640
jmp 0x409651
mov eax, dword [esp + 8]
mov byte [edx], 0
movzx ecx, byte [eax + 0x60]
test cl, cl
je 0x40966b
lea esi, [eax + 0x61]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409660
mov byte [edx], 0
movzx ecx, byte [esp + 0x36]
test cl, cl
je 0x40968b
lea esi, [esp + 0x37]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409680
mov byte [edx], 0
sub edx, dword [esp + 0xc]
add dword [eax + 0x80], edx
add esp, 0x70
pop esi
pop edi
pop ebx
pop ebp
ret 0x10