Function at 0x44c40c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
mov eax, dword [0x4d138c]
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
cmp esi, eax
jne 0x44c481
cmp edi, 0x11
jbe 0x44c487
mov eax, edi
sub eax, 0x82
je 0x44c501
sub eax, 0x8f
je 0x48c118
dec eax
sub eax, 1
je 0x48c104
sub eax, 0x1ff
je 0x48c0e9
sub eax, 0xef
je 0x44c4ef
cmp edi, dword [0x4d2528]
je 0x48c0c4
push dword [ebp + 0xc]
push dword [ebp + 8]
push edi
push esi
call dword [0x49c708]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x44c423
jmp 0x44c46c
je 0x48c097
mov eax, edi
sub eax, 1
je 0x44c4b9
sub eax, 1
jne 0x48c038
push 1
push esi
call dword [0x49c718]
mov ecx, 0x4d1990
call fcn.0044c38e
call fcn.0044ceec
xor eax, eax
jmp 0x44c47a
push 0
push 0x2ee
push 1
push esi
call dword [0x49c724]
push 0x49cad4
call dword [fcn.0049c720]
cmp dword [0x4d1990], 0
mov dword [0x4d2528], eax
jne 0x44c4b5
call dword [0x49c71c]
mov dword [0x4d1990], eax
jmp 0x44c4b5
push dword [ebp + 0xc]
push ecx
push ecx
push esi
mov ecx, 0x4d1990
call fcn.0044c50b
jmp 0x44c4b5
push 0
call dword [0x49c714]
jmp 0x44c4b5
cmpsd dword [esi], dword es:[edi]
scasb al, byte es:[edi]
sub esp, dword [eax + 0x3422fe4b]
aam 0x19
adc al, 0xe8
add al, 0xa6
or al, 0x90
shr dword [esi + 0x5b], 0xd0
xchg ebp, eax
cmc
shl ebp, cl
add byte [edi - 0x72], dh
adc al, 0x1c
cmp eax, 0x434d5a73
or eax, 0x798953b4
pop es
mov ebp, 0xd057f8f7
xlatb
rcl bh, 1
mov fs, word [edx]
out dx, al
mov ch, 0xd4
jmp 0x47b5ea3
mov dword [0x449ba734], eax
cmp al, 0xc3
or edx, dword [edi]
in eax, 0xbb
and eax, 0x180964ff
bound esi, qword [0xaa02f345]
leave
mov al, 0x52
fucom st(0)
stosb byte es:[edi], al
aad 0x4d
je 0x48c17f
jnp 0x48c172
xchg ebp, eax
aad 0xfb
xchg esi, eax
mov al, 0x7e
arpl si, sp
mov edi, 0x91661700
arpl word [ecx], si
push ss
pop es
je 0x48c148
mov ebx, 0xe2dc7ee2
in eax, 0xa2
test dword [edi - 0x3eaf7cdf], 0xfb977312
int1
jecxz 0x48c149
sbb al, 0x6c
out 0x47, al
push esp
xchg dword [0x6b3b6fc2], esi
mov bh, 0x49
pushfd
push 0x9c44fe87
fisub dword [ebx - 0x10e8d607]
sub dword [edi], edx
pop ss
out dx, eax
push 0x42
movsb byte es:[edi], byte [esi]
sal bh, 0xb0
fsub qword [edx + 0x2547938d]
in al, dx
pop es
sub dl, byte [eax - 0x39]
cld
sbb al, 0x76
cmc
ret
scasd eax, dword es:[edi]
pop edx
test al, 0x3f
shr byte [esi], 1
mov esi, 0x40743a5d
mov bl, 0xb1
jg 0x48c192
test dword [ecx - 0x6178b91b], edx
mul dword [ebx]
push esi
in al, 0xf3
sbb dword [esi - 0x2a], 0xffffffa9
push eax
sti
add byte [esp + ebx - 0x17db47a1], dh
mov ecx, 0x269e9453
xor esp, dword [ecx]
xchg esi, eax
adc eax, 0x9e98695e
mov dword [0x23d3c3d1], eax
adc dword [ebx - 0x32], 0xf140e653
xor byte [ecx + 0x67c3e53b], 0xc7
sal dword [ebx + 0x48], 1
test eax, 0x96deef50
je 0x48c218
xchg edx, eax
xchg ebp, eax
jp 0x48c21b
cmp cl, 0xfe
push edx
inc eax
lodsd eax, dword [esi]
or byte [ecx + 4], bl
div dword [edx + 0x61079cb7]
add dword [ebx - 0x2ad98a6e], 0x7f
xchg ebp, eax
fidivr dword [esi - 0x358ed96a]
dec ebp
nop
enter 0x7f6, 0xffffffffffffffbe
and eax, 0xd86273b6
xor eax, 0xa0d668cc
push esp
lodsd eax, dword [esi]
dec esp
pop edi
rcr cl, 1
mov bl, bh
cmc
inc eax
pop es
shl dword [ecx - 0x4fed37c7], 1
cdq
add ebx, eax
mov ebp, 0x2d9d558
insd dword es:[edi], dx
in al, dx
sbb eax, esi
jae 0x48c1c8
insd dword es:[edi], dx
xor byte [eax + 0x6911da16], bl
push ecx
invalid
push ss
ficom dword [ecx]
imul edx, dword [ecx - 0x39], 0xca964678
inc ebp
out dx, eax
mov al, 0x2f
stc
popal
inc ecx
fsubr st(7), st(0)
test eax, 0x61648e56
jb 0x48c283
out dx, al
out dx, al
push edx
mov al, 0xa2
or byte [ebx + ebp*4], dl
or byte [bp + si], 0x4c
into
and dword [ecx + 0x1b4de25a], 0xcec666b9
out 0xe7, eax
salc
pop ss
stc
cmpsd dword [esi], dword es:[edi]
scasb al, byte es:[edi]
outsd dx, dword [esi]
mov al, byte [0xd5d48a84]
scasd eax, dword es:[edi]
and ebx, edx
test dword [esi + edx*4], esp
push esp
dec eax
popal
movsb byte es:[edi], byte [esi]
invalid
push esp
invalid