Function at 0x4091d0
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, esp
call fcn.00409490
push eax
mov ebx, esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x20], eax
mov esp, eax
push eax
mov edi, esp
sub esp, 0x100
mov dword [esi + 0x2c], esp
call fcn.0043bca0
test al, 1
jne 0x40920d
jmp 0x40945a
mov dword [esi + 0x30], ebx
mov al, byte [edi]
mov byte [esi + 8], al
mov ecx, dword [esi + 0x20]
mov byte [ecx], 0x26
mov byte [ecx + 1], 0x4d
mov byte [ecx + 2], 0x37
mov byte [ecx + 3], 0x4b
mov byte [ecx + 4], 0x27
mov byte [ecx + 5], 0x49
mov byte [ecx + 6], 0x21
mov byte [ecx + 7], 0x57
mov byte [ecx + 8], 0x27
mov byte [ecx + 9], 0x55
mov byte [ecx + 0xa], 0x38
mov byte [ecx + 0xb], 0x53
mov byte [ecx + 0xc], 0x3a
mov byte [ecx + 0xd], 0x51
mov byte [ecx + 0xe], 0x5e
mov byte [ecx + 0xf], 0x5f
mov word [ecx + 0x10], 0
xor eax, eax
mov dword [esi + 0x1c], eax
movzx edi, byte [ecx + eax]
mov dword [esi + 0x14], edi
mov ecx, eax
add ecx, 0x7a3316b7
mov edx, ecx
and edx, 0xd5b6c04a
xor ecx, 0xd5b6c04a
lea eax, [ecx + edx*2]
lea ebx, [ecx + edx*2 - 0x7a3316b7]
mov dword [esi + 0x18], ebx
mov edx, edi
not edx
mov dword [esi + 0x24], edx
mov ecx, ebx
or ecx, edx
lea edx, [edi + ecx + 1]
mov dword [esi], edx
mov ecx, ebx
and ecx, edi
mov dword [esi + 4], ecx
mov ecx, 0x3a3316b6
sub ecx, eax
mov ebx, edx
and ebx, 2
mov dword [esi + 0x28], ebx
mov edi, ebx
xor edi, 2
mov eax, edx
xor eax, 0xfffffffd
sub eax, ebx
add eax, 2
mov edx, eax
not edx
and eax, edi
mov ebx, dword [esi]
or ebx, 0xfffffffd
and ebx, edx
mov dword [esi + 0x10], edi
and dword [esi + 0x10], edx
or edi, edx
or dword [esi], 2
mov edx, dword [esi + 4]
add edx, edx
mov dword [esi + 4], edx
mov edx, dword [esi + 0x24]
and edx, 0x2b00b87a
and dword [esi + 0x14], 0xffffff85
and ecx, 0x2b00b87a
and dword [esi + 0x18], 0xd4ff4785
add edx, dword [esi + 0x14]
add ecx, dword [esi + 0x18]
xor ecx, edx
mov edx, ecx
mov dword [esi + 0xc], edx
mov edx, dword [esi + 4]
and dword [esi + 0xc], edx
xor ecx, edx
imul edi, dword [esi + 0x10]
mov edx, dword [esi]
imul edx, dword [esi + 0x28]
imul ebx, eax
add ebx, edx
add ebx, edi
mov eax, dword [esi + 0xc]
lea eax, [ecx + eax*2]
mov ecx, dword [esi + 0x20]
sub eax, ebx
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
add al, 0xfa
mov edx, dword [esi + 0x1c]
mov byte [ecx + edx], al
mov eax, dword [esi + 0x1c]
add eax, 1
cmp eax, 0x12
jne 0x40925f
xor eax, eax
sub esp, 0xc
mov dword [esp], 0
mov dword [esp + 4], 1
mov dword [esp + 8], ecx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, dword [esi + 0x30]
mov dword [edi], eax
call fcn.00433550
test al, 1
jne 0x40937b
jmp 0x409437
xor eax, eax
sub esp, 8
mov dword [esp], 0
mov dword [esp + 4], 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 0
setge al
test al, 1
jne 0x4093a4
jmp 0x409435
xor eax, eax
sub esp, 0x24
mov dword [esp], 0
mov dword [esp + 4], 0xffffffff
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 3
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
cmp eax, 0
jl 0x40942d
call fcn.0040ab50
test al, 1
jne 0x409406
jmp 0x40942b
lea eax, str.system_or_character_via_spellings_glyphs_a_is_uses_that_in_their_modified_other_on_often_reflection_or_resemblance_on_it_leetspeak__used_similarity_internet._play_eleet_the_of_the_replacements_of_primarily_ways
sub esp, 8
mov ecx, dword [esi + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409470
add esp, 8
call fcn.0040d2e0
call fcn.0040c460
jmp 0x40942d
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x409435
jmp 0x409437
cmp dword [edi], 0
setne al
test al, 1
jne 0x409443
jmp 0x409453
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x409453
call fcn.0043c340
jmp 0x40945a
xor eax, eax
sub esp, 4
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]