Function at 0x44ca70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf2552
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx + 0x15]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x44cb9b
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.0044bf34
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xcffeed
mov dword [ebp - 4], 1
mov dword [ebp - 0x8c], 0xe442a8
lea esi, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x7c], al
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
test ebx, ebx
lea edi, [ebp - 0x64]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
jae 0x44cb0f
call 0xd32a91
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x44cb1f
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x44d038
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x44cb3a
call 0xd32a52
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x44cf30
test ebx, ebx
je 0x44cf11
test ebx, ebx
ja 0x44ceae
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xd0016a
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x44cea0
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x4c], 0xf
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x60], al
mov eax, dword [ebp + 0xc]
mov ebx, edx
test eax, eax
je 0x44d54f
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x44cbb7
call 0xcffed4
jmp 0x44cbef
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x44cbd6
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x44d11f
mov dword [ebp + 0x10], ecx
jmp 0x44cbef
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x44cbec
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x44cbe0
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x44cc00
mov esi, dword [ebx + 8]
jmp 0x44cc15
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x44cc0f
mov esi, eax
jmp 0x44cc15
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x44d46f
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x44cc2d
mov ecx, edi
jmp 0x44cc4a
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x44d467
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov edx, dword [ebx + 8]
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 4]
je 0x44d45f
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x44cc68
mov dword [eax + 8], edi
jmp 0x44cc6a
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
movzx eax, byte [edi + 0x14]
movzx edx, byte [ebx + 0x14]
mov byte [edi + 0x14], dl
mov byte [ebx + 0x14], al
movsx eax, byte [ebx + 0x14]
cmp eax, 1
je 0x44d146
push ebx
call 0xcfe765
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x44cca2
add eax, 0xffffffff
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp - 0x60]
call 0xcfe765
pop ecx
jmp 0x44cb89
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x44cebe
mov ebx, dword [ebx + 4]
jmp 0x44cec1
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x44ced1
mov edx, dword [edx + 4]
jmp 0x44ced4
add edx, 4
add edx, dword [ebp - 0x28]
push dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
push ebx
call 0xd001b4
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x44cf05
mov eax, dword [eax + 4]
jmp 0x44cf08
add eax, 4
mov byte [eax + ecx], 0
jmp 0x44cb55
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x44cf22
mov eax, dword [ebp - 0x7c]
push edi
and al, 0x4f
dec edi
shr byte [edi + 0x25], 1
or byte [ebx + 0x7e], dh
inc esp
and byte [esi + 0x34], dh
inc esp
shr byte [edx + edx*2 - 0x4b], 0xc5
push edx
mov ch, 0xc5
mov dh, 0xf6
test dh, dl
salc
fsubrp st(4)
invalid
mov byte [eax], cl
clc
ret
xlatb
test al, 0x29
jo 0x44d120
adc dl, byte [ecx + edi - 0x5b]
and al, 0xf
or dword [edx - 0x78], esi
sbb dword [ebp + ebx*8 - 0x1e], esp
stc
and al, 0x6e
insd dword es:[edi], dx
mov esp, 0xa3eb2eba
out dx, al
ja 0x44d133
push es
mov es, word [edx]
xchg esp, eax
inc esi
rcl dword [ecx*2 - 0x61b066b0]
push eax
cdq
dec edi
sahf
xor byte [ebp + 0x3a], 0x94
stosd dword es:[edi], eax
push esi
shl al, 0
invalid
adc eax, 0xc271a72d
sal dword [edx + esi*4], 1
mov dword [0xe4aad31f], eax
cmp byte [ecx + 0x1cc48a0b], ch
invalid
mov al, ah
sbb al, 0xf0
in al, 0x41
inc ecx
mov esp, 0xdfe46897
xchg esi, eax
invalid
cmp al, 0xc8
adc al, 0x67
lodsb al, byte [esi]
int3