Function at 0x407830
Capabilities:
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x6051c4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
call fcn.00416a30
push 0xc8c8c8
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov ebx, dword [sym.imp.USER32.dll_EnumDisplaySettingsW]
mov ecx, 0x280
mov dword [0x647b94], eax
mov edx, 0x1e0
mov eax, dword [0x5ee788]
test eax, eax
mov dword [0x647b98], 0x10
cmovle eax, ecx
mov ecx, dword [0x647548]
cmp eax, ecx
cmovg eax, ecx
mov dword [0x5ee788], eax
mov eax, dword [0x5ee78c]
test eax, eax
cmovle eax, edx
cmp eax, ecx
cmovg eax, ecx
cmp dword [0x5ee790], 0
mov dword [0x5ee78c], eax
mov eax, dword [0x647438]
je 0x407aa6
xorps xmm0, xmm0
mov dword [ebp - 0x128], 0x20
push 4
movlpd qword [ebp - 0x120], xmm0
movlpd qword [ebp - 0x114], xmm0
movlpd qword [ebp - 0x10c], xmm0
mov dword [ebp - 0x124], 0x407130
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x104], 0x476c88
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x10c], eax
lea eax, [ebp - 0x128]
push eax
call dword [sym.imp.USER32.dll_RegisterClassW]
mov edi, dword [sym.imp.USER32.dll_ChangeDisplaySettingsW]
mov eax, 0xdc
mov word [ebp - 0xbc], ax
mov eax, dword [0x5ee788]
mov dword [ebp - 0x54], eax
mov eax, dword [0x5ee78c]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x100]
push 4
push eax
mov dword [ebp - 0xb8], 0x1c0000
mov dword [ebp - 0x58], 0x20
call edi
mov ebx, dword [sym.imp.USER32.dll_ShowCursor]
test eax, eax
je 0x4079a5
push dword [0x647438]
push str.FurMark3DWindow
call dword [sym.imp.USER32.dll_UnregisterClassW]
cmp dword [0x647544], 0
je 0x407985
push 1
call ebx
push 0
push 0
call edi
mov dword [0x647544], 0
push str.Could_not_switch_to_fullscreen_mode._n_rPlease_try_another_resolution.
call fcn.0041bb90
add esp, 4
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044dcb2
mov esp, ebp
pop ebp
ret
push 0
mov dword [0x647544], 1
call ebx
mov eax, dword [0x5ee788]
mov dword [ebp - 0xc], eax
mov eax, dword [0x5ee78c]
push 0
mov dword [ebp - 8], eax
lea eax, [ebp - 0x14]
push 0x91000000
push eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
push dword [0x647438]
push 0
push 0
push eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push eax
push 1
call esi
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 8]
add eax, ecx
sar eax, 1
push eax
push 0
call esi
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0xc]
add eax, ecx
sar eax, 1
push eax
push 0x91000000
push 0x476cc8
push dword [ebp - 0x104]
push 0x40000
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x647434], eax
test eax, eax
je 0x407968
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
push dword [0x647434]
mov dword [0x5ee780], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
mov dword [0x5ee784], eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 3
push 0
push 0
push 0
push 0
push 0
push dword [0x647434]
call dword [sym.imp.USER32.dll_SetWindowPos]
push 5
push dword [0x647434]
call dword [sym.imp.USER32.dll_ShowWindow]
mov ebx, dword [sym.imp.USER32.dll_EnumDisplaySettingsW]
jmp 0x407c4e
mov esi, dword [sym.imp.USER32.dll_LoadIconW]
push 0x6d
push eax
mov dword [0x647544], 0
mov dword [ebp - 0x130], 0x30
mov dword [ebp - 0x12c], 0x23
mov dword [ebp - 0x128], 0x407130
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], eax
call esi
push 0x7f00
push 0
mov dword [ebp - 0x118], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push 4
mov dword [ebp - 0x114], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [ebp - 0x110], eax
mov eax, dword [0x5ee878]
neg eax
mov dword [ebp - 0x108], 0x476c38
push 0x87
push dword [ebp - 0x11c]
sbb eax, eax
and eax, 0x6d
mov dword [ebp - 0x10c], eax
call esi
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
mov edi, dword [0x5ee78c]
mov ecx, 0x16ca0000
mov esi, dword [0x5ee788]
mov eax, 0x16c80000
cmp dword [0x5ee794], 1
push 0
push dword [0x647438]
cmovne eax, ecx
push 0
push 0
push edi
push esi
push 0
push 0
push eax
push 0x476c58
push 0x476c68
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x647434], eax
test eax, eax
je 0x407992
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
mov dword [0x5ee780], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push 0xdc
mov dword [0x5ee784], eax
lea eax, [ebp - 0x100]
push 0
push eax
call fcn.0044f220
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0xffffffffffffffff
push 0
call ebx
lea eax, [ebp - 0x14]
push eax
push dword [0x647434]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x50]
cdq
sub eax, edx
shr ecx, 1
sar eax, 1
sub ecx, eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push 0x45
push edi
push esi
push ecx
mov ecx, dword [ebp - 0x54]
cdq
sub eax, edx
shr ecx, 1
sar eax, 1
sub ecx, eax
push ecx
push 0
push dword [0x647434]
call dword [sym.imp.USER32.dll_SetWindowPos]
push dword [0x647434]
call dword [sym.imp.USER32.dll_UpdateWindow]
push 1
push dword [0x647434]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [0x647570], 0
je 0x407c8a
push 0xdc
lea eax, [ebp - 0x100]
push 0
push eax
call fcn.0044f220
add esp, 0xc
lea eax, [ebp - 0x100]
push eax
push 0xffffffffffffffff
push 0
call ebx
mov eax, dword [ebp - 0x54]
mov dword [0x647480], eax
mov eax, dword [ebp - 0x50]
mov dword [0x647484], eax
push 0x647464
push 0
push 0
push 0x406150
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [0x647468], eax
xor ecx, ebp
mov al, 1
pop ebx
call fcn.0044dcb2
mov esp, ebp
pop ebp
ret