Function at 0x1035b50
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x80
push ebx
xor ebx, ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x10], ebx
je 0x1035d93
movzx edx, word [edi + 0x118]
cmp edx, ebx
mov dword [ebp - 0x10], ebx
jle 0x1035bb4
lea eax, [edi + 0x1c]
mov esi, edx
cmp dword [eax + 4], 0
je 0x1035ba9
cmp dword [eax + 8], 0x200
jbe 0x1035ba9
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x24]
test ecx, 0xa0000000
jne 0x1035ba3
test cl, 0x20
je 0x1035ba9
cmp ebx, 2
jge 0x1035ba9
inc ebx
add eax, 0x10
sub esi, 1
jne 0x1035b82
mov dword [ebp - 0x10], ebx
xor esi, esi
cmp edx, esi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], esi
jle 0x1035d93
lea edx, [esi + 2]
shl edx, 4
mov ecx, dword [edx + edi]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x1035d79
mov eax, esi
shl eax, 4
lea edx, [eax + edi]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x1c], eax
cmp eax, 0x200
jbe 0x1035d79
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + 0x24]
test edx, 0xa0000000
jne 0x1035c08
test dl, 0x20
je 0x1035d79
cmp dword [ebp - 8], 2
jge 0x1035d79
mov esi, eax
shr esi, 5
mov dword [ebp + 0x10], 0
mov ebx, ecx
mov dword [ebp - 0x14], esi
cmp esi, 0x200
jae 0x1035c54
lea edi, [esi + esi]
xor esi, esi
mov dword [ebp + 0x10], 0x10
push edi
push ebx
call fcn.01032920
mov byte [ebp + esi - 0x3c], al
xor al, 0x2a
mov byte [ebp + esi - 0x3b], al
add esi, 2
add ebx, edi
cmp esi, 0x20
jl 0x1035c37
jmp 0x1035ccf
xor edi, edi
jmp 0x1035c69
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp edi, 2
jge 0x1035c75
mov esi, pe_nt_image_headers32
jmp 0x1035ca7
cmp edi, 4
jge 0x1035c81
mov esi, 0x200
jmp 0x1035ca7
cmp edi, 0x1e
jne 0x1035c9c
mov esi, eax
sub esi, ebx
add esi, ecx
cmp esi, 0x400
jbe 0x1035ca7
sub esi, 0x200
jmp 0x1035ca7
cmp edi, 0x1f
jne 0x1035ca7
mov esi, eax
sub esi, ebx
add esi, ecx
push esi
push ebx
call fcn.01032920
mov byte [ebp + edi - 0x3c], al
test al, al
jne 0x1035cc7
inc dword [ebp + 0x10]
test edi, edi
jle 0x1035cc7
mov al, byte [ebp + edi - 0x3d]
xor al, 0x2a
mov byte [ebp + edi - 0x3c], al
inc edi
add ebx, esi
cmp edi, 0x20
jl 0x1035c60
mov ebx, dword [ebp - 8]
cmp ebx, 1
jne 0x1035cf2
mov ecx, 8
cmp dword [ebp + 0x10], ecx
jle 0x1035cf2
lea esi, [ebp - 0x5c]
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0x20
jmp 0x1035d0d
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 4]
push ebx
push ecx
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp + esi - 0x80]
push eax
call fcn.01035a50
add esi, eax
mov dword [ebp - 4], esi
xor ecx, ecx
xor eax, eax
movzx esi, byte [ebp + eax - 0x3b]
movzx edx, byte [ebp + eax - 0x3c]
add edx, esi
movzx esi, byte [ebp + eax - 0x39]
add edx, esi
movzx esi, byte [ebp + eax - 0x3a]
add esi, ecx
add eax, 4
cmp eax, 0x20
lea ecx, [esi + edx]
jl 0x1035d11
cmp dword [ebp - 0xc], 0
jne 0x1035d62
mov eax, 0x8421085
mul ecx
mov eax, dword [ebp + 0xc]
sub ecx, edx
shr ecx, 1
add ecx, edx
mov edx, dword [eax + 0xfbd4]
shr ecx, 9
mov byte [edx + eax + 0xf7d0], cl
inc dword [eax + 0xfbd4]
mov ecx, 8
lea esi, [ebp - 0x3c]
lea edi, [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
inc ebx
mov dword [ebp - 8], ebx
movzx eax, word [edi + 0x118]
inc esi
cmp esi, eax
mov dword [ebp - 0xc], esi
jl 0x1035bc4
mov eax, dword [ebp - 4]
test eax, eax
jne 0x1035dbf
mov ebx, dword [edi]
mov edi, dword [edi + 4]
shr edi, 5
xor esi, esi
lea ecx, [ecx]
push edi
push ebx
call fcn.01032920
mov byte [ebp + esi - 0x80], al
inc esi
add ebx, edi
cmp esi, 0x20
jl 0x1035da0
mov dword [ebp - 4], 0x20
mov eax, dword [ebp - 4]
jmp 0x1035dc9
cmp eax, 0x20
jle 0x1035dc9
mov eax, 0x20
mov ecx, dword [ebp + 0xc]
add ecx, 0xf708
push ecx
push eax
lea edx, [ebp - 0x80]
push edx
call fcn.0102cf90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc