Function at 0x415aa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x304
mov eax, dword [0x4d77ac]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
mov edx, 1
lea esp, [esp]
mov eax, edx
mov byte [ebp + ebx - 0x304], dl
and al, 0x80
mov byte [ebp + ebx - 0x205], dl
mov byte [ebp + edx - 0x104], bl
inc ebx
movsx ecx, al
lea eax, [edx + edx]
neg ecx
sbb ecx, ecx
and ecx, 0x11b
xor ecx, eax
xor edx, ecx
cmp edx, 1
jne 0x415ac0
mov ebx, edx
xor edx, edx
jmp 0x415b00
mov eax, ebx
mov byte [edx + 0x4e19d0], bl
and al, 0x80
movsx ecx, al
neg ecx
sbb ecx, ecx
add ebx, ebx
and ecx, 0x11b
inc edx
xor ebx, ecx
cmp edx, 0x1e
jb 0x415b00
xor eax, eax
test al, al
je 0x415b3f
movzx ecx, al
lea edx, [ebp - 0x205]
movzx ecx, byte [ebp + ecx - 0x104]
sub edx, ecx
movzx esi, byte [edx]
jmp 0x415b41
xor esi, esi
lea ecx, [esi + esi]
xor ecx, esi
add ecx, ecx
xor ecx, esi
add ecx, ecx
xor ecx, esi
add ecx, ecx
xor esi, ecx
mov edx, esi
xor edx, 0x6300
sar edx, 8
xor edx, esi
mov byte [eax + 0x4df3d0], dl
mov byte [eax*4 + 0x4dfcd1], dl
mov byte [eax*4 + 0x4dfcd0], dl
mov byte [eax*4 + 0x4df4d3], dl
mov byte [eax*4 + 0x4df4d0], dl
mov byte [eax*4 + 0x4e15d3], dl
mov byte [eax*4 + 0x4e15d2], dl
mov byte [eax*4 + 0x4defd2], dl
mov byte [eax*4 + 0x4defd1], dl
test dl, dl
je 0x415bb6
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x2eb]
jmp 0x415bb8
xor ecx, ecx
mov byte [eax*4 + 0x4dfcd3], cl
mov byte [eax*4 + 0x4df4d2], cl
mov byte [eax*4 + 0x4e15d1], cl
mov byte [eax*4 + 0x4defd0], cl
test dl, dl
je 0x415bed
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x303]
jmp 0x415bef
xor ecx, ecx
movzx esi, al
mov byte [eax*4 + 0x4dfcd2], cl
mov byte [eax*4 + 0x4df4d1], cl
mov byte [eax*4 + 0x4e15d0], cl
lea edx, [esi*8]
mov byte [eax*4 + 0x4defd3], cl
xor edx, esi
shl edx, 2
xor edx, esi
add edx, edx
mov ecx, edx
sar ecx, 8
xor cl, dl
xor cl, 5
je 0x415c5e
lea ebx, [esi*8]
xor ebx, esi
shl ebx, 2
xor ebx, esi
add ebx, ebx
mov ecx, ebx
sar ecx, 8
movzx edx, cl
movzx ecx, bl
xor edx, ecx
xor edx, 5
movzx ecx, byte [ebp + edx - 0x104]
lea edx, [ebp - 0x205]
sub edx, ecx
mov bl, byte [edx]
jmp 0x415c60
xor bl, bl
mov byte [eax + 0x4e10d0], bl
test bl, bl
je 0x415c7f
movzx ecx, bl
movzx ecx, byte [ebp + ecx - 0x104]
movzx ecx, byte [ebp + ecx - 0x29c]
jmp 0x415c81
xor ecx, ecx
movzx edx, bl
mov byte [eax*4 + 0x4e04d2], cl
mov byte [eax*4 + 0x4e19f1], cl
mov byte [eax*4 + 0x4e11d0], cl
mov byte [eax*4 + 0x4df8d3], cl
mov byte [edx*4 + 0x4e08d2], cl
mov byte [edx*4 + 0x4e0cd1], cl
mov byte [edx*4 + 0x4e00d0], cl
mov byte [edx*4 + 0x4debd3], cl
test bl, bl
je 0x415cd2
movzx ecx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + ecx - 0x23d]
jmp 0x415cd4
xor ecx, ecx
mov byte [eax*4 + 0x4e04d0], cl
mov byte [eax*4 + 0x4e19f3], cl
mov byte [eax*4 + 0x4e11d2], cl
mov byte [eax*4 + 0x4df8d1], cl
mov byte [edx*4 + 0x4e08d0], cl
mov byte [edx*4 + 0x4e0cd3], cl
mov byte [edx*4 + 0x4e00d2], cl
mov byte [edx*4 + 0x4debd1], cl
test bl, bl
je 0x415d22
movzx ecx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + ecx - 0x216]
jmp 0x415d24
xor ecx, ecx
mov byte [eax*4 + 0x4e04d1], cl
mov byte [eax*4 + 0x4e19f0], cl
mov byte [eax*4 + 0x4e11d3], cl
mov byte [eax*4 + 0x4df8d2], cl
mov byte [edx*4 + 0x4e08d1], cl
mov byte [edx*4 + 0x4e0cd0], cl
mov byte [edx*4 + 0x4e00d3], cl
mov byte [edx*4 + 0x4debd2], cl
test bl, bl
je 0x415d72
movzx ecx, byte [ebp + edx - 0x104]
movzx ecx, byte [ebp + ecx - 0x225]
jmp 0x415d74
xor ecx, ecx
mov byte [eax*4 + 0x4e04d3], cl
mov byte [eax*4 + 0x4e19f2], cl
mov byte [eax*4 + 0x4e11d1], cl
mov byte [eax*4 + 0x4df8d0], cl
inc eax
mov byte [edx*4 + 0x4e08d3], cl
mov byte [edx*4 + 0x4e0cd2], cl
mov byte [edx*4 + 0x4e00d1], cl
mov byte [edx*4 + 0x4debd0], cl
cmp eax, 0x100
jl 0x415b23
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00493864
mov esp, ebp
pop ebp
ret