Function at 0x409380
Capabilities:
Create thread
Hide graphical window
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x454
mov eax, dword [0x4bf370]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x408], edi
mov dword [0x4c5ae0], edi
test esi, esi
je 0x40945a
push 0x400
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.00440690
add esp, 0xc
lea eax, [ebp - 0x404]
push 0
push 0
push 0x3ff
push eax
push 0xffffffffffffffff
push esi
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [ebp - 0x404]
push str._detailed_view
push eax
call fcn.0043fe20
movzx ecx, byte [0x4c5933]
test eax, eax
mov edx, 1
lea eax, [ebp - 0x404]
cmovne ecx, edx
push str._no_check_for_update
push eax
mov byte [0x4c5933], cl
call fcn.0043fe20
movzx ecx, byte [0x4bfdc0]
xor edx, edx
test eax, eax
lea eax, [ebp - 0x404]
push str._no_version_check
cmovne ecx, edx
push eax
mov byte [0x4bfdc0], cl
call fcn.0043fe20
movzx ecx, byte [0x4bfdc0]
xor edx, edx
add esp, 0x18
test eax, eax
cmovne ecx, edx
mov byte [0x4bfdc0], cl
push 1
push 1
push 6
push 4
push 0x20
push 0x20
push 0
push 0
push 1
call fcn.0040fe20
mov ecx, eax
call fcn.00410780
test al, al
jne 0x4094a4
push 0x40
push 0x49db30
push str.ZoomGPU_Error_
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef0f
mov esp, ebp
pop ebp
ret 0x10
push str.Shcore.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4094d0
push str.SetProcessDpiAwareness
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4094c9
push 2
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x49dd44
push str..gpushark.ini
call fcn.0044aa86
add esp, 8
test eax, eax
je 0x40951b
push eax
call fcn.0044abc2
add esp, 4
push str..gpushark.ini
push 1
push str.font
push str.GPUSHARK
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [0x4bfdc4]
lea ecx, [eax - 1]
cmp ecx, 4
cmovbe edx, eax
mov dword [0x4bfdc4], edx
push ebx
push 0x2000000
mov dword [0x4c5aec], 0
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x64
push 0x4c5a00
push 0x67
push edi
mov dword [0x4c5ae8], eax
call esi
push 0x64
push 0x4c5938
push 0x6d
push edi
call esi
mov esi, dword [sym.imp.USER32.dll_LoadIconW]
push 0x8e
push edi
mov dword [ebp - 0x438], 0x30
mov dword [ebp - 0x434], 3
mov dword [ebp - 0x430], 0x4098a0
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], edi
call esi
push 0x7f00
push 0
mov dword [ebp - 0x420], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push 0x8e
push dword [ebp - 0x424]
mov dword [ebp - 0x41c], eax
mov eax, dword [0x4c5ae8]
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], 0x6d
mov dword [ebp - 0x410], 0x4c5938
call esi
mov dword [ebp - 0x40c], eax
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
mov bl, byte [0x4c5933]
mov dword [0x4c5ac8], edi
call fcn.0040fe20
mov ecx, eax
call fcn.0040f1d0
imul edx, eax, 0x190
mov ecx, 0x2bc
test bl, bl
je 0x409623
test eax, eax
mov esi, 0x320
cmovne ecx, esi
push 0
push edi
push 0
push 0
push ecx
test edx, edx
mov eax, 0x190
cmove edx, eax
push edx
push closesocket
push closesocket
push 0xef0000
push 0x49dd94
push 0x4c5938
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, eax
test edi, edi
jne 0x409670
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef0f
mov esp, ebp
pop ebp
ret 0x10
push dword [ebp + 0x14]
mov dword [0x4c5af8], edi
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0x3e8
push 1
push edi
call esi
push 0
push 0x3e8
push 2
push edi
call esi
push 0x6d
push dword [ebp - 0x408]
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push str.GPUShark_ShMem
push 0x100
push 0
push 4
push 0
push 0xffffffffffffffff
mov dword [ebp - 0x408], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x4c5b00], eax
test eax, eax
je 0x40973f
push 0x534
push 0
push 0
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov esi, eax
test esi, esi
jne 0x40970b
push dword [0x4c5b00]
call edi
mov dword [0x4c5b00], esi
jmp 0x40973f
push 0x534
push 0
push esi
call fcn.00440690
push 0x1f
push str._Geeks3D_GPUShark_
push esi
call fcn.0044a8a0
push 0xf
lea eax, [esi + 0x20]
push str._20170514_
push eax
call fcn.0044a8a0
add esp, 0x24
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push 0x4c592c
push 0
push 0
push 0x406c10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
mov dword [0x4c5928], eax
lea eax, [ebp - 0x454]
push 0
push eax
call esi
test eax, eax
je 0x4097c8
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov edi, dword [ebp - 0x408]
lea eax, [ebp - 0x454]
push eax
push edi
push dword [ebp - 0x454]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4097af
lea eax, [ebp - 0x454]
push eax
call ebx
lea eax, [ebp - 0x454]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x454]
push eax
call esi
test eax, eax
jne 0x409781
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x4c5b00]
test eax, eax
je 0x4097de
push eax
call edi
mov dword [0x4c5b00], 0
mov eax, dword [0x4c5af4]
test eax, eax
je 0x409806
push 2
push eax
call dword [sym.imp.USER32.dll_KillTimer]
push dword [0x4c5af4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x4c5af4], 0
push 0x7d0
push dword [0x4c5928]
mov byte [0x4c5930], 1
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [0x4c5928]
call edi
call fcn.0040fe20
mov ecx, eax
call fcn.00410380
mov eax, dword [0x4c5910]
test eax, eax
je 0x409848
push eax
call edi
mov dword [0x4c5910], 0
mov eax, dword [0x4c5ae4]
test eax, eax
je 0x409858
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [0x4c5aec]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x40986a
push eax
call esi
mov eax, dword [0x4c5ae8]
test eax, eax
je 0x409876
push eax
call esi
call fcn.004092e0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x44c]
xor ecx, ebp
pop ebx
pop edi
pop esi
call fcn.0043ef0f
mov esp, ebp
pop ebp
ret 0x10