Function at 0x40907b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x300
xor edx, edx
push ebx
push esi
push edi
xor ebx, ebx
mov edi, 0x11b
inc edx
mov eax, edx
mov byte [ebp + ebx - 0x300], dl
and al, 0x80
mov byte [ebp + ebx - 0x201], dl
mov byte [ebp + edx - 0x100], bl
inc ebx
movzx ecx, al
lea eax, [edx + edx]
neg ecx
sbb ecx, ecx
and ecx, edi
xor ecx, eax
xor edx, ecx
cmp edx, 1
jne 0x409091
xor esi, esi
inc esi
xor edx, edx
mov eax, esi
mov dword [edx + 0x82bfa0], esi
and al, 0x80
movzx ecx, al
neg ecx
sbb ecx, ecx
add esi, esi
and ecx, edi
add edx, 4
xor esi, ecx
cmp edx, 0x74
jb 0x4090c5
xor ebx, ebx
test bl, bl
je 0x409102
movzx eax, bl
lea ecx, [ebp - 0x201]
movzx eax, byte [ebp + eax - 0x100]
sub ecx, eax
movzx ecx, byte [ecx]
jmp 0x409104
xor ecx, ecx
lea eax, [ecx + ecx]
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor eax, ecx
add eax, eax
xor ecx, eax
mov edx, ecx
shr edx, 8
xor dl, cl
xor dl, 0x63
je 0x409136
movzx eax, dl
movzx eax, byte [ebp + eax - 0x100]
movzx esi, byte [ebp + eax - 0x2ff]
jmp 0x409138
xor esi, esi
test dl, dl
je 0x409151
movzx eax, dl
movzx eax, byte [ebp + eax - 0x100]
movzx eax, byte [ebp + eax - 0x2e7]
jmp 0x409153
xor eax, eax
shl esi, 8
movzx ecx, dl
or esi, ecx
mov dword [ebx*4 + 0x829fa0], ecx
shl esi, 8
or esi, ecx
shl esi, 8
or esi, eax
mov eax, esi
mov dword [ebx*4 + 0x82afa0], esi
rol eax, 8
mov dword [ebx*4 + 0x82b3a0], eax
mov eax, esi
rol eax, 0x10
mov dword [ebx*4 + 0x82b7a0], eax
mov eax, ecx
rol eax, 8
mov dword [ebx*4 + 0x82a3a0], eax
mov eax, ecx
ror ecx, 8
ror esi, 8
mov dword [ebx*4 + 0x82aba0], ecx
mov dword [ebx*4 + 0x82bba0], esi
movzx esi, bl
mov ecx, esi
rol eax, 0x10
shl ecx, 3
xor ecx, esi
mov dword [ebx*4 + 0x82a7a0], eax
shl ecx, 2
xor ecx, esi
add ecx, ecx
mov eax, ecx
shr eax, 8
xor al, cl
xor al, 5
je 0x409205
mov edx, esi
shl edx, 3
xor edx, esi
shl edx, 2
xor edx, esi
add edx, edx
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor ecx, eax
xor ecx, 5
movzx eax, byte [ebp + ecx - 0x100]
lea ecx, [ebp - 0x201]
sub ecx, eax
mov cl, byte [ecx]
jmp 0x409207
xor cl, cl
test cl, cl
je 0x409220
movzx eax, cl
movzx eax, byte [ebp + eax - 0x100]
movzx edi, byte [ebp + eax - 0x298]
jmp 0x409222
xor edi, edi
test cl, cl
je 0x40923b
movzx eax, cl
movzx eax, byte [ebp + eax - 0x100]
movzx esi, byte [ebp + eax - 0x212]
jmp 0x40923d
xor esi, esi
test cl, cl
je 0x409256
movzx eax, cl
movzx eax, byte [ebp + eax - 0x100]
movzx edx, byte [ebp + eax - 0x239]
jmp 0x409258
xor edx, edx
test cl, cl
je 0x409271
movzx eax, cl
movzx eax, byte [ebp + eax - 0x100]
movzx eax, byte [ebp + eax - 0x221]
jmp 0x409273
xor eax, eax
shl edi, 8
or edi, esi
movzx esi, cl
shl edi, 8
or edi, edx
mov dword [ebx*4 + 0x827fa0], esi
shl edi, 8
or edi, eax
mov eax, edi
mov dword [esi*4 + 0x826fa0], edi
ror eax, 8
mov edx, edi
mov dword [esi*4 + 0x827ba0], eax
mov ecx, edi
mov dword [ebx*4 + 0x829ba0], eax
mov eax, esi
rol eax, 8
rol edx, 8
rol ecx, 0x10
mov dword [ebx*4 + 0x8283a0], eax
mov eax, esi
rol eax, 0x10
mov dword [esi*4 + 0x8273a0], edx
mov dword [esi*4 + 0x8277a0], ecx
ror esi, 8
mov dword [ebx*4 + 0x828fa0], edi
mov dword [ebx*4 + 0x8293a0], edx
mov dword [ebx*4 + 0x8297a0], ecx
mov dword [ebx*4 + 0x8287a0], eax
mov dword [ebx*4 + 0x828ba0], esi
inc ebx
cmp ebx, 0x100
jb 0x4090e6
pop edi
pop esi
mov byte [0x425974], 1
pop ebx
mov esp, ebp
pop ebp
ret