Function at 0x4de136
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x603ff8], 0
jne 0x4de151
call fcn.004ddda8
mov dword [0x603ff8], 1
push ebx
mov ebx, dword [ebp + 0x10]
mov eax, ebx
sub eax, 0x80
je 0x4de180
sub eax, 0x40
je 0x4de176
sub eax, 0x40
je 0x4de172
mov eax, 0xfffff800
jmp 0x4de3c2
push 0xe
jmp 0x4de178
push 0xc
mov edx, dword [ebp + 8]
pop eax
mov dword [edx], eax
jmp 0x4de18c
mov edx, dword [ebp + 8]
push 0xa
pop eax
mov dword [edx], 0xa
push esi
sar ebx, 5
lea esi, [edx + 8]
mov dword [edx + 4], esi
push edi
test ebx, ebx
jle 0x4de1d1
mov edi, dword [ebp + 0xc]
add edi, 2
xor edx, edx
movzx ecx, byte [edi + 1]
movzx eax, byte [edi]
lea edi, [edi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi - 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi - 6]
shl ecx, 8
or ecx, eax
mov dword [esi + edx*4], ecx
inc edx
cmp edx, ebx
jl 0x4de1a3
mov edx, dword [ebp + 8]
mov eax, dword [edx]
sub eax, 0xa
je 0x4de34e
dec eax
sub eax, 1
je 0x4de2ca
dec eax
sub eax, 1
jne 0x4de3be
mov edx, dword [esi]
lea edi, [esi + 0x1f]
mov ecx, 0x603fd0
mov dword [ebp + 0x10], ecx
mov ebx, dword [edi - 3]
movzx eax, bl
movzx esi, byte [eax + 0x601dd0]
movzx eax, byte [edi]
lea edi, [edi + 0x20]
shl esi, 8
movzx eax, byte [eax + 0x601dd0]
xor esi, eax
movzx eax, byte [edi - 0x21]
shl esi, 8
movzx eax, byte [eax + 0x601dd0]
xor esi, eax
movzx eax, byte [edi - 0x22]
shl esi, 8
movzx eax, byte [eax + 0x601dd0]
xor esi, eax
mov eax, dword [edi - 0x3b]
xor esi, dword [ecx]
mov ecx, dword [edi - 0x37]
xor esi, edx
mov edx, dword [edi - 0x33]
xor eax, esi
xor ecx, eax
mov dword [edi - 0x1b], eax
xor edx, ecx
mov dword [edi - 0x17], ecx
mov dword [edi - 0x13], edx
movzx eax, byte [edi - 0x10]
mov dword [edi - 0x1f], esi
movzx ecx, byte [eax + 0x601dd0]
movzx eax, byte [edi - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0x601dd0]
xor ecx, eax
movzx eax, byte [edi - 0x12]
shl ecx, 8
movzx eax, byte [eax + 0x601dd0]
xor ecx, eax
movzx eax, dl
shl ecx, 8
mov edx, esi
movzx eax, byte [eax + 0x601dd0]
xor ecx, eax
mov eax, dword [edi - 0x2b]
xor ecx, dword [edi - 0x2f]
xor eax, ecx
mov dword [edi - 0xf], ecx
mov ecx, dword [edi - 0x27]
xor ecx, eax
mov dword [edi - 0xb], eax
mov dword [edi - 7], ecx
xor ecx, ebx
mov dword [edi - 3], ecx
mov ecx, dword [ebp + 0x10]
add ecx, 4
mov dword [ebp + 0x10], ecx
cmp ecx, 0x603fec
jl 0x4de1fb
jmp 0x4de3be
mov ecx, dword [esi]
lea edi, [esi + 0x17]
mov ebx, 0x603fd0
mov edx, dword [edi - 3]
movzx eax, dl
movzx esi, byte [eax + 0x601dd0]
movzx eax, byte [edi]
lea edi, [edi + 0x18]
shl esi, 8
movzx eax, byte [eax + 0x601dd0]
xor esi, eax
movzx eax, byte [edi - 0x19]
shl esi, 8
movzx eax, byte [eax + 0x601dd0]
xor esi, eax
movzx eax, byte [edi - 0x1a]
shl esi, 8
movzx eax, byte [eax + 0x601dd0]
xor esi, eax
mov eax, dword [edi - 0x2b]
xor esi, dword [ebx]
add ebx, 4
xor esi, ecx
mov ecx, dword [edi - 0x27]
xor eax, esi
mov dword [edi - 0x17], esi
xor ecx, eax
mov dword [edi - 0x13], eax
mov eax, dword [edi - 0x23]
xor eax, ecx
mov dword [edi - 0xf], ecx
mov ecx, dword [edi - 0x1f]
xor ecx, eax
mov dword [edi - 0xb], eax
mov dword [edi - 7], ecx
xor ecx, edx
mov dword [edi - 3], ecx
mov ecx, esi
cmp ebx, 0x603ff0
jl 0x4de2d4
jmp 0x4de3be
mov edi, dword [esi]
mov ebx, 0x603fd0
add esi, 0xf
mov edx, dword [esi - 3]
movzx eax, dl
movzx ecx, byte [eax + 0x601dd0]
movzx eax, byte [esi]
lea esi, [esi + 0x10]
shl ecx, 8
movzx eax, byte [eax + 0x601dd0]
xor ecx, eax
movzx eax, byte [esi - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0x601dd0]
xor ecx, eax
movzx eax, byte [esi - 0x12]
shl ecx, 8
movzx eax, byte [eax + 0x601dd0]
xor ecx, eax
mov eax, dword [esi - 0x1b]
xor edi, ecx
mov ecx, dword [esi - 0x17]
xor edi, dword [ebx]
add ebx, 4
xor eax, edi
mov dword [esi - 0xf], edi
xor ecx, eax
mov dword [esi - 0xb], eax
mov dword [esi - 7], ecx
xor ecx, edx
mov dword [esi - 3], ecx
cmp ebx, 0x603ff8
jl 0x4de358
pop edi
xor eax, eax
pop esi
pop ebx
pop ebp
ret