Function at 0x48c720
Capabilities:
Create thread

Disassembly:
sub esp, 0x14
push ebx
push ebp
xor ebx, ebx
push esi
mov byte [0x4bfd58], bl
call fcn.0048cb10
test eax, eax
push 0x753921
push str.MainGameWindow
setne al
push 0x4b2370
mov byte [0x75393f], al
mov byte [0x753935], bl
mov dword [0x753948], ebx
call fcn.0048d330
add esp, 0xc
test al, al
jne 0x48caff
call fcn.00450b60
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0048d390
mov esi, dword [esp + 0x28]
add esp, 4
mov dword [0x753858], esi
mov dword [0x753874], ebx
push 4
mov dword [0x753880], ebx
mov dword [0x753884], 0x4b2394
call dword [sym.imp.GDI32.dll_GetStockObject]
mov edx, dword [0x753858]
push 0x68
push edx
mov dword [0x75387c], eax
mov dword [0x753870], esi
mov dword [0x753860], 3
mov dword [0x753864], 0x48d0d0
mov dword [0x753868], ebx
mov dword [0x75386c], ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0x753860
mov dword [0x753878], eax
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x48c80b
push str.Unable_To_Register_Window_Class
push 1
call fcn.00499ec0
add esp, 8
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10
push ebx
lea eax, [esp + 0x14]
push 0xc00000
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0x280
mov dword [esp + 0x28], 0x1e0
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ebp, dword [esp + 0x10]
push ebx
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub ecx, edx
mov edx, dword [esp + 0x1c]
push esi
push ebx
push ebx
sub edx, ebp
push ecx
push edx
push DirectSoundCreate
push DirectSoundCreate
push 0xc00000
push 0x4b2370
push str.MainGameWindow
push 0x40000
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, ebx
mov dword [0x75385c], eax
jne 0x48c895
push str.Unable_To_Create_Window
push 1
call fcn.00499ec0
add esp, 8
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10
push eax
push 0x753888
call fcn.0048f8d0
mov al, byte [0x4bfd58]
add esp, 8
cmp al, bl
jne 0x48c8b5
call fcn.00482ae0
test al, al
jne 0x48c8ed
call fcn.0046e360
test al, al
jne 0x48c8e8
mov eax, dword [0x7fd18c]
push eax
call fcn.0049e22d
mov ecx, dword [0x7fd14c]
push ecx
call fcn.0049e22d
add esp, 8
call fcn.0048cbe0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0x10
call fcn.00482ae0
mov edx, dword [0x7538f1]
mov eax, dword [0x7538ed]
mov ecx, dword [0x75385c]
push edi
push 5
push ebx
push ebx
push edx
push eax
push ebx
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x75394c
push 0xffffffffffffffff
push ebx
mov word [0x753970], 0x94
mov word [0x753972], bx
call dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
mov ecx, dword [0x754088]
mov dword [0x753919], ebx
mov dword [0x753915], ebx
mov byte [0x753947], bl
mov edx, dword [ecx + 0x10]
mov edi, dword [ecx + 8]
push 0xc00000
lea eax, [edx + edx*4]
shl eax, 5
sub eax, edx
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0x18]
lea ebp, [eax + eax*4]
mov edx, dword [edi + edx*2 + 0x632]
lea eax, [eax + ebp*8]
lea ebp, [eax + eax*4]
lea eax, [ecx + ecx*2]
mov ecx, dword [edx + ebp*2 + 0x186]
mov edx, dword [0x75385c]
lea eax, [eax + eax*4]
push edx
push 0x7538b1
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*2 + 8]
lea eax, [ecx + eax*2]
mov ecx, dword [0x753943]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.00490d30
add esp, 0x1c
test eax, eax
pop edi
jne 0x48c9dc
mov ecx, dword [0x7fd154]
mov edx, dword [0x7fd198]
push ebx
push str.Tomb_Raider_IV
mov ax, word [ecx + 0x29e]
add eax, edx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0x10
mov edx, dword [0x75385c]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [0x75385c]
mov eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
test byte [0x7538fd], 1
je 0x48ca12
push ebx
call dword [sym.imp.USER32.dll_SetCursor]
push ebx
call dword [sym.imp.USER32.dll_ShowCursor]
mov edx, dword [0x753858]
mov eax, dword [0x75385c]
push edx
push eax
call fcn.00491e30
add esp, 8
push 0x65
push esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov dword [0x753931], eax
mov al, byte [0x753942]
cmp al, bl
jne 0x48ca48
call fcn.00471920
call fcn.0046c0a0
lea ecx, [esp + 0xc]
mov dword [0x7f4dfc], ebx
push ecx
push str.datacutseq.pak
mov dword [esp + 0x14], ebx
call fcn.00472090
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x48ca9d
mov edx, dword [esp + 0xc]
mov eax, dword [edx]
push eax
call fcn.0049dcd6
mov ecx, dword [esp + 0x10]
mov dword [0x7f4dfc], eax
add esi, 0xfffffffc
mov edx, dword [ecx]
add ecx, 4
push edx
push esi
push ecx
push eax
call fcn.00472140
mov eax, dword [esp + 0x20]
push eax
call fcn.0049e22d
add esp, 0x18
push 0x5339e4
push ebx
push ebx
mov esi, 1
push 0x4750d0
push ebx
mov dword [0x5339d4], esi
push ebx
mov dword [0x5339dc], ebx
call fcn.0049e5b2
add esp, 0x18
mov dword [0x5339e0], eax
call fcn.0048cc30
mov dword [0x5339dc], esi
cmp dword [0x5339d4], ebx
jne 0x48cad4
mov eax, dword [0x7f4dfc]
cmp eax, ebx
je 0x48caee
push eax
call fcn.0049e22d
add esp, 4
call fcn.0048cbe0
push ebx
push 0x75394c
call dword [sym.imp.USER32.dll_ChangeDisplaySettingsA]
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret 0x10