Function at 0x49e49d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x49e4ba
cmp dword [ebx + 0x2c], 0
jne 0x49e4bf
mov edi, ebx
mov dword [ebp + 0xc], edi
cmp dword [edi + 0x1c], ebx
je 0x49e4c7
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 0x40
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x18], 0
mov dword [ebx + 0x2e4], 0
mov dword [ebx + 0x2e8], 0
mov dword [ebp - 0x10], 0x40
call fcn.0049ac7d
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
test esi, esi
jne 0x49e51d
push 0x660558
call fcn.0049d35d
add esp, 4
xor eax, eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x3c]
push edi
push ebx
mov dword [ebp - 4], esi
call eax
add esp, 8
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x2f0]
push ebx
call eax
mov edi, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x1c], eax
cmp esi, edi
jbe 0x49e65b
cmp eax, 0x3c
je 0x49e555
cmp eax, 0xffffffff
jne 0x49e664
mov edi, dword [ebp - 0x14]
mov byte [esi], 0
cmp edi, 2
je 0x49e565
cmp edi, 0xffffffff
jne 0x49e573
push dword [ebp + 8]
call fcn.0049c6dd
add esp, 4
mov dword [ebp - 4], eax
push dword [ebp + 8]
xor esi, esi
call fcn.0049ba8d
add esp, 4
test eax, eax
je 0x49e64a
mov eax, edi
sub eax, 1
je 0x49e5f8
sub eax, 1
je 0x49e5dc
sub eax, 1
jne 0x49e64a
cmp dword [ebx + 0x44], esi
je 0x49ec4a
mov edi, dword [ebp - 8]
mov dword [edi + 0x18], 3
push dword [ebp + 8]
mov eax, dword [ebx + 0x44]
push edi
push ebx
call eax
add esp, 0xc
test eax, eax
jne 0x49e64a
push dword [edi]
push dword [ebp + 8]
push 0x6605a0
call fcn.0049d35d
add esp, 0xc
jmp 0x49ed89
mov edi, dword [ebp - 8]
push 1
mov dword [edi + 0x18], 2
push dword [ebp + 8]
push edi
call fcn.0049fd7d
add esp, 0xc
test eax, eax
jmp 0x49e644
cmp dword [ebx + 0x2e8], esi
je 0x49e62f
push dword [ebp + 8]
call fcn.0049bd0d
mov edi, dword [ebp - 8]
add esp, 4
cmp byte [eax], 0
je 0x49e632
cmp dword [edi + 0x18], esi
jne 0x49e632
mov dword [edi + 0x18], 1
push dword [ebp + 8]
push edi
call fcn.0049e1ed
add esp, 8
test eax, eax
jmp 0x49e644
mov edi, dword [ebp - 8]
push dword [ebp + 8]
push 0
push edi
call fcn.0049e18d
mov esi, eax
add esp, 0xc
test esi, esi
je 0x49ec5c
mov eax, dword [ebp - 0xc]
test eax, eax
mov edi, dword [ebp + 8]
cmove eax, esi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 0xffffffff
je 0x49ed5b
cmp eax, 0x3c
jne 0x49ec0b
mov eax, dword [ebx + 0x2f0]
push ebx
mov dword [ebp - 4], edi
call eax
mov esi, eax
add esp, 4
cmp esi, 0xffffffff
je 0x49e796
nop word [eax + eax]
push esi
call fcn.0049ccad
add esp, 4
test eax, eax
jne 0x49e796
cmp esi, 0x3e
je 0x49e796
cmp esi, 0x2f
jne 0x49e6b7
cmp edi, dword [ebp + 8]
ja 0x49e796
jmp 0x49e717
cmp esi, 0x3c
je 0x49ec74
cmp esi, 0x26
jne 0x49e6ff
push dword [ebp - 8]
push ebx
call fcn.0049f24d
add esp, 8
cmp eax, 0xffffffff
je 0x49ed89
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp + 8]
push ecx
lea ecx, [ebp - 4]
push ecx
push eax
call fcn.0049e37d
add esp, 0x10
test eax, eax
je 0x49ed89
mov edi, dword [ebp - 4]
jmp 0x49e77f
cmp esi, 0x30
jge 0x49e717
cmp esi, 0x21
je 0x49e717
cmp esi, 0x2d
je 0x49e717
cmp esi, 0x2e
jne 0x49ed89
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
invalid
push edx
mov dword [ecx - 0x165d4d38], ebp
mov eax, 0x4c786c5a
in al, dx
insd dword es:[edi], dx
leave
stc
stc
leave
sub al, 0x9a
invalid
in eax, 0xc
cmp dword [ecx + edi*2 - 0x2725e3a7], edi
pop edx
xor al, 0x3a
inc ebx
mov edx, 0x4b93b095
xchg ebx, eax
dec ebx
add dword [ebx - 0x45165842], 0xffffff94
xor dword [ebx + 0xc], esp
in eax, dx
bound ebx, qword [esi + 0x6e]
pushfd
movsd dword es:[edi], dword [esi]
mov dh, 0xb9
pushfd
inc edi
mov eax, dword [0xdbfd96a5]
jnp 0x49e7a6
and eax, 0x68d3d074
xchg eax, ebx
insd dword es:[edi], dx
leave
xchg edi, eax
ficomp word [eax - 0x351834e8]
pop esi
les edi, [ecx]
mov ebx, dword [eax + 0x68]
xchg byte [esi], dl
inc ecx
stc
retf 0xec9c
mov ebp, 0xe29b6727
aaa
shl dword [ecx + 0x1d], cl
dec ebp
xor eax, 0x90be71e7
add bl, byte [ecx + 0x3f]
imul ebx, dword [ecx - 0x599dd7ab], 0xdc18c1cb
sti
cmp dword [edx - 0x4a070e11], ebx
adc byte [ebx + ecx], ah
push 8
fsubr dword [esi + 0x7b]
dec esp
mov edi, dword [eax]
dec edi
dec edx
cli
imul ebx, dword [ecx + 0x3537aa57], 0x49e3552a
enter 0xffffffffffff9cfb, 0xffffffffffffffd4
mov bl, al
dec ebx
and eax, 0x8da8b8f1
pop edx
mov esp, 0x3e188801
leave
inc ebx
mov eax, 0xbc5a8da8
add dword [eax + 0x43c93e18], ecx
enter 0xffffffffffff8cc8, 0x48
dec eax
popfd
in eax, dx
ja 0x49eb6f
fild qword [edx + 0xc60920]
jp 0x49ebdf
and byte [ecx], cl
mov byte [eax], 0x7a
adc byte [eax + 0x5f], dl
push eax
pop edi
retf 0xc3f
xchg edi, eax
ja 0x49ec4a
push eax
push 0x70e07848
pop eax
lodsd eax, dword [esi]
push ebx
lodsd eax, dword [esi]
call 0x69859b11
cmp eax, 0x20daf442
jb 0x49ebb3
xchg esi, eax
js 0x49ebc9
int1
clc
and eax, 0xbcbd0a68
dec esi
mov ebp, 0xa1aee740
push eax
in eax, dx
jmp 0xe07de6cf
sar dl, 0x33
loopne 0x49ec10
inc edx
add eax, 0x59b35891
xor byte [ecx + 0x43], cl
idiv byte [ebx - 0x28]
dec ecx
salc
invalid
std
loopne 0x49ebe0
in al, dx
xlatb
xor al, 0x3e
stc
mov al, byte [0x90690e2b]
mov bl, 0x67
pop ds
insd dword es:[edi], dx
mov al, byte [0x59ca]
inc esi
sub esp, dword [eax]
adc edx, ecx
iretd
cmp eax, dword [ebx]
sbb byte [ebx - 0x6bb32595], bh
or byte [eax + ecx*4 - 0x6640fead], cl
invalid
test al, 0x63
sbb dword [eax], ebx
sub ecx, dword [0x557c9927]
pop edi
mov edx, 0x7f2ea88d
mov ebp, dword [edx + 0x2c67fd7c]
sub ch, dh
add eax, 0x1ad2f004
call 0x555878b6
xchg edi, eax
or al, 0xb8
or ch, bh
movsd dword es:[edi], dword [esi]
test al, 0xd8
bound esi, qword [ebx - 0x20]
add al, 0xe5
lcall 0xbbb6, 0xf2b8a415
mov byte [ebx + 0x63d8c57c], dl
jb 0x49ed86
mov ebx, 0xc57c9388
jl 0x49ed50
fsub dword [ebx + 0x72]
not dword [edx + 0x39ee060d]
invalid
xchg edx, eax
or eax, 0xfe39ee06
mov esp, 0x789ec831
mov eax, 0x7bf78f15
mov edx, 0xc2909fbc
cmpsb byte [esi], byte es:[edi]
fild qword [ecx + 0x590a396e]
ljmp 0x7028