Function at 0x71edb36c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.71e84c7c
xor eax, eax
push ebp
push 0x71edb5f1
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.user32.dll_GetKeyboardType_1
push ecx
sub ecx, 0xe6
or ecx, 0x54
dec ecx
mov ecx, 0x70
xor ecx, 0xc0
xor ecx, 0x182
push ecx
pop ecx
mov ecx, 0x113
dec ecx
mov ecx, 0xc4
and ecx, 0x85
pop ecx
lea eax, [ebp - 0x10]
call fcn.71e847c8
push edx
or edx, 0x198
xor edx, 0x15a
xchg edx, edx
sub edx, 0x173
xor edx, 0x15e
push edx
pop edx
xor edx, 0xc3
pop edx
push 1
call sub.user32.dll_GetMenu
push eax
push eax
pop eax
xor eax, 0x129
mov eax, 0x3f
inc eax
sub eax, 0x6e
xor eax, 0x4e
pop eax
mov dl, 1
mov eax, dword [0x71e92598]
call fcn.71e83984
mov dword [ebp - 0x1c], eax
push ebx
push edi
xchg ebx, ebx
nop
nop
dec ebx
push edi
pop edi
inc edi
sub ebx, 0x133
dec edi
dec edi
or edi, 0x12b
xor ebx, 0xd6
xor edi, 0x7f
dec ebx
pop edi
pop ebx
push 1
call sub.gdi32.dll_DeleteEnhMetaFile
mov dl, 0x20
mov eax, dword [ebp - 0x1c]
call fcn.71e95e00
push 1
call sub.kernel32.dll_CancelWaitableTimer
push ebx
push edx
dec edx
push ebx
pop ebx
dec ebx
xor ebx, 0x138
dec edx
xchg ebx, ebx
and edx, 0xd3
dec ebx
add edx, 0x13e
and ebx, 0x141
or ebx, 0xe2
xchg edx, edx
or ebx, 0x15
mov edx, 0x142
pop edx
pop ebx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.71e95be8
push 1
call sub.gdi32.dll_GetObjectType
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x71edb59a
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
push 1
call sub.gdi32.dll_DeleteObject
push ebx
and ebx, 0x15b
inc ebx
push ebx
pop ebx
nop
nop
nop
nop
and ebx, 0x7b
pop ebx
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x28]
call fcn.71e889a4
mov dword [ebp - 0x18], eax
push ecx
add ecx, 0x43
mov ecx, 0xe0
mov ecx, 0x17b
sub ecx, 0x125
nop
nop
nop
nop
nop
inc ecx
sub ecx, 0x144
or ecx, 5
dec ecx
add ecx, 0x161
xchg ecx, ecx
pop ecx
push 1
call sub.user32.dll_GetWindowDC
lea eax, [ebp - 0x2c]
mov dl, byte [ebp - 0x18]
add dl, byte [ebp - 8]
call fcn.71e849b0
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.71e84a94
push 1
call sub.user32.dll_GetMenu
push eax
push eax
pop eax
xor eax, 0x129
mov eax, 0x3f
inc eax
sub eax, 0x6e
xor eax, 0x4e
pop eax
call sub.user32.dll_GetKBCodePage
push esi
xchg esi, esi
mov esi, 0xa
or esi, 0x23
or esi, 0x39
inc esi
inc esi
and esi, 0x7f
nop
nop
or esi, 0x73
and esi, 0x89
sub esi, 0xae
pop esi
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x71edb4c9
call sub.kernel32.dll_GetUserDefaultLCID
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.71e8481c
push ecx
inc ecx
or ecx, 0x1e
and ecx, 0x86
xor ecx, 0x15e
xchg ecx, ecx
add ecx, 0xf1
xchg ecx, ecx
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x71edb5f8
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.71e847ec
lea eax, [ebp - 0x10]
call fcn.71e847c8
lea eax, [ebp - 4]
call fcn.71e847c8
ret