Function at 0x444f90
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x444fda
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x444fb0
sar ecx, 1
mov edx, ecx
and edx, 0xfffd
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
jmp 0x444fdc
xor ecx, ecx
mov word [esp + 0x18], cx
mov edx, eax
test eax, eax
je 0x444fec
add ecx, 2
mov edx, ecx
mov word [esp + 0x1a], dx
mov dword [esp + 0x1c], eax
mov dword [esp], 0x94959697
mov word [esp + 4], 0
mov eax, esp
mov ecx, 0x69dfa1e3
nop
nop
nop
nop
nop
nop
movzx edi, byte [eax]
mov edx, ecx
or edx, edi
lea ebx, [ecx - 0x69dfa100]
mov ebp, edi
not ebp
or ebp, ebx
add ebp, edi
mov edi, 0xfe
sub edi, ebp
mov ebx, edx
not ebx
or ebx, edi
add ebx, edx
mov dl, 0x72
sub dl, bl
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x69dfa1dd
jne 0x445010
mov ebx, dword [esp]
mov eax, dword [0x4504d8]
test eax, eax
je 0x4450a9
xor ecx, ecx
mov edx, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xc0a4c970
je 0x44507a
mov edi, ecx
xor edi, 1
and ecx, 1
lea ecx, [edi + ecx*2]
cmp ecx, eax
jb 0x445060
jmp 0x4450a9
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x4450a9
lea ecx, [esp + 0xc]
lea edx, [esp + 0x18]
push ecx
push 0
push 0
push 2
push edx
push dword [esp + 0x4c]
push 6
push dword [0x4504e0]
push eax
call fcn.00440d90
add esp, 0x24
mov ebx, eax
mov dword [esp], 0xc1060729
mov word [esp + 4], 0
mov eax, 0x3b609381
mov ecx, 0x7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x3b609381]
mov edi, eax
or edi, edx
not edx
or edx, ecx
and edx, edi
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
add dl, 0x7a
mov byte [esp + eax - 0x3b609381], dl
inc eax
dec ecx
cmp eax, 0x3b609387
jne 0x4450d0
cmp ebx, dword [esp]
jne 0x4452ae
push dword [esp + 0xc]
call fcn.0043dbb0
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0xd1cecfce
mov word [esp + 0x14], 0
mov edx, 0xee69d9cd
mov ebp, 0x32
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + edx + 0x11962643]
mov ebx, ebp
xor ebx, edx
and ebx, ecx
xor ebx, edx
mov ecx, ebx
and ecx, 1
or ebx, 1
add ebx, ecx
add bl, 0xfe
mov byte [esp + edx + 0x11962643], bl
inc edx
dec ebp
cmp edx, 0xee69d9d3
jne 0x445140
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp], 0x94959697
mov word [esp + 4], 0
mov ebx, esp
mov ebp, 0x69dfa1e3
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
mov edi, ebp
or edi, edx
lea esi, [ebp - 0x69dfa100]
mov ecx, edx
not ecx
or ecx, esi
add ecx, edx
mov edx, 0xfe
sub edx, ecx
mov ecx, edi
not ecx
or ecx, edx
add ecx, edi
mov dl, 0x72
sub dl, cl
mov byte [ebx], dl
inc ebx
dec ebp
cmp ebp, 0x69dfa1dd
jne 0x445190
mov ebx, dword [esp]
mov ebp, dword [0x4504d8]
test ebp, ebp
je 0x4451f0
xor edi, edi
mov ecx, dword [0x4504dc]
mov esi, dword [esp + 0x48]
nop
nop
nop
cmp dword [ecx + edi*8], 0xc0a4c970
je 0x4451f6
inc edi
cmp ebp, edi
jne 0x4451e0
jmp 0x44522c
mov esi, dword [esp + 0x48]
jmp 0x44522c
mov ebp, dword [ecx + edi*8 + 4]
cmp ebp, ebx
je 0x44522c
lea ecx, [esp + 0xc]
lea edx, [esp + 0x18]
push ecx
push dword [esp + 0xc]
push eax
push dword [esp + 0x2c]
push edx
push dword [esp + 0x4c]
push 6
push dword [0x4504e0]
push ebp
mov edi, eax
call fcn.00440d90
add esp, 0x24
mov ebx, eax
mov eax, edi
test ebx, ebx
js 0x4452a5
mov edx, dword [esp + 0x40]
test edx, edx
je 0x44523d
mov ecx, dword [eax + 4]
mov dword [edx], ecx
test esi, esi
je 0x4452a5
cmp dword [esp + 0x44], 0
je 0x4452a0
mov edx, dword [esi]
mov ecx, dword [eax + 8]
cmp edx, ecx
jb 0x445253
mov edx, ecx
lea esi, [eax + 0xc]
mov ecx, edx
shr ecx, 2
mov ebp, dword [esp + 0x44]
mov edi, ebp
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov ecx, edx
and ecx, 0xfffffffc
add ebp, ecx
lea esi, [eax + ecx]
add esi, 0xc
mov ecx, edx
shr ecx, 1
and ecx, 1
mov dword [esp + 8], esi
mov edi, ebp
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test dl, 1
mov esi, dword [esp + 0x48]
je 0x4452a0
and edx, 2
mov ecx, dword [esp + 8]
movzx ecx, byte [ecx + edx]
mov byte [ebp + edx], cl
mov ecx, dword [eax + 8]
mov dword [esi], ecx
push eax
call fcn.0043dc40
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret