Function at 0x448ed2
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [0x511dc8], 0x4495c3
mov dword [0x511dcc], 0x4491d4
mov dword [0x511dbc], 0x449410
mov dword [0x511db8], 0x449576
mov dword [0x511de4], 0x449754
mov dword [0x511dd4], 0x44975b
mov dword [0x511db0], 0x44976a
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
cmp edx, 1
jne 0x448f85
mov ecx, dword [edi + 8]
lea edx, [edi - 8]
mov eax, cr3
mov dword [0x511d98], eax
mov eax, dword [edi + 0x10]
add eax, dword [edi + 4]
add edx, eax
test ecx, ecx
je 0x448f58
cmp dword [edx + 0x24], 0xd0000007
je 0x448f58
add edx, dword [edi + 0xc]
sub ecx, 1
jne 0x448f47
mov ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
shld eax, ecx, 0xc
mov eax, dword [edx + 0x1c]
shl ecx, 0xc
mov dword [0x511dc0], ecx
mov ecx, dword [edx + 0x18]
shld eax, ecx, 0xc
shl ecx, 0xc
xor eax, eax
mov dword [0x511dd8], ecx
jmp 0x4491cf
test edx, edx
je 0x448f93
mov eax, 0xc0000002
jmp 0x4491cf
xor ebx, ebx
lea ecx, [ebp - 0x10]
push ebx
push ebx
push ebx
push ebx
push ebx
push 5
mov edx, 0xd0000006
mov dword [0x511d98], ebx
mov dword [0x511da8], ebx
mov dword [0x511dac], ebx
mov dword [0x511dc0], ebx
call fcn.0044380d
mov esi, eax
test esi, esi
js 0x449194
mov ebx, dword [ebp - 0x10]
push 0x5000
push 0
push ebx
mov dword [0x511d98], ebx
call fcn.004c2a80
mov edx, dword [ebp - 0xc]
mov edi, ebx
shrd edi, edx, 0xc
add esp, 0xc
shr edx, 0xc
add edi, 1
adc edx, 0
xor esi, esi
mov eax, edi
mov ecx, edx
shld ecx, eax, 0xc
xor ecx, dword [ebx + esi*8 + 4]
shl eax, 0xc
and ecx, 0x3f
xor eax, dword [ebx + esi*8]
xor ecx, dword [ebx + esi*8 + 4]
and eax, 0xfffff000
xor eax, dword [ebx + esi*8]
or eax, 1
mov dword [ebx + esi*8 + 4], ecx
mov dword [ebx + esi*8], eax
inc esi
add edi, 1
adc edx, 0
cmp esi, 4
jb 0x448ff8
push ecx
push ecx
mov ecx, 0x511da8
call fcn.004444e2
mov edi, dword [ebp - 4]
mov esi, eax
test esi, esi
js 0x449192
push 0x800000
push 0
push dword [0x511da8]
call fcn.004c2a80
mov edx, dword [0x511da8]
add ebx, 0x1000
mov esi, edx
mov ecx, edx
shr esi, 0x15
and ecx, 0xc0000000
and esi, 0x1ff
shr edx, 0x1e
add edx, esi
mov eax, esi
shl esi, 0x15
add esp, 0xc
or esi, ecx
shl edx, 0x15
mov dword [0x511dd0], esi
add edx, ecx
shr esi, 0x15
shl eax, 0xc
or edx, eax
mov dword [0x511dc4], edx
lea edx, [ebx + esi*8]
mov esi, dword [0x511d98]
push 4
sub esi, edx
pop ebx
mov ecx, dword [esi + edx]
xor ecx, dword [edx]
mov eax, dword [esi + edx + 4]
and ecx, 0xfffff000
xor eax, dword [edx + 4]
xor ecx, dword [edx]
and eax, 0x3f
xor dword [edx + 4], eax
or ecx, 3
mov dword [edx], ecx
lea edx, [edx + 8]
sub ebx, 1
jne 0x4490af
push ebx
push ebx
push 0x800
push ebx
push 0xc0000
mov edx, 0x80000000
mov ecx, 0x511e40
call fcn.00446524
mov esi, eax
test esi, esi
js 0x449194
push ebx
push ebx
push 0x400
push ebx
push 0xffc00
mov edx, 0x80000000
mov ecx, 0x511e40
call fcn.00446524
mov esi, eax
test esi, esi
js 0x449194
push ebx
push ebx
push ebx
push ebx
push ebx
push 2
mov edx, 0xd0000007
mov dword [0x511dd8], 0x2000
lea ecx, [ebp - 0x10]
call fcn.0044380d
mov esi, eax
test esi, esi
js 0x449194
push dword [0x511dd8]
mov esi, dword [ebp - 0x10]
push ebx
push esi
mov dword [0x511dc0], esi
call fcn.004c2a80
mov eax, dword [0x511dd0]
add esp, 0xc
shr eax, 0x15
push 4
lea eax, [esi + eax*4]
pop edx
inc dword [eax]
lea eax, [eax + 4]
sub edx, 1
jne 0x449169
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.0044828f
mov esi, eax
test esi, esi
js 0x449194
mov eax, dword [0x511d98]
mov cr3, eax
call fcn.0040aa95
jmp 0x4491cd
xor ebx, ebx
mov eax, dword [0x511dc0]
test eax, eax
je 0x4491a4
push ebx
push eax
call fcn.0044388d
mov eax, dword [0x511d98]
test eax, eax
je 0x4491b4
push ebx
push eax
call fcn.0044388d
mov ecx, dword [0x511da8]
mov eax, ecx
mov edx, dword [0x511dac]
or eax, edx
je 0x4491cd
push edx
push ecx
call fcn.00444461
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret