Function at 0x1089bb0
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x1426ed0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], eax
xor eax, eax
push ebx
push esi
push edi
mov byte [ebp - 0x24], 0
lea edi, [ebp - 0x23]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
cmp dword [0x1428564], 1
mov byte [ebp - 0x14], 0
lea edi, [ebp - 0x13]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
je 0x1089bfc
mov esi, 0x8000ffff
jmp 0x1089d7a
mov ecx, 0x1428534
call fcn.01045628
mov esi, eax
test esi, esi
jl 0x1089d7a
cmp dword [ebp + 0x10], 0x10
je 0x1089c20
mov esi, 0x8007000d
jmp 0x1089d7a
and dword [ebp - 0x2c], 0
lea eax, [ebp - 0x28]
push eax
push 0x10
push dword [ebp + 8]
call fcn.01051bfe
mov esi, eax
test esi, esi
jl 0x1089d7a
mov ebx, dword [ebp - 0x28]
test ebx, ebx
jbe 0x1089ca4
and dword [ebp - 0x28], 0
test ebx, ebx
jbe 0x1089ca4
xor edi, edi
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x1089db2
mov ecx, dword [ebp + 0xc]
mov cl, byte [eax + ecx]
xor cl, byte [ebp + edi - 0x24]
mov byte [ebp + edi - 0x14], cl
lea ecx, [ebp - 0x2c]
push ecx
push 1
push eax
call fcn.01043e7f
mov esi, eax
test esi, esi
jl 0x1089d7a
inc edi
cmp edi, 0x10
jb 0x1089c4d
push 0x10
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.011de976
mov esi, eax
test esi, esi
jl 0x1089d7a
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jb 0x1089c4b
xor esi, esi
test ebx, ebx
je 0x1089dc0
mov eax, ebx
shl eax, 4
mov ecx, eax
shr ecx, 4
cmp ecx, ebx
je 0x1089db9
mov eax, 0x80070216
mov esi, eax
mov ecx, dword [0x1426c54]
cmp ecx, 0x1426c54
je 0x1089cee
test byte [ecx + 0x3c], 2
je 0x1089cee
push eax
push 0x100554c
push 0xc
push dword [ecx + 0x34]
push dword [ecx + 0x30]
call fcn.01043c41
test esi, esi
jl 0x1089d7a
lea eax, [ebp - 0x28]
push eax
push ebx
push dword [ebp + 8]
call fcn.0104ff60
mov esi, eax
test esi, esi
jl 0x1089d7a
mov ebx, dword [ebp - 0x28]
cmp ebx, 0x10
jae 0x1089db2
xor eax, eax
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
test ebx, ebx
jbe 0x1089d51
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x1089db2
mov ecx, dword [ebp + 0xc]
mov cl, byte [eax + ecx]
mov byte [ebp + edi - 0x14], cl
lea ecx, [ebp - 0x2c]
push ecx
push 1
push eax
call fcn.01043e7f
mov esi, eax
test esi, esi
jl 0x1089d7a
inc edi
cmp edi, ebx
jb 0x1089d24
mov byte [ebp + ebx - 0x14], 0x80
xor eax, eax
mov cl, byte [ebp + eax - 0x24]
xor byte [ebp + eax - 0x14], cl
inc eax
cmp eax, 0x10
jb 0x1089d58
push 0x10
push dword [ebp - 0x30]
lea eax, [ebp - 0x14]
push eax
call fcn.011de976
mov esi, eax
test esi, esi
jge 0x1089d9f
mov eax, dword [0x1426c54]
cmp eax, 0x1426c54
je 0x1089d9f
test byte [eax + 0x3c], 2
je 0x1089d9f
push esi
push 0x100546c
push 0xa
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.01043c41
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.01043035
leave
ret 0x10
mov esi, 0x80004005
jmp 0x1089d7a
mov ebx, eax
jmp 0x1089cee
xor ebx, ebx
xor esi, esi
jmp 0x1089cee