Function at 0x44ccc9
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 0x44cdf4
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.0044c18d
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xd00146
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 0x44cd68
call 0xd32cea
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x44cd78
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x44d291
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x44cd93
call 0xd32cab
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x44d189
test ebx, ebx
je 0x44d16a
test ebx, ebx
ja 0x44d107
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xd003c3
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x44d0f9
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 0x44d7a8
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x44ce10
call 0xd0012d
jmp 0x44ce48
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x44ce2f
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x44d378
mov dword [ebp + 0x10], ecx
jmp 0x44ce48
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x44ce45
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x44ce39
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x44ce59
mov esi, dword [ebx + 8]
jmp 0x44ce6e
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x44ce68
mov esi, eax
jmp 0x44ce6e
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x44d6c8
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x44ce86
mov ecx, edi
jmp 0x44cea3
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x44d6c0
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 0x44d6b8
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x44cec1
mov dword [eax + 8], edi
jmp 0x44cec3
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 0x44d39f
push ebx
call 0xcfe9be
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x44cefb
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
in al, dx
dec eax
out 0xe8, eax
or dword [edi], ebx
cwde
ficomp word [ecx + edx*4]
cli
mov dl, byte [ecx + 0x19dd479c]
dec edi
popal
jbe 0x44d12f
sti
xchg edx, eax
xchg edx, eax
or dword [esi + edi - 0x65], ebx
push es
stosb byte es:[edi], al
lds ebx, [ecx]
xchg esp, eax
dec esp
bound esi, qword [ebx - 0xb]
in eax, 0x81
daa
push 0x4939fb4d
das
add dword [ecx + edi*8 - 0x44], ebx
imul edi, dword [ebp + 0x3ce01c74], 0xd475eead
jl 0x44d140
mov byte [ebx - 0x54], ch
sahf
arpl word [esi - 0x17], si
movsd dword es:[edi], dword [esi]
inc eax
mov edx, 0x7229f47e
insb byte es:[edi], dx
shr cl, 1
mov ecx, dword [esi]
jmp 0x44d0e1
fxch st(4)
stc
sbb eax, 0x406c1c00
sbb dword [eax + edx*8], 0x76
xor ch, dl
sbb dword [ebx], ebp
sal dword [0xec8e4786], cl
js 0x44d18a
xor dl, byte [edi + 0xe]
push edi
push cs
jb 0x44d157
fistp dword ss:[ecx - 0x5f]
inc eax
and al, 0xed
in al, 0xee
xchg ebp, eax
push 0x94981442
xchg esp, eax
arpl word [edi - 0x6a], dx
mov edi, 0xfdcd437f
jl 0x44d157
clc
sub al, cl
pop esp
push cs
cdq
mov ebx, 0xedd2afb9
push edi
pop esi
fisttp word [esi + 0x1d3776ed]
xchg bh, bl
fistp qword [esi - 0x2e3ceec4]
mov esi, 0xd1c3113c
sub eax, 0xfc789c91
cdq
cmp byte [ecx - 0xee08880], bl
or ebx, dword [edi + esi*4]
test eax, 0x20c5bcd4
and byte [ebp + 0xa], bh
add ah, al
push esi
sbb ebp, edi
inc ecx
ljmp 0x6868
fsubr qword [ecx + 0x296863de]
std
sub eax, ebp
or dword [ecx - 0x53c57c08], esi
xor dword [esi - 0x29], esi
push cs
jmp 0x884bc276
push ds
or ecx, dword [edi + ebp*8]
push eax
jns 0x44d390
sub esp, dword [ebx]
jno 0x44d331
in eax, 3
cmp al, byte [edi]
dec esp
stc
test eax, 0xaac35d7f
int3
stc
enter 0x5231, 0x5f
retf
push edx
ja 0x44d3a2
jmp 0xbc5e6182
push es
mov ds, word [ecx]
mov esp, 0xcb31076b
mov dword [edi + eax*8], ecx
dec esi
sti
je 0x44d354
push edi
push esi
jl 0x44d321
sub dword [edi + 0x62acec73], 0xffffff94
ret 0xbdd
bound edx, qword [edx + eax*8 - 0x3760f423]
fsubr qword [ecx + 0x2a872176]
add ecx, esp
pop edx
wait
xor al, 0xd4
add al, 0xfa
aam 4
cli
inc eax
clc
pop esp
or dword [ebx + 0x69bd92fd], ebx
mov ecx, 0xde144946
cmpsb byte [esi], byte es:[edi]
js 0x44d374
imul edx, dword [eax], 0x817ff40e
sbb dword [edx + ebx - 0x36], eax
cwde
invalid
rcr bh, 1
ret
xor eax, 0x71f16937
mov ch, 0x84
cwde
sub eax, 0x9c7d4cf7
push esp
out dx, al
xor byte ds:[ecx], al
shr dword [ebx], 1
sub dword [esi], 0x41
push eax
dec ebp
mov dword [esp + ebp*2 - 0x54], edi
sub eax, 0xc1c3e8e
or bh, byte [esi + 0x2d]
lodsb al, byte [esi]
cmp al, 0xf
sub dword [ebx], eax
cmc
add dl, al
invalid
jb 0x44d687
sbb ebx, dword [ebp + 0x332d37f8]
xchg byte [ebx], bl
xchg ebx, eax
sal dword [esi + 0x51e17fb5], 0x3d
invalid
push ecx
cmp eax, 0xbb932c8f
fsubr dword [edi - 0x39022290]
outsd dx, dword [esi]
jl 0x44d65c
mov dword [eax + 0x3963af99], ecx
cld
and byte [edi], ah
inc ebx
pop esp
salc
mov cl, 0xdc
pop ebx
sti
adc eax, 0x36009976
pushfd
mov ecx, 0x955c8420
in al, dx
cmp al, 0xdc
jns 0x44d716
or dword [ecx + ebx*8 + 0x29], ebx
pop ecx
cmp al, 0x35
lodsb al, byte [esi]
lds edx, [edx - 0x4729ae0f]
mov edi, 0x3f2ac76d
sbb ebp, dword [esi]
jg 0x44d75b
jg 0x44d75b
and byte [esp + ecx*4 - 0x67], dh
cld
pop esi
fcomp qword [esi - 0x3e]
or dword [esi - 0x1c862723], edi
lds esp, gs:[esi - 0x52bb35f8]
jno 0x44d6c2
pop esi
ret 0xbe09
insb byte es:[edi], dx
rcr byte [esi - 0x214d32f6], 0xf0
dec ecx
mov ebp, 0xee9ce6d5
add al, 0x9c
push ax
jp 0x44d754
pop esp
wait
in al, 0xbc
iretd
sbb ch, byte [ebp + edi*2 - 0x20648666]
fst qword [eax]
insd dword es:[edi], dx
inc ebp
lodsb al, byte [esi]
leave
rcl al, 1
jmp 0x44d70c
popfd
sbb ebp, edx
daa
push edi
or ah, bl
mov esp, 0xac4fc18f
jg 0x44d7ce
stosd dword es:[edi], eax
ja 0x44d815
in al, 0x89
leave
mov ecx, ecx
pop edx
mov esp, 0xa97a7a
dec eax
lcall 0xecf0, 0x2977bcbd
mov ecx, 0xef6a8fff
out dx, eax
jl 0x44d836
dec edx
invalid
imul ebp, dword [eax + 0xe847e18], 0x53
rcr byte [ebx - 0x456257f2], cl
std
invalid
stc
and ch, ah
lodsd eax, dword [esi]
dec eax
mov esi, 0xd58840a1
pop edi
aad 0x5f
dec edx
mov byte [ebx + esi*4], bl
aam 0xd2
jae 0x44d7ba
or eax, 0xff343613
clc
invalid
xor al, 5
bound esi, qword [ecx + 0x24]
pop es
sbb dword [ebp + 0x51ea48df], esi
jbe 0x44d80c
stc
cmp al, 0xb
and dword [ebx + ebx*2 - 0x74], edi
jg 0x44d7f8
int3