Function at 0x44772d
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [0x4f11bc], 0x447e0c
mov dword [0x4f11c4], 0x447a27
mov dword [0x4f11b4], 0x447ca8
mov dword [0x4f11dc], 0x447f94
mov dword [0x4f11cc], 0x447f9b
mov dword [0x4f11a8], 0x447faa
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
cmp edx, 1
jne 0x4477d6
mov ecx, dword [edi + 8]
lea edx, [edi - 8]
mov eax, cr3
mov dword [0x4c07d4], eax
mov eax, dword [edi + 0x10]
add eax, dword [edi + 4]
add edx, eax
test ecx, ecx
je 0x4477a9
cmp dword [edx + 0x24], 0xd0000007
je 0x4477a9
add edx, dword [edi + 0xc]
sub ecx, 1
jne 0x447798
mov ecx, dword [edx + 8]
mov eax, dword [edx + 0xc]
shld eax, ecx, 0xc
mov eax, dword [edx + 0x1c]
shl ecx, 0xc
mov dword [0x4f11b8], ecx
mov ecx, dword [edx + 0x18]
shld eax, ecx, 0xc
shl ecx, 0xc
xor eax, eax
mov dword [0x4f11d0], ecx
jmp 0x447a20
test edx, edx
je 0x4477e4
mov eax, 0xc0000002
jmp 0x447a20
xor ebx, ebx
lea ecx, [ebp - 0x10]
push ebx
push ebx
push ebx
push ebx
push ebx
push 5
mov edx, 0xd0000006
mov dword [0x4c07d4], ebx
mov dword [0x4f11a0], ebx
mov dword [0x4f11a4], ebx
mov dword [0x4f11b8], ebx
call fcn.00442120
mov esi, eax
test esi, esi
js 0x4479e5
mov ebx, dword [ebp - 0x10]
push 0x5000
push 0
push ebx
mov dword [0x4c07d4], ebx
call fcn.004a73b0
mov edx, dword [ebp - 0xc]
mov edi, ebx
shrd edi, edx, 0xc
add esp, 0xc
sar 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 0x447849
push ecx
push ecx
mov ecx, 0x4f11a0
call fcn.00442dd3
mov edi, dword [ebp - 4]
mov esi, eax
test esi, esi
js 0x4479e3
push 0x800000
push 0
push dword [0x4f11a0]
call fcn.004a73b0
mov edx, dword [0x4f11a0]
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 [0x4f11c8], esi
add edx, ecx
shr esi, 0x15
shl eax, 0xc
or edx, eax
mov dword [0x4f11c0], edx
lea edx, [ebx + esi*8]
mov esi, dword [0x4c07d4]
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 0x447900
push ebx
push ebx
push 0x800
push ebx
push 0xc0000
mov edx, 0x80000000
mov ecx, 0x4f1220
call fcn.004466c2
mov esi, eax
test esi, esi
js 0x4479e5
push ebx
push ebx
push 0x400
push ebx
push 0xffc00
mov edx, 0x80000000
mov ecx, 0x4f1220
call fcn.004466c2
mov esi, eax
test esi, esi
js 0x4479e5
push ebx
push ebx
push ebx
push ebx
push ebx
push 2
mov edx, 0xd0000007
mov dword [0x4f11d0], 0x2000
lea ecx, [ebp - 0x10]
call fcn.00442120
mov esi, eax
test esi, esi
js 0x4479e5
push dword [0x4f11d0]
mov esi, dword [ebp - 0x10]
push ebx
push esi
mov dword [0x4f11b8], esi
call fcn.004a73b0
mov eax, dword [0x4f11c8]
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 0x4479ba
xor ecx, ecx
mov edx, edi
inc ecx
call fcn.00445364
mov esi, eax
test esi, esi
js 0x4479e5
mov eax, dword [0x4c07d4]
mov cr3, eax
call fcn.0040ac86
jmp 0x447a1e
xor ebx, ebx
mov eax, dword [0x4f11b8]
test eax, eax
je 0x4479f5
push ebx
push eax
call fcn.004421a0
mov eax, dword [0x4c07d4]
test eax, eax
je 0x447a05
push ebx
push eax
call fcn.004421a0
mov ecx, dword [0x4f11a0]
mov eax, ecx
mov edx, dword [0x4f11a4]
or eax, edx
je 0x447a1e
push edx
push ecx
call fcn.00442d52
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret