Function at 0x444620
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp], 0x94959697
mov word [esp + 4], 0
mov ebx, esp
mov ecx, 0x69dfa1e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx]
mov esi, ecx
or esi, edx
lea edi, [ecx - 0x69dfa100]
mov ebp, edx
not ebp
or ebp, edi
add ebp, edx
mov edi, 0xfe
sub edi, ebp
mov edx, esi
not edx
or edx, edi
add edx, esi
mov al, 0x72
sub al, dl
mov byte [ebx], al
inc ebx
dec ecx
cmp ecx, 0x69dfa1dd
jne 0x444650
mov esi, dword [esp]
mov eax, dword [0x4504d8]
test eax, eax
je 0x4446de
xor ecx, ecx
mov edx, dword [0x4504dc]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x33079ccd
je 0x4446b0
inc ecx
cmp eax, ecx
jne 0x4446a0
jmp 0x4446de
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x4446de
lea ecx, [esp + 0x14]
push ecx
push 0
push 0
push 0
push dword [esp + 0x40]
push dword [esp + 0x40]
push 6
push dword [0x4504e0]
push eax
call fcn.00440d90
add esp, 0x24
mov esi, eax
mov dword [esp], 0x571619c7
mov eax, 0x46
mov ecx, 0xb9
nop
movzx edi, byte [esp + eax - 0x46]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0xa2
mov byte [esp + eax - 0x46], dl
inc eax
dec ecx
cmp eax, 0x4a
jne 0x4446f0
cmp esi, dword [esp]
jne 0x444907
push dword [esp + 0x14]
call fcn.0043dbb0
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp], 0x94959697
mov word [esp + 4], 0
mov edx, esp
mov esi, 0x69dfa1e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx]
mov edi, esi
or edi, ecx
lea ebx, [esi - 0x69dfa100]
mov ebp, ecx
not ebp
or ebp, ebx
add ebp, ecx
mov ebx, 0xfe
sub ebx, ebp
mov ecx, edi
not ecx
or ecx, ebx
add ecx, edi
mov bl, 0x72
sub bl, cl
mov byte [edx], bl
inc edx
dec esi
cmp esi, 0x69dfa1dd
jne 0x444750
mov esi, dword [esp]
mov edx, dword [0x4504d8]
test edx, edx
je 0x4447b1
xor edi, edi
mov ebp, dword [0x4504dc]
mov ebx, dword [esp + 8]
nop
nop
nop
cmp dword [ebp + edi*8], 0x33079ccd
je 0x4447b7
inc edi
cmp edx, edi
jne 0x4447a0
jmp 0x4447ea
mov ebx, dword [esp + 8]
jmp 0x4447ea
mov edx, dword [ebp + edi*8 + 4]
cmp edx, esi
je 0x4447ea
lea ecx, [esp + 0x14]
push ecx
push dword [esp + 0x14]
push ebx
push 0
push dword [esp + 0x40]
push dword [esp + 0x40]
push 6
push dword [0x4504e0]
push edx
mov edi, eax
call fcn.00440d90
add esp, 0x24
mov esi, eax
mov eax, edi
mov edx, dword [esp + 0x38]
test edx, edx
mov ecx, dword [esp + 0x34]
je 0x4448fe
test esi, esi
js 0x4448fe
test ecx, ecx
je 0x4448f7
mov ecx, dword [ebx + 0xc]
shr ecx, 1
mov edi, dword [edx]
cmp edi, ecx
jb 0x444817
mov edi, ecx
test edi, edi
je 0x4448ee
add eax, 0x10
mov ecx, edi
and ecx, 3
je 0x444877
mov dword [esp + 0x10], edi
xor edi, edi
mov ebp, dword [esp + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax]
xor edx, edx
test bx, bx
setne dl
lea eax, [eax + edx*2]
mov word [ebp], bx
add ebp, 2
inc edi
cmp ecx, edi
jne 0x444840
mov dword [esp + 0xc], ebp
mov ecx, dword [esp + 0x10]
mov ebp, ecx
sub ebp, edi
mov edi, ecx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 8]
cmp edi, 4
jae 0x44487e
jmp 0x4448ee
mov ebp, edi
cmp edi, 4
jb 0x4448ee
mov ebx, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebx], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebx + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebx + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebx + 6], cx
add ebx, 8
lea eax, [edi + eax*2]
add ebp, 0xfffffffc
jne 0x444890
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov word [eax], 0
mov eax, dword [ebx + 0xc]
shr eax, 1
mov dword [edx], eax
push ebx
call fcn.0043dc40
add esp, 4
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret