Function at 0x1073c75
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x12d3ad4]
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 [0x12d4274], 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 0x1073cc1
mov esi, 0x8000ffff
jmp 0x1073e3f
mov ecx, 0x12d4244
call fcn.01033bbf
mov esi, eax
test esi, esi
jl 0x1073e3f
cmp dword [ebp + 0x10], 0x10
je 0x1073ce5
mov esi, 0x8007000d
jmp 0x1073e3f
and dword [ebp - 0x2c], 0
lea eax, [ebp - 0x28]
push eax
push 0x10
push dword [ebp + 8]
call fcn.0103b265
mov esi, eax
test esi, esi
jl 0x1073e3f
mov ebx, dword [ebp - 0x28]
test ebx, ebx
jbe 0x1073d69
and dword [ebp - 0x28], 0
test ebx, ebx
jbe 0x1073d69
xor edi, edi
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x1073e77
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.010335cd
mov esi, eax
test esi, esi
jl 0x1073e3f
inc edi
cmp edi, 0x10
jb 0x1073d12
push 0x10
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.011c6d3e
mov esi, eax
test esi, esi
jl 0x1073e3f
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jb 0x1073d10
xor esi, esi
test ebx, ebx
je 0x1073e85
mov eax, ebx
shl eax, 4
mov ecx, eax
shr ecx, 4
cmp ecx, ebx
je 0x1073e7e
mov eax, 0x80070216
mov esi, eax
mov ecx, dword [0x12d2c30]
cmp ecx, 0x12d2c30
je 0x1073db3
test byte [ecx + 0x3c], 2
je 0x1073db3
push eax
push 0x1004ecc
push 0xc
push dword [ecx + 0x34]
push dword [ecx + 0x30]
call fcn.01032571
test esi, esi
jl 0x1073e3f
lea eax, [ebp - 0x28]
push eax
push ebx
push dword [ebp + 8]
call fcn.010388d9
mov esi, eax
test esi, esi
jl 0x1073e3f
mov ebx, dword [ebp - 0x28]
cmp ebx, 0x10
jae 0x1073e77
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 0x1073e16
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x1073e77
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.010335cd
mov esi, eax
test esi, esi
jl 0x1073e3f
inc edi
cmp edi, ebx
jb 0x1073de9
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 0x1073e1d
push 0x10
push dword [ebp - 0x30]
lea eax, [ebp - 0x14]
push eax
call fcn.011c6d3e
mov esi, eax
test esi, esi
jge 0x1073e64
mov eax, dword [0x12d2c30]
cmp eax, 0x12d2c30
je 0x1073e64
test byte [eax + 0x3c], 2
je 0x1073e64
push esi
push 0x1004dec
push 0xa
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.01032571
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0128e47a
leave
ret 0x10
mov esi, 0x80004005
jmp 0x1073e3f
mov ebx, eax
jmp 0x1073db3
xor ebx, ebx
xor esi, esi
jmp 0x1073db3