Function at 0x44af30
Capabilities:
Encode data using xor

Disassembly:
je 0x44aecb
add byte [eax], al
rcr byte [ecx + 0x44], 1
add byte [edx], al
add byte [ecx], cl
inc ecx
push edx
jae 0x44af46
jne 0x44af4b
arpl word [ebp + 2], sp
add byte [edx], al
add byte [eax + eax], ah
clc
cdq
push ebx
add byte [esp + ecx*2], al
outsd dx, dword [esi]
arpl word [ebx + 3], bp
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [ecx], al
or byte [edi + ebp*4], ch
inc esp
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
add al, bh
cdq
push ebx
add byte [esi], al
push ebp
outsb dx, byte [esi]
insb byte es:[edi], dx
outsd dx, dword [esi]
arpl word [ebx + 3], bp
add byte [eax], al
add byte [eax], al
add byte [eax], cl
add byte [ecx], al
or byte [edi + ebp*4], ch
inc esp
add byte [eax], al
add byte [ebx + edx*2], al
insb byte es:[edi], dx
add al, byte [eax]
add al, byte [eax]
lea eax, [eax]
xor byte [edi + 0x10070044], ch
push esp
push edx
jae 0x44afa6
jne 0x44afab
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x44aef7
lodsb al, byte [esi]
inc esp
add byte [eax], bh
sbb al, 0x40
cmp byte [eax + eax*2], bl
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x44afb1
jo 0x44afba
imul esp, dword [ebx + 0x73], 0
add al, byte [eax]
nop
mov ah, 0xaf
inc esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add ah, dl
scasd eax, dword es:[edi]
add byte [eax + 0x44afb4], dl
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
aam 0xaf
inc esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax + 0x280044af], bh
add byte [eax], al
add byte [esp + ebp*4 + 0x44], bl
add byte [edi + ecx*2 + 0x4fac0040], ah
inc eax
add al, al
push ecx
inc eax
add byte [eax - 0x27ffbfaf], bh
push ecx
inc eax
add ah, bl
push ecx
inc eax
add al, ah
push ecx
loopne 0x44aff3
inc eax
add ah, dl
push ecx
inc eax
add byte [eax - 0x63ffbfb2], al
dec esi
inc eax
add byte [eax + esi*4 + 0x44], dl
add byte [esi + ecx*2 - 0x4fabffc0], bl
inc esp
mov al, 0x44
add byte [eax - 0x4d], cl
inc esp
add byte [0x75724254], dl
inc edx
jb 0x44b032
jae 0x44b027
push edx
jae 0x44b032
jne 0x44b037
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x44af5a
rcl ah, 0xaf
inc esp
add byte [edi], al
adc eax, 0x75724254
jae 0x44b044
push edx
jae 0x44b04f
jne 0x44b054
arpl word [ebp + 0x4d], sp
popal
outsb dx, byte [esi]
popal
jb 0x44afa0
scasd eax, dword es:[edi]
inc esp
add byte [edi + ebp*4], ch
inc esp
add byte [eax], al
add byte [eax], cl
inc edi
jb 0x44b05a
add byte [eax], al
or byte [edi + 0x72], al
popal
jo 0x44b063
imul esp, dword [ebx + 0x73], 0
add al, byte [eax]
fimul dword [ebx + 0x4e8966f0]
and byte [ebp - 0x17aff7ba], cl
test dword [edx], eax
cld
dec dword [ebx + 0x74db84c6]
psubsb mm5, qword [edx]
movsb byte es:[edi], byte [esi]
sti
jmp dword [edi + ecx*4 + 5]
call sub.kernel32.dll_InitializeCriticalSection_1
mov eax, esi
test bl, bl
je 0x44b04c
call fcn.0040546c
pop dword fs:[0]
add eax, 0
add esp, 0xc
mov eax, esi
pop esi
pop ebx
ret
push ebx
dec dword [ebx - 0x720f7426]
inc esi
or byte [eax - 0x18], dl
cmp byte [eax], al
cld
inc dword [ebx + ebx*8 - 0x3974f882]