Function at 0x10040368
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005ef5d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x70
cmp byte [ebp + 0xc], 0
mov eax, ecx
push ebx
push esi
push edi
mov dword [esp + 0x20], eax
je 0x100403aa
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, dword [ebp + 8]
sar ecx, 2
mov dword [eax], ecx
jmp 0x100405f8
and dword [esp + 0x30], 0
and dword [esp + 0x34], 0
and dword [esp + 0x38], 0
mov ebx, dword [ebp + 0x1c]
and dword [esp + 0x84], 0
cmp dword [ebx + 0x10], 0
je 0x100405e3
mov dword [esp + 0x18], 0x43f7
cmp dword [esp + 0x18], 0x471d
jle 0x10040428
xor esi, esi
mov dword [esp + 0x14], esi
xor edi, edi
mov eax, esi
xor ebx, ebx
cdq
idiv edi
mov esi, edx
mov eax, esi
mov ecx, 0x10075b78
and eax, ebx
cdq
push edx
push eax
call fcn.1000c233
inc ebx
cmp ebx, 0x370e
jl 0x100403f1
mov esi, dword [esp + 0x14]
inc edi
cmp edi, 0x77c3
jl 0x100403e8
inc esi
mov dword [esp + 0x14], esi
cmp esi, 0x48a8
jl 0x100403e6
mov ebx, dword [ebp + 0x1c]
push 0x2e
pop eax
mov word [esp + 0x10], ax
xor eax, eax
cmp dword [esp + 0x18], 0x41e2
mov word [esp + 0xc], 0x1b00
mov word [esp + 0x12], ax
jge 0x10040457
mov edx, str.aonms_dnoi_jygvbt_lkmxj_thjlljwx_hxsddxdg_nabmbauq_iifi_wua_oeoclg_fjfeomx_nhmtxnmpa_inguqe
mov ecx, 0x10075b78
call fcn.1000e4aa
and dword [esp + 0x58], 0
lea ecx, [esp + 0x48]
xor eax, eax
mov dword [esp + 0x5c], 7
mov word [esp + 0x48], ax
lea eax, [esp + 0x10]
push eax
call fcn.1000c8f6
lea eax, [esp + 0x48]
mov byte [esp + 0x84], 1
push eax
mov edx, ebx
lea ecx, [esp + 0x28]
call fcn.1003c90e
pop ecx
push 0
push 1
lea ecx, [esp + 0x50]
mov byte [esp + 0x8c], 3
call fcn.1000ca18
mov dword [esp + 0x18], 0x1e61
cmp dword [esp + 0x18], 0x216b
jle 0x100404f4
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.USER32.dll_AppendMenuW]
xor esi, esi
xor edi, edi
mov eax, edi
mov ecx, 0x10075b78
xor eax, esi
cdq
push edx
push eax
call fcn.1000c233
inc edi
cmp edi, 0x5f6c
jl 0x100404c9
inc esi
cmp esi, 0x6117
jl 0x100404c7
push 0
call dword [sym.imp.USER32.dll_IsZoomed]
and dword [esp + 0x10], 0
cmp dword [esp + 0x18], 0x1b46
jge 0x10040512
mov edx, str.lrfoa_sgx_cuivvwqth
mov ecx, 0x10075b78
call fcn.1000e4aa
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
push 0x18
cdq
pop ecx
idiv ecx
test eax, eax
jne 0x100405bc
push 0x2d
pop eax
mov word [esp + 0x1c], ax
lea ecx, [esp + 0x60]
xor eax, eax
mov dword [esp + 0x74], 7
and dword [esp + 0x70], eax
mov word [esp + 0x1e], ax
mov word [esp + 0x60], ax
lea eax, [esp + 0x1c]
push eax
call fcn.1000c8f6
lea eax, [esp + 0x60]
mov byte [esp + 0x84], 4
push eax
mov edx, ebx
lea ecx, [esp + 0x40]
call fcn.1003c90e
pop ecx
mov esi, eax
lea eax, [esp + 0x24]
cmp eax, esi
je 0x1004059e
mov ecx, eax
call fcn.10041c23
mov ecx, dword [esi]
mov dword [esp + 0x24], ecx
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
lea ecx, [esp + 0x3c]
call fcn.10041c23
push 0
push 1
lea ecx, [esp + 0x68]
mov byte [esp + 0x8c], 3
call fcn.1000ca18
lea eax, [esp + 0x30]
push eax
push 1
lea edx, [esp + 0x2c]
call fcn.1003ecb2
pop ecx
pop ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0x84], 0
call fcn.10041c23
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x30]
push ecx
mov ecx, eax
call fcn.10041a4c
lea ecx, [esp + 0x30]
call fcn.10041cfc
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret