Function at 0x4d7df0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
push ebp
call fcn.004bbe10
push 0xe
push ebp
mov esi, eax
call fcn.004bb4a0
add esp, 0xc
cmp eax, 0xdead
je 0x4d7e24
push 0x14
push ebp
call fcn.004bb4a0
add esp, 8
cmp eax, 0x2655
jne 0x4d7e4c
test esi, esi
je 0x4d7e4c
cmp byte [esi], 0
je 0x4d7e4c
push 0
push str.demo
push esi
call fcn.00414c70
add esp, 0xc
test eax, eax
jne 0x4d7e4c
push 0x1b
push ebp
call fcn.004bb4a0
add esp, 8
push 0
push 8
push 0
push 0x595f3c
call fcn.00414af0
mov esi, dword [esp + 0x2c]
add esp, 0x10
mov eax, esi
cdq
and edx, 7
lea edi, [edx + eax]
mov eax, dword [ebp + 0x1b0]
sar edi, 3
cmp dword [eax + 0xcf4], 0
jne 0x4d7ea9
mov dword [eax + 0xcf4], 0x113e
mov eax, dword [ebp + 0x1b0]
push dword [eax + 0xcf4]
push ebp
call fcn.004bad00
mov ecx, dword [ebp + 0x1b0]
add esp, 8
mov dword [ecx + 0xcf0], eax
mov eax, esi
and eax, 0x80000007
jns 0x4d7eb7
dec eax
or eax, 0xfffffff8
inc eax
je 0x4d7f37
mov eax, dword [ebp + 0x1b0]
lea ecx, [esi + 8]
inc edi
mov dword [esp + 0x14], ecx
mov ebx, dword [eax + 0xcf0]
cmp dword [eax + 0xcf4], ecx
jge 0x4d7f0f
push ebx
call fcn.004bace0
mov eax, dword [ebp + 0x1b0]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0xcf4], ecx
mov esi, dword [ebp + 0x1b0]
push dword [esi + 0xcf4]
call fcn.00444a76
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov dword [esi + 0xcf0], ebx
add esp, 8
mov esi, dword [esp + 0x1c]
test ebx, ebx
jne 0x4d7f1a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push 0
push ecx
push 0
push ebx
call fcn.00414af0
push 0
push esi
push dword [esp + 0x30]
push ebx
call fcn.00414a10
add esp, 0x20
jmp 0x4d7f3b
mov ebx, dword [esp + 0x18]
test edi, edi
jle 0x4d7fa4
lea esi, [ebx + 2]
movzx eax, byte [esi - 2]
xor byte [0x595f3c], al
movzx eax, byte [esi - 1]
xor byte [0x595f3d], al
movzx eax, byte [esi]
xor byte [0x595f3e], al
movzx eax, byte [esi + 1]
xor byte [0x595f3f], al
movzx eax, byte [esi + 2]
xor byte [0x595f40], al
movzx eax, byte [esi + 3]
xor byte [0x595f41], al
movzx eax, byte [esi + 4]
xor byte [0x595f42], al
movzx eax, byte [esi + 5]
xor byte [0x595f43], al
push 0x595f3c
call fcn.004d8b70
add esp, 4
lea esi, [esi + 8]
dec edi
jne 0x4d7f42
mov esi, dword [esp + 0x24]
cmp esi, 0x66d8b337
jne 0x4d8083
movzx ecx, byte [0x595f43]
movsx ebx, cl
and ebx, 1
movsx eax, cl
and eax, 2
shl ebx, 7
shl eax, 5
or bl, al
movsx eax, cl
and eax, 4
shl eax, 3
or bl, al
movsx eax, cl
and eax, 8
add eax, eax
or bl, al
movsx eax, cl
and eax, 0x10
shr eax, 1
or bl, al
movsx eax, cl
and eax, 0x20
shr eax, 3
or bl, al
movsx eax, cl
and eax, 0x40
shr eax, 5
or bl, al
test cl, 0x80
movzx ecx, byte [0x595f42]
mov eax, 0
setne al
movsx edx, cl
or bl, al
mov word [0x595f42], 0
and edx, 1
movsx eax, cl
and eax, 2
shl edx, 7
shl eax, 5
or dl, al
movsx eax, cl
and eax, 4
shl eax, 3
or dl, al
movsx eax, cl
and eax, 8
add eax, eax
or dl, al
movsx eax, cl
and eax, 0x10
shr eax, 1
or dl, al
movsx eax, cl
and eax, 0x20
shr eax, 3
or dl, al
movsx eax, cl
and eax, 0x40
shr eax, 5
or dl, al
test cl, 0x80
mov eax, 0
setne al
add byte [0x595f3c], bl
or dl, al
add byte [0x595f3d], dl
push esi
push 0x595f3c
push ebp
call fcn.004d6aa0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
ret