Function at 0x4d0297
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 0x4d07e0
cmp dword [ebp + 0x14], 0
je 0x4d07e0
push 1
pop edi
push edi
call fcn.004da095
movzx eax, al
sub eax, 0
pop ecx
je 0x4d0485
dec eax
jne 0x4d04ed
push esi
call fcn.004d99a2
mov ebx, eax
pop ecx
cmp ebx, edi
jne 0x4d0326
mov esi, 0x1004b0f2
push 0x1004c9e8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d030a
push 0x1004c9e4
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0418
lea eax, [ebp - 4]
push eax
push edi
call fcn.004f4d34
test eax, eax
je 0x4d073a
push 0x1013
jmp 0x4d07e5
cmp ebx, 2
jne 0x4d0418
mov esi, 0x1004b0f2
push 0x1004c9e8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d035a
push 0x1004c9e4
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0418
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 0x4d06eb
lea eax, [ebp - 4]
push eax
push 1
call fcn.004f4d34
test eax, eax
jne 0x4d031c
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 0x4d03b2
cmp dword [ebp - 4], 0x11121314
jne 0x4d0784
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 0x4d03ed
lea eax, [ebp - 0x1c]
and byte [ebp - 0xc], 0
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x14]
push 0
call fcn.004dba9e
push 0
jmp 0x4d07d6
lea eax, [ebp - 4]
push eax
push edi
call fcn.004f4d34
test eax, eax
jne 0x4d031c
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 0x4d0455
cmp dword [ebp - 4], 0x1415
jne 0x4d0784
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.004f51e9
push eax
call fcn.004da2b2
jmp 0x4d0634
push 2
call fcn.004da095
test al, al
pop ecx
jne 0x4d049b
push 0x1011
jmp 0x4d07e5
push 0x1004cbf8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d04c1
push 0x1004cbe8
push esi
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d07e0
movzx eax, word [0x1004b0f0]
imul eax, eax, 0x98
movzx eax, byte [eax + 0x10055bc0]
dec eax
je 0x4d07c6
dec eax
je 0x4d06ce
dec eax
je 0x4d05e0
dec eax
je 0x4d04f7
push 0x1034
jmp 0x4d07e5
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 0x4d06eb
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 0x4d0552
push eax
call fcn.004da20c
jmp 0x4d0634
push 0x1004cbe8
push dword [ebp + 8]
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d073a
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 0x4d0591
cmp dword [ebp - 4], 0x11121314
jne 0x4d0784
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 0x4d05cc
jmp 0x4d03fc
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 0x4d06eb
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 0x4d0640
push eax
call fcn.004da13f
push eax
call fcn.004d9848
pop ecx
jmp 0x4d07ea
push 0x1004cbe8
push dword [ebp + 8]
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
je 0x4d073a
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 0x4d067f
cmp dword [ebp - 4], 0x11121314
jne 0x4d0784
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 0x4d06ba
jmp 0x4d03fc
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 0x4d06f5
push 0x1022
jmp 0x4d07e5
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 0x4d031c
push 0x1004cbe8
push dword [ebp + 8]
call 0x50c9a8
pop ecx
test eax, eax
pop ecx
jne 0x4d0760
movzx eax, word [ebp + 0xc]
push dword [ebp + 0x14]
or eax, dword [ebp - 4]
push dword [ebp + 0x10]
push eax
call fcn.004dbc40
add esp, 0xc
test ax, ax
jne 0x4d031c
push 0
jmp 0x4d07e5
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 0x4d078b
cmp dword [ebp - 4], 0x11121314
je 0x4d078b
push 0x1062
jmp 0x4d07e5
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 0x4d07b2
jmp 0x4d03fc
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.004d608e
push eax
call fcn.004d9848
add esp, 0x14
jmp 0x4d07eb
push 0x1021
call fcn.004d9848
pop ecx
pop edi
pop esi
pop ebx
leave
ret