Function at 0x1035390
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 0x10355d3
movzx edx, word [edi + 0x118]
cmp edx, ebx
mov dword [ebp - 0x10], ebx
jle 0x10353f4
lea eax, [edi + 0x1c]
mov esi, edx
cmp dword [eax + 4], 0
je 0x10353e9
cmp dword [eax + 8], 0x200
jbe 0x10353e9
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x24]
test ecx, 0xa0000000
jne 0x10353e3
test cl, 0x20
je 0x10353e9
cmp ebx, 2
jge 0x10353e9
inc ebx
add eax, 0x10
sub esi, 1
jne 0x10353c2
mov dword [ebp - 0x10], ebx
xor esi, esi
cmp edx, esi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], esi
jle 0x10355d3
lea edx, [esi + 2]
shl edx, 4
mov ecx, dword [edx + edi]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10355b9
mov eax, esi
shl eax, 4
lea edx, [eax + edi]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x1c], eax
cmp eax, 0x200
jbe 0x10355b9
mov edx, dword [edx + 0x1c]
mov edx, dword [edx + 0x24]
test edx, 0xa0000000
jne 0x1035448
test dl, 0x20
je 0x10355b9
cmp dword [ebp - 8], 2
jge 0x10355b9
mov esi, eax
shr esi, 5
mov dword [ebp + 0x10], 0
mov ebx, ecx
mov dword [ebp - 0x14], esi
cmp esi, 0x200
jae 0x1035494
lea edi, [esi + esi]
xor esi, esi
mov dword [ebp + 0x10], 0x10
push edi
push ebx
call fcn.01032160
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 0x1035477
jmp 0x103550f
xor edi, edi
jmp 0x10354a9
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp edi, 2
jge 0x10354b5
mov esi, pe_nt_image_headers32
jmp 0x10354e7
cmp edi, 4
jge 0x10354c1
mov esi, 0x200
jmp 0x10354e7
cmp edi, 0x1e
jne 0x10354dc
mov esi, eax
sub esi, ebx
add esi, ecx
cmp esi, 0x400
jbe 0x10354e7
sub esi, 0x200
jmp 0x10354e7
cmp edi, 0x1f
jne 0x10354e7
mov esi, eax
sub esi, ebx
add esi, ecx
push esi
push ebx
call fcn.01032160
mov byte [ebp + edi - 0x3c], al
test al, al
jne 0x1035507
inc dword [ebp + 0x10]
test edi, edi
jle 0x1035507
mov al, byte [ebp + edi - 0x3d]
xor al, 0x2a
mov byte [ebp + edi - 0x3c], al
inc edi
add ebx, esi
cmp edi, 0x20
jl 0x10354a0
mov ebx, dword [ebp - 8]
cmp ebx, 1
jne 0x1035532
mov ecx, 8
cmp dword [ebp + 0x10], ecx
jle 0x1035532
lea esi, [ebp - 0x5c]
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], 0x20
jmp 0x103554d
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.01035290
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 0x1035551
cmp dword [ebp - 0xc], 0
jne 0x10355a2
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 0x1035404
mov eax, dword [ebp - 4]
test eax, eax
jne 0x10355ff
mov ebx, dword [edi]
mov edi, dword [edi + 4]
shr edi, 5
xor esi, esi
lea ecx, [ecx]
push edi
push ebx
call fcn.01032160
mov byte [ebp + esi - 0x80], al
inc esi
add ebx, edi
cmp esi, 0x20
jl 0x10355e0
mov dword [ebp - 4], 0x20
mov eax, dword [ebp - 4]
jmp 0x1035609
cmp eax, 0x20
jle 0x1035609
mov eax, 0x20
mov ecx, dword [ebp + 0xc]
add ecx, 0xf708
push ecx
push eax
lea edx, [ebp - 0x80]
push edx
call fcn.0102c830
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc