Function at 0x424d93
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov dword [ebp - 0xc], edx
mov edx, ecx
push ebx
xor ebx, ebx
mov dword [ebp - 8], edx
push esi
mov cl, byte [edx]
mov eax, ebx
mov byte [ebp - 1], cl
test cl, cl
je 0x424dc2
mov ecx, dword [0x435c1c]
xor ecx, 0xb44449cb
inc eax
cmp byte [eax + edx], bl
jne 0x424db6
push edi
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x60]
push 0xf
imul edx, dword [ebp + 0xc], 0xd5733ea0
mov esi, str.onecoreuap_base_appmodel_searchcommon_tracer_tracersecutil.h
pop ecx
mov al, byte [eax]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [ebp - 1]
mov byte [ebp - 2], al
mov eax, ebx
movsw word es:[edi], word [esi]
cmp cl, byte [ebp - 0x60]
jne 0x424e02
mov esi, dword [ebp - 8]
test cl, cl
je 0x424e02
cmp byte [ebp + eax - 0x60], bl
je 0x424e02
inc eax
mov cl, byte [esi + eax]
cmp cl, byte [ebp + eax - 0x60]
je 0x424dee
mov esi, dword [ebp - 8]
movzx ecx, byte [eax + esi]
movzx eax, byte [ebp + eax - 0x60]
sub ecx, eax
cmp ecx, 0xa9b
jbe 0x424e21
imul edx, dword [ebp + 0xc], 0xdf630cf
jmp 0x424e27
and edx, 0xb58b1639
mov eax, ebx
cmp byte [ebp - 1], al
je 0x424e64
add edx, 0xbfd5f2d4
inc eax
cmp byte [eax + esi], bl
jne 0x424e2e
mov ecx, dword [ebp + 0xc]
cmp ecx, eax
jae 0x424e64
mov esi, edx
mov edi, edx
mov edx, edi
cmp ecx, 0x1089
jne 0x424e55
imul edx, esi, 0x64f8fd04
and edx, 0xf863fa87
inc ecx
mov esi, edx
mov edi, esi
cmp ecx, eax
jb 0x424e45
mov esi, str.ItemCacheContext
lea edi, [ebp - 0x20]
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x20], 0x6e
jne 0x424eb0
mov cl, 0x6e
test cl, cl
je 0x424e92
cmp byte [ebp + eax - 0x20], bl
je 0x424e92
mov cl, byte [eax + 0x4330b5]
inc eax
cmp cl, byte [ebp + eax - 0x20]
je 0x424e7b
mov ecx, dword [ebp + 0xc]
jmp 0x424eac
cmp ecx, 0x11a2
jne 0x424ea5
imul edx, edx, 0x7e38a40e
imul edx, edx, 0x65095fb4
inc ecx
cmp ecx, eax
jb 0x424e97
mov esi, dword [ebp - 0xc]
mov ecx, ebx
lea edx, [esi - 0x20e11231]
inc ecx
cmp word [ecx*2 + 0x432ec0], bx
jne 0x424ebb
mov eax, dword [ebp + 0xc]
jmp 0x424ee1
cmp eax, 0x1611
jne 0x424eda
mov edx, esi
or edx, 0xd8a1b9bb
sub edx, 0x4ccd62e8
inc eax
cmp eax, ecx
jb 0x424ecb
push 0xe
pop ecx
mov esi, str.RtlQueryFeatureConfiguration
lea edi, [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
push 0x6d
pop ecx
mov edx, ebx
movsw word es:[edi], word [esi]
pop edi
cmp cx, word [ebp - 0x5c]
jne 0x424f20
mov eax, ebx
test cx, cx
je 0x424f20
cmp word [ebp + eax - 0x5c], bx
je 0x424f20
inc edx
lea eax, [edx + edx]
movzx ecx, word [eax + str.message_size]
cmp cx, word [ebp + eax - 0x5c]
je 0x424f02
movzx eax, byte [ebp + edx*2 - 0x5c]
movzx ecx, byte [edx*2 + str.message_size]
mov edx, dword [ebp + 0xc]
sub ecx, eax
mov eax, edx
add edx, 0xb4c6287e
or eax, 0x3fe10690
cmp ecx, 0xed
cmovbe edx, eax
mov dword [0x435c1c], edx
cmp byte [ebp - 1], bl
je 0x424f98
mov esi, dword [ebp - 8]
or edx, 0x63fe9156
inc ebx
cmp byte [ebx + esi], 0
jne 0x424f56
mov eax, dword [ebp + 0xc]
mov dword [0x435c1c], edx
cmp eax, ebx
jae 0x424f98
mov ecx, edx
mov esi, edx
mov edx, esi
cmp eax, 0xebf
jne 0x424f83
imul edx, ecx, 0xa7378c86
and edx, 0xc90b52e3
inc eax
mov dword [0x435c1c], edx
mov ecx, edx
mov esi, ecx
cmp eax, ebx
jb 0x424f74
cmp byte [ebp - 2], 0
pop esi
pop ebx
je 0x424fb5
mov eax, dword [ebp + 8]
xor edx, 0x4ea8c365
inc eax
cmp byte [eax], 0
jne 0x424fa3
mov dword [0x435c1c], edx
leave
ret