Function at 0x10017545
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [0x1003fb54]
sub esp, 0x44
mov eax, str.GdipCloneMatrix
xor edx, edx
lea eax, [eax + 2]
xor ecx, 0x3def4992
cmp word [eax], dx
jne 0x10017558
push ebx
push esi
push edi
push 0xa
pop ecx
mov esi, str.3_3_3L3P3_3d3h3l3t3
lea edi, [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
push 0x47
pop ecx
mov ebx, edx
cmp cx, word [ebp - 0x38]
jne 0x100175c1
mov eax, edx
test cx, cx
je 0x100175a1
cmp word [ebp + eax - 0x38], dx
je 0x100175a1
inc ebx
lea eax, [ebx + ebx]
movzx ecx, word [eax + str.GdipCloneMatrix]
cmp cx, word [ebp + eax - 0x38]
je 0x10017583
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
cmp eax, ebx
jae 0x100175c1
mov ebx, dword [0x1003fc2c]
mov ecx, dword [ebp - 4]
xor ebx, 0x7d9fb5d4
inc eax
cmp eax, ecx
jb 0x100175b4
jmp 0x100175c7
mov ebx, dword [0x1003fc2c]
mov esi, str.groks_the
lea edi, [ebp - 0x10]
lea eax, [ebx - 0x596f56a0]
mov dword [ebp - 4], eax
mov eax, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x10], 0x39
jne 0x100175fd
mov cl, 0x39
test cl, cl
je 0x100175fd
cmp byte [ebp + eax - 0x10], dl
je 0x100175fd
mov cl, byte [eax + 0x100381f9]
inc eax
cmp cl, byte [ebp + eax - 0x10]
je 0x100175e6
push 0xc
pop ecx
mov esi, 0x100379dc
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
push 0x41
pop eax
movsw word es:[edi], word [esi]
cmp ax, word [ebp - 0x44]
jne 0x1001765d
mov esi, eax
mov ecx, edx
mov eax, edx
test si, si
je 0x10017639
cmp word [ebp + eax - 0x44], dx
je 0x10017639
inc ecx
lea eax, [ecx + ecx]
movzx esi, word [eax + str.AMicrosoftVault_]
cmp si, word [ebp + eax - 0x44]
je 0x1001761b
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 4]
jmp 0x10017657
cmp eax, 0xe49
jne 0x10017650
mov ebx, esi
or ebx, 0x22be1fb1
imul esi, ebx, 0x954d1e07
inc eax
cmp eax, ecx
jb 0x10017641
jmp 0x10017660
mov esi, dword [ebp - 4]
mov eax, edx
inc eax
cmp word [eax*2 + str.GdipCloneMatrix], dx
jne 0x10017662
mov ecx, dword [ebp - 4]
jmp 0x10017687
cmp ecx, 0x11d0
jne 0x10017680
or ebx, 0x814559d2
add esi, 0x3339e0d3
inc ecx
cmp ecx, eax
jb 0x10017672
mov eax, str.._AVwxDialogLayoutAdapterModule__
lea eax, [eax + 2]
lea esi, [esi + 0x6d9a7d45]
cmp word [eax], dx
jne 0x10017690
lea eax, [ebx - 0x5878c04d]
mov esi, edx
lea ecx, [ebx + 0x60d5c54c]
mov dword [0x1003fb54], eax
mov dword [0x1003fb84], ecx
add ebx, 0x33a4e545
inc esi
cmp word [esi*2 + str.AMicrosoftVault_], dx
jne 0x100176b7
mov ecx, dword [ebp - 4]
cmp ecx, esi
jae 0x100176ec
or eax, 0x315d2958
mov dword [0x1003fb84], eax
cmp ecx, 0x25d6
jne 0x100176e7
and ebx, 0x699f9802
inc ecx
cmp ecx, esi
jb 0x100176d9
push 0xd
pop ecx
mov esi, str.JwxGenericCollapsiblePane
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
push 0x41
pop esi
mov eax, edx
cmp si, word [ebp - 0x44]
jne 0x10017724
mov ecx, edx
test si, si
je 0x10017724
cmp word [ebp + ecx - 0x44], dx
je 0x10017724
inc eax
lea ecx, [eax + eax]
movzx esi, word [ecx + str.AMicrosoftVault_]
cmp si, word [ebp + ecx - 0x44]
je 0x10017706
movzx ecx, byte [eax*2 + str.AMicrosoftVault_]
movzx eax, byte [ebp + eax*2 - 0x44]
sub ecx, eax
cmp ecx, 0x15b1
jne 0x1001774c
sub dword [0x1003fb84], 0x246e12c7
mov eax, dword [0x1003fb54]
jmp 0x10017758
mov eax, ebx
xor eax, 0x29cb6533
mov dword [0x1003fb54], eax
pop edi
lea ecx, [eax + 0x6e5630ae]
pop esi
mov dword [0x1003fc2c], ecx
pop ebx
inc edx
cmp byte [edx + str.9_919A9Q9a9q9], 0
jne 0x10017767
cmp edx, 0x23de
jae 0x10017787
xor ecx, 0x36fdd61b
mov dword [0x1003fc2c], ecx
leave
ret
imul eax, eax, 0x639d51fe
mov dword [0x1003fb54], eax
leave
ret