Function at 0x418f10
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0xc
push ebx
push esi
mov esi, dword [esp + 0x18]
push edi
push ebp
test esi, esi
je 0x4191aa
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [esp + 0x10], eax
push 0
call fcn.00419880
mov dword [esp + 0x1c], eax
add esp, 4
push esi
call fcn.004191c0
add esp, 4
test eax, eax
je 0x418f69
cmp dword [esi + 0x474], 0
jne 0x4191aa
mov ebp, dword [esp + 0x24]
mov dword [esi + 0x474], ebp
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret 8
xor ebx, ebx
inc dword [0x434050]
mov dword [esi + 0x440], ebx
mov dword [esi + 0x444], ebx
mov dword [esi + 0x44c], ebx
mov dword [esi + 0x438], ebx
mov dword [esi + 0x43c], ebx
mov dword [esi + 0x428], ebx
mov dword [esi + 0x430], ebx
mov dword [esi + 0x42c], ebx
mov dword [esi + 0x464], ebx
mov dword [esi + 0x460], ebx
mov dword [esi + 0x46c], ebx
mov dword [esi + 0x468], ebx
mov ebp, dword [esp + 0x24]
mov byte [esi + 0x424], bl
mov dword [esi + 0x474], ebp
mov dword [esi + 0x48c], esi
mov dword [esi + 0x478], ebx
mov dword [esi + 0x480], ebx
mov dword [esi + 0x484], ebx
mov dword [esi + 0x488], ebx
mov edi, esi
xor eax, eax
mov ecx, 0xa
push ebx
mov dword [esi + 0x434], 1
mov byte [esi + 0x448], 0xf3
mov dword [esi + 0x470], 1
rep stosd dword es:[edi], eax
push ebx
push ebx
push ebx
lea eax, [esi + 0x450]
push eax
call dword [sym.imp.USER32.dll_SetRect]
call fcn.0041fe20
cmp dword [0x434050], 1
jne 0x41919f
push 0x8000
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [esp + 0x14], eax
mov dword [0x434054], ebx
test byte [esp + 0x13], 0x80
mov dword [0x434070], ebx
je 0x419106
cmp byte [esp + 0x10], 4
jae 0x419106
push str.WING32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x434070], eax
test eax, eax
je 0x41918f
push str.WinGCreateDC
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
push str.WinGRecommendDIBFormat
mov dword [0x43aa48], eax
mov eax, dword [0x434070]
push eax
call edi
push str.WinGCreateBitmap
mov dword [0x43aa4c], eax
mov eax, dword [0x434070]
push eax
call edi
push str.WinGBitBlt
mov dword [0x43aa44], eax
mov eax, dword [0x434070]
push eax
call edi
push str.WinGStretchBlt
mov dword [0x43a7c8], eax
mov eax, dword [0x434070]
push eax
call edi
mov dword [0x43a9d0], eax
cmp dword [0x43aa48], ebx
je 0x4190eb
mov dword [0x434054], 1
jmp 0x41918f
mov eax, dword [0x434070]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x434070], 0
jmp 0x41918f
push str.GDI32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.CreateDIBSection
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
mov dword [0x43406c], eax
call edi
mov dword [0x43a7c4], eax
test eax, eax
mov eax, 2
jne 0x419137
mov eax, dword [0x434054]
xor ebx, ebx
mov dword [0x434054], eax
mov dword [0x43a9d4], ebx
cmp eax, 2
jne 0x41918f
push str.DDRAW.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x434070], eax
test eax, eax
je 0x419180
push str.DirectDrawCreate
push eax
call edi
mov dword [0x43a9d4], eax
test eax, eax
jne 0x419180
mov eax, dword [0x434070]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x434070], ebx
test ebp, ebp
je 0x41918f
push 0x8001
push esi
call fcn.00419e20
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
call fcn.00419260
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret 8