Function at 0x1004e280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x100de428]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [0x100de42c]
mov dword [ebp - 0x1c], eax
push esi
mov esi, ecx
mov dword [ebp - 0x14], esi
push edi
test edx, edx
je 0x1004e60b
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x1004e60b
mov cl, byte [ebp + 0xc]
test cl, cl
je 0x1004e2ca
cmp cl, 1
je 0x1004e2ca
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
cmp eax, 0x80
je 0x1004e2ef
cmp eax, 0xc0
je 0x1004e2ef
cmp eax, 0x100
je 0x1004e2ef
pop edi
mov eax, 0xfffffffe
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov byte [edx], cl
movzx eax, byte [edi]
cdq
mov ecx, eax
movzx eax, byte [edi + 1]
push ebx
mov ebx, edx
cdq
shld ebx, ecx, 8
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 2]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 3]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 4]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 5]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 6]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 7]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
mov dword [ebp + 0xc], ebx
movzx eax, byte [edi + 9]
cdq
mov dword [ebp - 0xc], ecx
mov ebx, edx
mov ecx, eax
movzx eax, byte [edi + 8]
cdq
shld edx, eax, 8
shl eax, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 0xa]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 0xb]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 0xc]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 0xd]
shld ebx, ecx, 8
shl ecx, 8
cdq
or ecx, eax
or ebx, edx
movzx eax, byte [edi + 0xe]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
movzx eax, byte [edi + 0xf]
shld ebx, ecx, 8
cdq
shl ecx, 8
or ebx, edx
or ecx, eax
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x10], 0x80
mov dword [ebp - 8], ecx
jne 0x1004e433
mov edi, dword [ebp - 0xc]
lea eax, [ebp - 0x24]
push edi
push dword [ebp + 0xc]
push ecx
push ebx
push eax
mov ecx, esi
call fcn.1004df30
push dword [ebp - 8]
push dword [ebp - 4]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], ecx
push edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.1004df30
mov ecx, dword [eax]
mov edi, dword [eax + 4]
jmp 0x1004e542
movzx eax, byte [edi + 0x11]
cdq
mov ebx, eax
mov ecx, edx
movzx eax, byte [edi + 0x10]
cdq
shld edx, eax, 8
or ecx, edx
shl eax, 8
or ebx, eax
movzx eax, byte [edi + 0x12]
shld ecx, ebx, 8
cdq
shl ebx, 8
or ecx, edx
or ebx, eax
movzx eax, byte [edi + 0x13]
shld ecx, ebx, 8
cdq
shl ebx, 8
or ecx, edx
or ebx, eax
movzx eax, byte [edi + 0x14]
shld ecx, ebx, 8
cdq
shl ebx, 8
or ecx, edx
or ebx, eax
movzx eax, byte [edi + 0x15]
shld ecx, ebx, 8
cdq
shl ebx, 8
or ecx, edx
or ebx, eax
movzx eax, byte [edi + 0x16]
shld ecx, ebx, 8
cdq
shl ebx, 8
or ecx, edx
or ebx, eax
movzx eax, byte [edi + 0x17]
shld ecx, ebx, 8
cdq
shl ebx, 8
or ecx, edx
or ebx, eax
mov dword [ebp - 0x10], ecx
cmp dword [ebp + 0x10], 0xc0
jne 0x1004e4c6
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0xc]
jmp 0x1004e41b
movzx eax, byte [edi + 0x18]
mov esi, dword [ebp + 0x14]
cdq
mov edi, eax
mov ecx, edx
shld ecx, edi, 8
movzx eax, byte [esi + 0x19]
shl edi, 8
cdq
or edi, eax
or ecx, edx
movzx eax, byte [esi + 0x1a]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [esi + 0x1b]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [esi + 0x1c]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [esi + 0x1d]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [esi + 0x1e]
shld ecx, edi, 8
cdq
shl edi, 8
or ecx, edx
or edi, eax
movzx eax, byte [esi + 0x1f]
shld ecx, edi, 8
cdq
shl edi, 8
or edi, eax
or ecx, edx
mov esi, dword [ebp + 8]
mov dword [ebp + 0x10], ecx
inc esi
mov dword [ebp + 0x14], 0x30
push dword [ebp - 8]
lea eax, [ebp - 0x24]
push dword [ebp - 4]
push edi
push ecx
mov ecx, dword [ebp - 0x14]
push eax
call fcn.1004d260
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x2c]
push eax
call fcn.1004d260
mov ecx, dword [ebp - 0x14]
push ebx
push dword [ebp - 0x10]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x34]
push eax
call fcn.1004df30
mov ecx, dword [eax]
mov eax, dword [eax + 4]
xor eax, dword [ebp - 0xc]
xor ecx, dword [ebp + 0xc]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 8]
mov dword [esi], ecx
push dword [0x100de42c]
mov dword [ebp - 0xc], eax
push dword [0x100de428]
mov eax, dword [ebp - 0x10]
push dword [ebp - 0x1c]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x18]
mov dword [ebp - 0x10], eax
mov eax, ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 8], ebx
mov ebx, edi
mov edi, dword [esi + 4]
push eax
call fcn.1004d260
dec dword [ebp + 0x14]
lea esi, [esi + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
jne 0x1004e550
pop ebx
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0x10
pop edi
mov eax, 0xfffffffd
pop esi
mov esp, ebp
pop ebp
ret 0x10