Function at 0x409260
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x524104]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x20], ecx
test esi, esi
jne 0x409292
lea eax, [esi - 4]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, ebx
and eax, 0x80000007
jns 0x4092a6
dec eax
or eax, 0xfffffff8
add eax, 1
je 0x4092bd
pop ebx
or eax, 0xffffffff
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jne 0x4092d9
pop ebx
lea eax, [ecx - 2]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
test edx, edx
jne 0x4092e7
xorps xmm0, xmm0
movlpd qword [ebp - 0xc], xmm0
jmp 0x4092f2
mov eax, dword [edx]
mov dword [ebp - 0xc], eax
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
lea edx, [ebp - 0x14]
mov eax, 0x42d958
push edi
lea edi, [esi + ebx]
mov dword [ebp - 0x1c], edx
lea ebx, [ebp - 0xc]
mov edx, ecx
mov cl, byte [eax]
cmp cl, byte [edx]
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp + 0x10]
jne 0x409336
cmp byte [ebp - 0x15], 0
je 0x409332
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp + 0x10]
jne 0x409336
add eax, 2
add edx, 2
cmp byte [ebp - 0x15], 0
jne 0x409306
xor eax, eax
jmp 0x40933b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x409374
cmp esi, edi
jae 0x4095a2
mov ebx, dword [ebp - 0x20]
nop word [eax + eax]
push esi
mov ecx, ebx
call fcn.00408ec0
add esi, 8
cmp esi, edi
jb 0x409350
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
mov edx, ecx
mov eax, 0x42d95c
nop dword [eax + eax]
mov cl, byte [eax]
cmp cl, byte [edx]
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp + 0x10]
jne 0x4093b0
cmp byte [ebp - 0x15], 0
je 0x4093ac
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp + 0x10]
jne 0x4093b0
add eax, 2
add edx, 2
cmp byte [ebp - 0x15], 0
jne 0x409380
xor eax, eax
jmp 0x4093b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x409449
cmp esi, edi
jae 0x4095a2
mov eax, dword [ebp + 0xc]
lea edi, [esi + 2]
dec eax
lea ecx, [ebp - 0x14]
shr eax, 3
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [edi - 2]
lea esi, [edi - 2]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x20]
push esi
call fcn.00408ec0
movzx eax, byte [ebx]
lea edi, [edi + 8]
xor byte [esi], al
mov ecx, ebx
movzx eax, byte [ebx + 1]
xor byte [edi - 9], al
movzx eax, byte [ebx + 2]
xor byte [edi - 8], al
movzx eax, byte [ebx + 3]
xor byte [edi - 7], al
movzx eax, byte [ebx + 4]
xor byte [edi - 6], al
movzx eax, byte [ebx + 5]
xor byte [edi - 5], al
movzx eax, byte [ebx + 6]
xor byte [edi - 4], al
movzx eax, byte [ebx + 7]
xor byte [edi - 3], al
sub dword [ebp - 0x24], 1
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
jne 0x4093d6
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
mov edx, ecx
mov eax, 0x42d960
mov cl, byte [eax]
cmp cl, byte [edx]
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp + 0x10]
jne 0x409480
cmp byte [ebp - 0x15], 0
je 0x40947c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
mov byte [ebp - 0x15], cl
mov ecx, dword [ebp + 0x10]
jne 0x409480
add eax, 2
add edx, 2
cmp byte [ebp - 0x15], 0
jne 0x409450
xor eax, eax
jmp 0x409485
sbb eax, eax
or eax, 1
test eax, eax
jne 0x409515
cmp esi, edi
jae 0x4095a2
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
add esi, 2
lea edi, [edi - 1]
shr edi, 3
inc edi
mov eax, dword [esi - 2]
mov dword [ecx], eax
mov eax, dword [esi + 2]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x20]
push ebx
call fcn.00408fe0
movzx eax, byte [ebx]
lea esi, [esi + 8]
xor byte [esi - 0xa], al
mov ecx, ebx
movzx eax, byte [ebx + 1]
xor byte [esi - 9], al
movzx eax, byte [ebx + 2]
xor byte [esi - 8], al
movzx eax, byte [ebx + 3]
xor byte [esi - 7], al
movzx eax, byte [ebx + 4]
xor byte [esi - 6], al
movzx eax, byte [ebx + 5]
xor byte [esi - 5], al
movzx eax, byte [ebx + 6]
xor byte [esi - 4], al
movzx eax, byte [ebx + 7]
xor byte [esi - 3], al
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], ecx
sub edi, 1
jne 0x4094a5
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
mov eax, 0x42d964
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x409540
test dl, dl
je 0x40953c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x409540
add eax, 2
add ecx, 2
test dl, dl
jne 0x409520
xor eax, eax
jmp 0x409545
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4095b7
cmp esi, edi
jae 0x4095a2
mov edi, dword [ebp + 0xc]
add esi, 2
lea edi, [edi - 1]
shr edi, 3
inc edi
nop word [eax + eax]
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0xc]
push eax
call fcn.00408fe0
mov eax, dword [ebp - 0xc]
lea esi, [esi + 8]
xor byte [esi - 0xa], al
xor byte [esi - 9], ah
movzx eax, byte [ebp - 0xa]
xor byte [esi - 8], al
movzx eax, byte [ebp - 9]
xor byte [esi - 7], al
mov eax, dword [ebp - 8]
xor byte [esi - 6], al
xor byte [esi - 5], ah
movzx eax, byte [ebp - 6]
xor byte [esi - 4], al
movzx eax, byte [ebp - 5]
xor byte [esi - 3], al
sub edi, 1
jne 0x409560
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 4]
mov eax, 0xfffffffd
pop edi
pop ebx
xor ecx, ebp
pop esi
call fcn.00425b22
mov esp, ebp
pop ebp
ret 0x10