Function at 0x4d07f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
test esi, esi
je 0x4d0d39
cmp dword [ebp + 0x14], 0
je 0x4d0d39
push 1
pop edi
push edi
call fcn.004da095
movzx eax, al
sub eax, 0
pop ecx
je 0x4d09de
dec eax
jne 0x4d0a46
push esi
call fcn.004d99a2
mov ebx, eax
pop ecx
cmp ebx, edi
jne 0x4d087f
mov esi, 0x1004b0f2
push 0x1004c9e8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d0863
push 0x1004c9e4
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0971
lea eax, [ebp - 4]
push eax
push edi
call fcn.004f4d34
test eax, eax
je 0x4d0c93
push 0x1013
jmp 0x4d0d3e
cmp ebx, 2
jne 0x4d0971
mov esi, 0x1004b0f2
push 0x1004c9e8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d08b3
push 0x1004c9e4
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0971
sub esp, 0x2c
mov ebx, 0x1004b198
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9edb
add esp, 0x2c
test al, al
je 0x4d0c44
lea eax, [ebp - 4]
push eax
push 1
call fcn.004f4d34
test eax, eax
jne 0x4d0875
sub esp, 0x2c
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
add esp, 0x2c
cmp eax, 0x64656d6f
je 0x4d090b
cmp dword [ebp - 4], 0x11121314
jne 0x4d0cdd
lea eax, [ebp - 4]
push 4
push eax
lea eax, [ebp - 0x1c]
push eax
call 0x503bf8
sub esp, 0x20
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push 4
push eax
lea eax, [ebp - 0x18]
push eax
call 0x503bf8
add esp, 0x38
lea eax, [ebp - 0x15]
push 8
pop esi
mov dl, byte [eax - 7]
lea ecx, [eax + 1]
xor dl, byte [eax]
dec esi
mov eax, ecx
mov byte [ecx], dl
jne 0x4d0946
lea eax, [ebp - 0x1c]
and byte [ebp - 0xc], 0
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push 1
call fcn.004dba85
push 0
jmp 0x4d0d2f
lea eax, [ebp - 4]
push eax
push edi
call fcn.004f4d34
test eax, eax
jne 0x4d0875
sub esp, 0x2c
mov esi, 0x1004b198
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
add esp, 0x2c
cmp eax, 0x111213
je 0x4d09ae
cmp dword [ebp - 4], 0x1415
jne 0x4d0cdd
mov ax, word [ebp + 0xc]
and dword [ebp - 0x44], 0
mov word [ebp - 0x40], ax
mov dword [ebp - 0x48], 0x2c
movzx eax, word [ebp + 0x10]
push eax
lea eax, [ebp - 0x48]
push dword [ebp + 0x14]
push eax
push ebx
call fcn.004f537e
push eax
call fcn.004da2b2
jmp 0x4d0b8d
push 2
call fcn.004da095
test al, al
pop ecx
jne 0x4d09f4
push 0x1011
jmp 0x4d0d3e
push 0x1004cbf8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d0a1a
push 0x1004cbe8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0d39
movzx eax, word [0x1004b0f0]
imul eax, eax, 0x98
movzx eax, byte [eax + 0x10055bc0]
dec eax
je 0x4d0d1f
dec eax
je 0x4d0c27
dec eax
je 0x4d0b39
dec eax
je 0x4d0a50
push 0x1034
jmp 0x4d0d3e
sub esp, 0x2c
mov ebx, 0x1004b198
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9edb
add esp, 0x2c
test al, al
je 0x4d0c44
push 0
lea eax, [ebp - 4]
push 1
push eax
mov al, byte [0x1004b1a8]
push eax
push ebx
movzx eax, word [0x1004b0f0]
imul eax, eax, 0x98
push dword [eax + 0x10055c48]
call fcn.004ed778
add esp, 0x18
test ax, ax
je 0x4d0aab
push eax
call fcn.004da20c
jmp 0x4d0b8d
push 0x1004cbe8
push dword [ebp + 8]
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d0c93
sub esp, 0x2c
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
add esp, 0x2c
cmp eax, 0x64656d6f
je 0x4d0aea
cmp dword [ebp - 4], 0x11121314
jne 0x4d0cdd
lea eax, [ebp - 4]
push 4
push eax
lea eax, [ebp - 0x1c]
push eax
call 0x503bf8
sub esp, 0x20
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push 4
push eax
lea eax, [ebp - 0x18]
push eax
call 0x503bf8
add esp, 0x38
lea eax, [ebp - 0x15]
push 8
pop esi
mov dl, byte [eax - 7]
lea ecx, [eax + 1]
xor dl, byte [eax]
dec esi
mov eax, ecx
mov byte [ecx], dl
jne 0x4d0b25
jmp 0x4d0955
sub esp, 0x2c
mov ebx, 0x1004b198
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9edb
add esp, 0x2c
test al, al
je 0x4d0c44
lea eax, [ebp - 4]
push 1
push eax
mov al, byte [0x1004b1a8]
push eax
push ebx
movzx eax, word [0x1004b0f0]
imul eax, eax, 0x98
push dword [eax + 0x10055c48]
call fcn.004eb4f8
add esp, 0x14
test ax, ax
je 0x4d0b99
push eax
call fcn.004da13f
push eax
call fcn.004d9848
pop ecx
jmp 0x4d0d43
push 0x1004cbe8
push dword [ebp + 8]
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d0c93
sub esp, 0x2c
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
add esp, 0x2c
cmp eax, 0x64656d6f
je 0x4d0bd8
cmp dword [ebp - 4], 0x11121314
jne 0x4d0cdd
lea eax, [ebp - 4]
push 4
push eax
lea eax, [ebp - 0x1c]
push eax
call 0x503bf8
sub esp, 0x20
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push 4
push eax
lea eax, [ebp - 0x18]
push eax
call 0x503bf8
add esp, 0x38
lea eax, [ebp - 0x15]
push 8
pop esi
mov dl, byte [eax - 7]
lea ecx, [eax + 1]
xor dl, byte [eax]
dec esi
mov eax, ecx
mov byte [ecx], dl
jne 0x4d0c13
jmp 0x4d0955
sub esp, 0x2c
mov ebx, 0x1004b198
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9edb
add esp, 0x2c
test al, al
jne 0x4d0c4e
push 0x1022
jmp 0x4d0d3e
sub esp, 0x2c
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push 1
push eax
lea eax, [ebp - 8]
push eax
call fcn.004e9b38
add esp, 0x38
test ax, ax
jne 0x4d0875
push 0x1004cbe8
push dword [ebp + 8]
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0cb9
movzx eax, word [ebp + 0xc]
push dword [ebp + 0x14]
or eax, dword [ebp - 4]
push dword [ebp + 0x10]
push eax
call fcn.004dbce2
add esp, 0xc
test ax, ax
jne 0x4d0875
push 0
jmp 0x4d0d3e
sub esp, 0x2c
mov esi, ebx
push 0xb
pop ecx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call fcn.004d9e9b
add esp, 0x2c
cmp eax, 0x64656d6f
je 0x4d0ce4
cmp dword [ebp - 4], 0x11121314
je 0x4d0ce4
push 0x1062
jmp 0x4d0d3e
lea eax, [ebp - 4]
push 4
push eax
lea eax, [ebp - 0x1c]
push eax
call 0x503bf8
lea eax, [ebp - 8]
push 4
push eax
lea eax, [ebp - 0x18]
push eax
call 0x503bf8
add esp, 0x18
lea eax, [ebp - 0x15]
push 8
pop esi
mov dl, byte [eax - 7]
lea ecx, [eax + 1]
xor dl, byte [eax]
dec esi
mov eax, ecx
mov byte [ecx], dl
jne 0x4d0d0b
jmp 0x4d0955
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.004d63d3
push eax
call fcn.004d9848
add esp, 0x14
jmp 0x4d0d44
push 0x1021
call fcn.004d9848
pop ecx
pop edi
pop esi
pop ebx
leave
ret