Function at 0x103d63e
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 [0x12d3ccc], 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 0x103d68a
mov esi, 0x8000ffff
jmp 0x103d808
mov ecx, 0x12d3c9c
call fcn.01033bbf
mov esi, eax
test esi, esi
jl 0x103d808
cmp dword [ebp + 0x10], 0x10
je 0x103d6ae
mov esi, 0x8007000d
jmp 0x103d808
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 0x103d808
mov ebx, dword [ebp - 0x28]
test ebx, ebx
jbe 0x103d732
and dword [ebp - 0x28], 0
test ebx, ebx
jbe 0x103d732
xor edi, edi
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x103d840
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 0x103d808
inc edi
cmp edi, 0x10
jb 0x103d6db
push 0x10
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.01152a88
mov esi, eax
test esi, esi
jl 0x103d808
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ebx
jb 0x103d6d9
xor esi, esi
test ebx, ebx
je 0x103d84e
mov eax, ebx
shl eax, 4
mov ecx, eax
shr ecx, 4
cmp ecx, ebx
je 0x103d847
mov eax, 0x80070216
mov esi, eax
mov ecx, dword [0x12d2c30]
cmp ecx, 0x12d2c30
je 0x103d77c
test byte [ecx + 0x3c], 2
je 0x103d77c
push eax
push 0x10026ac
push 0xc
push dword [ecx + 0x34]
push dword [ecx + 0x30]
call fcn.01032571
test esi, esi
jl 0x103d808
lea eax, [ebp - 0x28]
push eax
push ebx
push dword [ebp + 8]
call fcn.010388d9
mov esi, eax
test esi, esi
jl 0x103d808
mov ebx, dword [ebp - 0x28]
cmp ebx, 0x10
jae 0x103d840
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 0x103d7df
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 8]
jae 0x103d840
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 0x103d808
inc edi
cmp edi, ebx
jb 0x103d7b2
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 0x103d7e6
push 0x10
push dword [ebp - 0x30]
lea eax, [ebp - 0x14]
push eax
call fcn.01152a88
mov esi, eax
test esi, esi
jge 0x103d82d
mov eax, dword [0x12d2c30]
cmp eax, 0x12d2c30
je 0x103d82d
test byte [eax + 0x3c], 2
je 0x103d82d
push esi
push 0x100268c
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 0x103d808
mov ebx, eax
jmp 0x103d77c
xor ebx, ebx
xor esi, esi
jmp 0x103d77c