Function at 0x1051754
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
xor edi, edi
push 0x100426c
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], edi
call fcn.01038347
call fcn.01254918
jge 0x105177f
add al, al
add dword fs:[0x2d016810], ebp
push eax
std
shl byte [ecx + eax + 0x2d], 0x10
push 0xfd502d01
xor al, 7
mov al, byte [0x393dbe8]
add al, bh
mov byte [eax + edx*8], ch
dec edi
mov eax, dword [0x29800e]
add al, dh
cld
mov byte [eax + edx*2], ch
call fcn.01296fd1
and al, 0
add byte [eax - 0xc], al
dec edx
sub al, 0xd0
cmp dl, cl
and byte [eax - 0x6fd3b508], al
call fcn.01032a62
loope 0x105183b
pop eax
pushal
aas
add byte [eax], al
push eax
insb byte es:[edi], dx
aas
sub al, 0x90
cmp dword [ecx + 0x60], ebp
mov esi, dword [0x12d42e8]
lea eax, [esi + 4]
push eax
lea ecx, [ebp - 0x10]
call fcn.0104ce48
call fcn.0125bfba
rol dword [0xaf3200b3], 1
or edx, dword [eax + 0x78]
shr dword [eax + edx*2], 0xad
add byte [eax], al
ror byte [ebp - 0xaf0bbb], 0x75
or byte [ebx - 0x19f81732], cl
add eax, dword [eax]
call fcn.01031025
jl 0x105184f
sbb byte [eax - 0x6bafd3ef], 0x11
sub al, 0xf0
loopne 0x1051813
add byte [eax], dl
mov ebx, eax
cmp ebx, edi
jl 0x10519c4
call fcn.0125bfba
mov byte [0xb2c0b2ab], al
sbb eax, 0xaaec300d
sub al, 0x60
and al, byte [eax]
add byte [eax], ah
call fcn.01032a62
mov dword [edx + 0x59], eax
pop ecx
pushal
and eax, 0x40d00000
mov eax, dword [0x87ef002c]
or eax, 0x5783e830
and al, 0
cmp al, 0
add byte [eax], al
adc byte [eax - 4], dh
add byte [eax], dl
jo 0x1051850
sub esi, dword [eax]
add al, 0xeb
and al, 0xa0
je 0x1051858
sub esi, eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
lea edx, [ebp - 0x14]
push edx
lea edx, [ebp - 8]
push edx
push eax
call dword [ecx + 0xc]
call fcn.01077ff4
add byte cs:[eax], al
cmp byte [eax], 0x92
sub al, 0xd0
cli
femms
loopne 0x10518b5
xchg edx, eax
sub al, 0xf0
call fcn.0121d60e
je 0x10518c0
sub al, 0x40
cmp bl, dh
and dword [eax - 0x1fffffd0], eax
jo 0x10518cc
loopne 0x1051906
xor eax, 0x1ce8702c
cmpsd dword [esi], dword es:[edi]
and byte [eax], al
sub al, 0x70
call fcn.0125bfba
xor ah, byte [edi - 0x51]
sub al, 0xa7
adc al, 0xd9
sub esp, dword [eax]
sub eax, 0xe8500000
mov ecx, 0xb4000392
shr dword [ebx], cl
add byte [edx + 0xe], ch
sub eax, dword [eax]
push 0xe
daa
invalid
shr dword [ebx], cl
adc byte [ebx + 0xfdf3bd8], cl
invalid
add al, ch
lodsd eax, dword [esi]
in eax, dx
sbb eax, dword [eax]
inc ebx
outsd dx, dword [esi]
push es
mov al, 0xc5
add eax, dword [eax]
add byte [edi + ecx + 0xf80602d], 0x2d
push eax
call fcn.01077ff4
xor dword [eax], eax
add byte [eax - 0x1fd36d5c], al
xor byte [esi], cl
push cs
jo 0x1051894
xchg edx, eax
sub al, 0xd0
call fcn.0121d60e
sub byte [ebx + 0x2c], cl
add byte [edx + 0xeb020c9], al
add byte [eax], al
nop
and al, 0x4b
sub al, 0xb0
add byte [eax - 0x4fd3b4dc], dl
push dword [ebp - 8]
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
call fcn.01077ff4
pushfd
add byte [eax], al
add byte [ebx + ebp - 0x76999fd3], bh
add eax, eax
mov eax, 0xe8402d2b
out 0x2f, eax
and byte [eax], al
mov cl, 0
add al, ah
movsb byte es:[edi], byte [esi]
call 0xe9ad2967
sub al, 0x90
ljmp 0x111c
add al, byte [eax]
add al, ch
and eax, 0x81002456
add byte [eax], al
invalid
push esi
and al, 0
add dword [eax], 0x96e4f000
sub al, 0
add esi, ebp
or eax, 0x2c96e860
invalid
call fcn.012049f6
loopne 0x10519a4
sub al, 0x20
in al, 0xd9
sub al, 0xb0
scasb al, byte es:[edi]
add byte [eax], al
mov al, 0x86
test byte [ecx], cl
pushal
call fcn.0125bfba
arpl si, bx
mov al, 0xc0
jns 0x10519a9
and dword [eax - 0x4fd3c864], esi
scasb al, byte es:[edi]
add byte [eax], al
inc eax
mov eax, dword [0x12d2c30]
cmp eax, 0x12d2c30
je 0x1051a67
insd dword es:[edi], dx
call fcn.01254918
mov bh, 3
add byte [eax], ah
fdivr qword [ebp - 0x421f3fd5]
sub esp, dword [eax + 0x53]
std
sub byte [eax + 0x1bec6be8], dl
add byte [esi + 0x16a029d8], al
add byte [eax], al
shr ah, 0xb1
sub edx, dword [eax - 0x18]
mov cl, 0x2b
loopne 0x1051a1b
inc eax
cmp al, 2
je 0x1051a67
call fcn.01031025
shr byte [eax], cl
sbb al, al
mov eax, 0xb4b02cab
stosd dword es:[edi], eax
sub al, 0xa0
push ds
add byte [eax], al
jo 0x1051a28
mov dl, 0x2f
sbb eax, dword [eax]
sbb al, 0x59
sub al, 0x90
and byte [ecx + 0x2c], bl
cmp byte [eax + eax], 0
rol dl, 1
fistp word [esi]
adc byte [ebx + 0x68], dl
pushfd
add byte es:[ecx], al
push 0x23
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.01032571
call fcn.0108ab6c
jl 0x1051a33
sub al, 0xf0
push edi
jg 0x1051a7e
mov al, 0x1b
add byte [eax], al
jo 0x10519f9
lds ebp, [eax + edx*4]
call fcn.01077ff4
add al, byte gs:[eax]
lodsd eax, dword [esi]
add byte [eax], al
and al, ch
dec ebx
sub al, 0xd0
call 0xe5653b4b
dec ebx
sub al, 0x70
call fcn.01254918
push cs
add byte [eax], al
add byte [esp + edx*8 + 0x2b], al
ror byte [eax - 0x2c], 0x2b
pushal
inc eax
or byte [edi], ah
invalid