Function at 0x401000
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x118
mov eax, dword [0x404004]
xor eax, esp
mov dword [esp + 0x114], eax
movups xmm0, xmmword [0x403140]
mov eax, dword [0x403168]
mov dword [esp + 0x100], eax
lea eax, [esp + 0xd8]
movups xmmword [esp + 0xd8], xmm0
push esi
movups xmm0, xmmword [0x403150]
mov esi, dword [sym.imp.USER32.dll_RegisterClassW]
push edi
mov edi, dword [ebp + 8]
movups xmmword [esp + 0xf0], xmm0
mov dword [esp + 0x64], eax
lea eax, [esp + 0x40]
movq xmm0, qword [0x403160]
movq qword [esp + 0x100], xmm0
xorps xmm0, xmm0
push eax
mov dword [esp + 0x18], edi
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x44], 3
mov dword [esp + 0x48], 0x4012b0
mov dword [esp + 0x54], edi
call esi
movups xmm0, xmmword [str.Rule_Of_Thirds_Overlay]
mov eax, dword [0x403194]
mov dword [esp + 0xd8], eax
mov ax, word [0x403198]
movups xmmword [esp + 0xb0], xmm0
mov word [esp + 0xdc], ax
lea eax, [esp + 0xb0]
movups xmm0, xmmword [0x40317c]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x68]
push eax
movups xmmword [esp + 0xc4], xmm0
mov dword [esp + 0x6c], 0
movq xmm0, qword [0x40318c]
movq qword [esp + 0xd4], xmm0
xorps xmm0, xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x88], xmm0
mov dword [esp + 0x70], 0x401370
mov dword [esp + 0x7c], edi
call esi
push 0
push edi
push 0
push 0
push 0x64
push 0x15e
push 0x80000000
push 0x80000000
push 0xcf0000
push str.Rule_Of_Thirds_Overlay
lea eax, [esp + 0x108]
push eax
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
test esi, esi
je 0x401297
mov edi, dword [ebp + 0x14]
push edi
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push 2
push esi
call dword [sym.imp.USER32.dll_MonitorFromWindow]
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0x28
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
push ecx
push eax
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x34], xmm0
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
test eax, eax
je 0x401297
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
sub eax, edx
mov ecx, dword [esp + 0x1c]
push 0
push dword [esp + 0x18]
push 0
push 0
push eax
mov eax, dword [esp + 0x38]
sub eax, ecx
push eax
push edx
push ecx
push 0x90000000
push str.ROTO
lea eax, [esp + 0xd8]
push eax
push 8
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, eax
test esi, esi
je 0x401297
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
or eax, 0xc0020
push eax
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 3
push 0x4c
push 0xff00ff
push esi
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
push edi
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0x90]
push 0
push 0
xorps xmm0, xmm0
mov dword [esp + 0xb0], 0
push 0
push eax
movaps xmmword [esp + 0xa0], xmm0
movq qword [esp + 0xb0], xmm0
call esi
test eax, eax
je 0x401297
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x90]
push eax
call edi
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp byte [0x40438c], 1
je 0x401297
push 0
push 0
push 0
lea eax, [esp + 0x9c]
push eax
call esi
test eax, eax
jne 0x401262
mov ecx, dword [esp + 0x11c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.00401548
mov esp, ebp
pop ebp
ret 0x10