Function at 0x406320
Capabilities:
Create thread

Disassembly:
sub esp, 0x110
push ebx
push ebp
push esi
xor ebp, ebp
push edi
mov dword [0x48cc60], ebp
mov dword [0x48be68], ebp
call fcn.004034f0
call fcn.00401da0
test eax, eax
jne 0x406393
mov eax, dword [0x4bfbbc]
push 0x48bbe0
cmp eax, ebp
je 0x406360
lea eax, [esp + 0x24]
push str.__s_
push eax
jmp 0x40636a
lea ecx, [esp + 0x24]
push str.__s__is_running
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x20]
push 0x10
push str.WARNING
push edx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x110
ret
call fcn.00401420
push 0x4dfc00
push 0x48b9a0
call fcn.00401ab0
mov esi, dword [esp + 0x12c]
mov ecx, 0x101
xor eax, eax
mov edi, 0x48cc80
add esp, 8
mov dword [0x43b820], esi
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push ebp
mov word [0x48cc80], 0x300
mov word [0x48cc82], 0x100
mov dword [esp + 0x14], ebp
call edi
push 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebp
call edi
mov dword [esp + 0x1c], eax
push ebp
lea eax, [esp + 0x14]
push DirectSoundCreate
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ebp
push esi
push ebp
sub ecx, eax
push ebp
push ecx
mov ecx, dword [esp + 0x24]
sub edx, ecx
push edx
push eax
push ecx
push DirectSoundCreate
push 0x4bea40
push str.IAM_PC_GAME
push ebp
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, ebp
mov dword [0x49d4cc], eax
jne 0x40644d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x110
ret
mov ecx, dword [esp + 0x128]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
push ecx
push eax
call edi
mov edx, dword [0x49d4cc]
mov ebx, dword [sym.imp.USER32.dll_UpdateWindow]
push edx
call ebx
call fcn.00401ef0
test eax, eax
jne 0x406481
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
cmp dword [0x4bfbac], ebp
jne 0x40650f
mov eax, dword [0x49d4cc]
mov ecx, dword [0x43b820]
push ebp
push 0x4060f0
push eax
push 0x92
push ecx
call dword [sym.imp.USER32.dll_CreateDialogParamA]
push 5
push eax
mov dword [0x48be68], eax
call edi
mov edx, dword [0x48be68]
push edx
call ebx
cmp dword [0x4bfbac], ebp
jne 0x40650f
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push ebp
push ebp
push ebp
push 0x48bd20
call esi
test eax, eax
je 0x406507
mov eax, dword [0x48be68]
push 0x48bd20
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x406507
push 0x48bd20
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x48bd20
call dword [sym.imp.USER32.dll_DispatchMessageA]
cmp dword [0x4bfbac], ebp
je 0x4064cc
mov ecx, dword [0x49d4cc]
mov edx, dword [0x43b820]
push ebp
push 0x406290
push ecx
push 0x94
push edx
call dword [sym.imp.USER32.dll_CreateDialogParamA]
push 5
push eax
mov dword [0x48be68], eax
call edi
mov eax, dword [0x48be68]
push eax
call ebx
call fcn.00401420
call fcn.00401420
call fcn.004030a0
push 0x4383e0
call fcn.004021a0
add esp, 4
test eax, eax
jne 0x40656b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
call fcn.004030c0
test eax, eax
jne 0x406594
push 0x10
push str.WARNING
push str.I_O_Card_Error
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x110
ret
mov ecx, dword [0x48be68]
push ebp
push 1
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push ebp
call dword [sym.imp.USER32.dll_ShowCursor]
call fcn.004037e0
test eax, eax
jne 0x4065c4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
call fcn.00404050
test eax, eax
jne 0x4065d8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
push ebp
push ebp
push 0x405180
mov dword [0x48cc60], 1
call fcn.0041e0ef
add esp, 0xc
cmp eax, ebp
mov dword [0x4dfbec], eax
jne 0x40661a
push 0x10
push str.WARNING
push str.Can_Not_Create_Thread
push ebp
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x110
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x110
ret