Function at 0x444930
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
je 0x444963
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x444950
add ecx, 0xfffffffe
and ecx, 0xfffe
mov word [esp + 0x10], cx
mov edx, eax
test eax, eax
je 0x444973
add ecx, 2
mov edx, ecx
mov word [esp + 0x12], dx
mov dword [esp + 0x14], eax
mov dword [esp], 0x80b0a0d
mov byte [esp + 4], 0
mov eax, 0xd66ce903
nop
nop
nop
movzx edx, byte [esp + eax + 0x299316fd]
mov esi, eax
and esi, edx
add edx, eax
add esi, esi
mov ecx, edx
sub ecx, esi
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0xf0
mov byte [esp + eax + 0x299316fd], cl
inc eax
cmp eax, 0xd66ce908
jne 0x444990
mov ebx, dword [esp]
mov eax, dword [0x44fe80]
test eax, eax
je 0x444a1f
xor ecx, ecx
mov edx, dword [0x44fe84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0xbbe848dd
je 0x4449f0
inc ecx
cmp eax, ecx
jne 0x4449e0
jmp 0x444a1f
mov eax, dword [edx + ecx*8 + 4]
cmp eax, ebx
je 0x444a1f
lea ecx, [esp + 0xc]
lea edx, [esp + 0x10]
push ecx
push 0
push 0
push 2
push edx
push dword [esp + 0x44]
push 6
push dword [0x44fe88]
push eax
call fcn.00440600
add esp, 0x24
mov ebx, eax
mov dword [esp], 0xd7161947
mov dword [esp + 4], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + ecx]
mov edx, eax
and edx, 0xc
mov esi, ecx
xor esi, 0x6322e586
add esi, edx
mov edx, esi
and edx, 0x4200e01d
mov edi, esi
xor edi, 0x5a4cf25d
or esi, 0x21220582
and esi, edi
xor edx, esi
and esi, 0x1d
xor edx, 0x5a4cf25d
or edx, esi
xor edx, ebp
xor edx, 0x5a4cf25d
lea esi, [edx + 0x10518461]
mov edi, esi
and edi, 1
mov ebp, esi
and ebp, 0xfe
xor esi, 1
add edx, esi
add edx, 0x10518461
sub edx, ebp
add edx, edi
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 8
jne 0x444a40
cmp ebx, dword [esp]
jne 0x444c1a
push dword [esp + 0xc]
call fcn.0043d3c0
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0xc]
mov dword [esp], 0x80b0a0d
mov byte [esp + 4], 0
mov edx, 0xd66ce903
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x299316fd]
mov ebx, edx
and ebx, edi
add edi, edx
add ebx, ebx
mov eax, edi
sub eax, ebx
and edi, 1
or eax, 1
add eax, edi
add al, 0xf0
mov byte [esp + edx + 0x299316fd], al
inc edx
cmp edx, 0xd66ce908
jne 0x444ae0
mov ebx, dword [esp]
mov eax, dword [0x44fe80]
test eax, eax
je 0x444b72
xor edx, edx
mov ebp, dword [0x44fe84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebp + edx*8], 0xbbe848dd
je 0x444b41
inc edx
cmp eax, edx
jne 0x444b30
jmp 0x444b72
mov edx, dword [ebp + edx*8 + 4]
cmp edx, ebx
je 0x444b72
lea eax, [esp + 0xc]
lea edi, [esp + 0x10]
push eax
push ecx
mov eax, dword [esp + 0x10]
push eax
push 2
push edi
push dword [esp + 0x44]
push 6
push dword [0x44fe88]
push edx
call fcn.00440600
add esp, 0x24
mov ebx, eax
test ebx, ebx
mov ebp, dword [esp + 0x3c]
js 0x444c0e
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x444b8f
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
mov dword [ecx], eax
cmp dword [esp + 0x40], 0
je 0x444c0e
test ebp, ebp
je 0x444c01
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 8]
cmp eax, ecx
jb 0x444bad
mov eax, ecx
mov esi, dword [esp + 8]
lea edx, [esi + 0xc]
mov ecx, eax
shr ecx, 2
mov edi, ebp
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, eax
and ecx, 0xfffffffc
add ebp, ecx
lea edi, [esi + ecx]
add edi, 0xc
mov ecx, eax
xor ecx, 0xfffffffc
mov edx, eax
or edx, 3
and edx, ecx
mov ecx, edx
shr ecx, 1
mov esi, ebp
mov dword [esp + 0x18], edi
mov ebp, edi
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test al, 1
je 0x444c01
and edx, 0xfffffffe
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + edx]
mov byte [esi + edx], al
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x40]
mov dword [ecx], eax
push dword [esp + 8]
call fcn.0043d430
add esp, 4
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret