Function at 0x48ccb0
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
cmp esi, 8
je 0x48cfb3
cmp esi, 0x9c40
jle 0x48d0c5
cmp esi, 0x9c42
jg 0x48d0c5
mov eax, dword [0x53327c]
test eax, eax
jne 0x48d0c5
mov al, byte [0x753947]
test al, al
jne 0x48d0c5
push str.Change_Video_Mode
push 5
call fcn.00499ec0
push str.HangGameThread
push 5
call fcn.00499ec0
add esp, 0x10
mov eax, dword [0x753915]
test eax, eax
jne 0x48cd0c
mov dword [0x753919], 1
mov eax, dword [0x753915]
test eax, eax
je 0x48cd1f
mov eax, dword [0x5339e0]
push ebp
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push str.Game_Thread_Suspended
push 5
call fcn.00499ec0
mov eax, dword [0x7538a0]
add esp, 8
mov edi, eax
cmp esi, 0x9c41
mov dword [esp + 0x14], edi
jne 0x48cf01
mov ebx, dword [0x754088]
inc eax
mov dword [0x7538a0], eax
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 8]
lea ecx, [edx + edx*4]
shl ecx, 5
sub ecx, edx
lea edx, [ecx + ecx*4]
mov ecx, dword [ebx + 0x14]
mov edx, dword [esi + edx*2 + 0x632]
lea ebp, [ecx + ecx*4]
lea ecx, [ecx + ebp*8]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*2 + 0x182]
cmp eax, ecx
jl 0x48cd9f
lea eax, [ecx - 1]
mov dword [0x7538a0], eax
mov edx, dword [0x753898]
lea edi, [edi + edi*2]
lea ebp, [eax + eax*2]
lea ecx, [edx + edx*4]
lea edi, [edi + edi*4]
shl ecx, 5
sub ecx, edx
lea ebp, [ebp + ebp*4]
lea edi, [edi + edi*4]
lea edx, [ecx + ecx*4]
mov ecx, dword [0x75389c]
add edx, edx
lea ebp, [ebp + ebp*4]
lea esi, [ecx + ecx*4]
add edi, edi
lea esi, [ecx + esi*8]
mov ecx, dword [ebx + 8]
mov ecx, dword [ecx + edx + 0x632]
lea esi, [esi + esi*4]
add esi, esi
mov ecx, dword [ecx + esi + 0x186]
mov ebp, dword [ecx + ebp*2 + 8]
cmp ebp, dword [edi + ecx + 8]
jne 0x48ce90
mov edi, dword [esp + 0x14]
cmp edi, eax
je 0x48ce56
call fcn.00476470
call fcn.004915c0
test eax, eax
jne 0x48ce19
mov dword [0x7538a0], edi
call fcn.004915c0
call fcn.00474d50
call fcn.00476210
mov eax, dword [0x7538d9]
mov ecx, dword [0x7538d5]
push eax
push ecx
push 0x50
push 0x5000
push 0x14
push eax
push ecx
push 0
push 0
call fcn.0048d8a0
add esp, 0x24
call fcn.00462800
call fcn.0048e970
call fcn.0048e7b0
mov eax, dword [0x5339e0]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push str.Game_Thread_Resumed
push 5
mov dword [0x753919], 0
call fcn.00499ec0
add esp, 8
mov dword [0x753b40], 0x78
pop edi
pop ebp
pop esi
pop ebx
ret
mov ebx, dword [0x754088]
inc eax
mov dword [0x7538a0], eax
mov ebp, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
lea ecx, [ebp + ebp*4]
shl ecx, 5
sub ecx, ebp
lea ebp, [ecx + ecx*4]
lea ecx, [ebx + ebx*4]
lea ecx, [ebx + ecx*8]
lea ebx, [ecx + ecx*4]
mov ecx, dword [0x754088]
mov ecx, dword [ecx + 8]
mov ebp, dword [ecx + ebp*2 + 0x632]
cmp eax, dword [ebp + ebx*2 + 0x182]
jge 0x48cef2
mov ecx, dword [edx + ecx + 0x632]
lea ebx, [eax + eax*2]
mov ecx, dword [ecx + esi + 0x186]
lea ebx, [ebx + ebx*4]
mov ebp, dword [edi + ecx + 8]
lea ebx, [ebx + ebx*4]
mov ebx, dword [ecx + ebx*2 + 8]
cmp ebx, ebp
jne 0x48ce8a
jmp 0x48cdf8
mov edx, dword [esp + 0x14]
mov dword [0x7538a0], edx
jmp 0x48ce56
dec eax
mov dword [0x7538a0], eax
jns 0x48cf10
xor eax, eax
mov dword [0x7538a0], eax
mov edx, dword [0x753898]
lea ebp, [eax + eax*2]
lea ecx, [edx + edx*4]
lea ebp, [ebp + ebp*4]
shl ecx, 5
sub ecx, edx
mov edx, dword [0x75389c]
lea ebp, [ebp + ebp*4]
lea esi, [edx + edx*4]
lea ecx, [ecx + ecx*4]
add ecx, ecx
lea edx, [edx + esi*8]
mov esi, dword [0x754088]
mov esi, dword [esi + 8]
lea edx, [edx + edx*4]
add edx, edx
mov esi, dword [esi + ecx + 0x632]
mov ebx, dword [esi + edx + 0x186]
lea esi, [edi + edi*2]
mov ebp, dword [ebx + ebp*2 + 8]
lea esi, [esi + esi*4]
lea esi, [esi + esi*4]
add esi, esi
cmp ebp, dword [esi + ebx + 8]
je 0x48cdfc
dec eax
mov dword [0x7538a0], eax
js 0x48cfa8
mov ebx, dword [0x754088]
lea ebp, [eax + eax*2]
mov ebx, dword [ebx + 8]
lea ebp, [ebp + ebp*4]
mov ebx, dword [ebx + ecx + 0x632]
lea ebp, [ebp + ebp*4]
mov ebx, dword [ebx + edx + 0x186]
mov ebp, dword [ebx + ebp*2 + 8]
cmp ebp, dword [esi + ebx + 8]
jne 0x48cf6f
jmp 0x48cdfc
mov dword [0x7538a0], edi
jmp 0x48ce56
mov al, byte [0x753947]
test al, al
jne 0x48d0c5
mov edx, dword [0x754088]
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 8]
lea eax, [ecx + ecx*4]
shl eax, 5
sub eax, ecx
lea ecx, [eax + eax*4]
test dword [edx + ecx*2 + 0x8a], 0x80000
je 0x48d0c5
mov eax, dword [0x53327c]
test eax, eax
jne 0x48d0c5
push str.KA_ALTENTER
push 6
call fcn.00499ec0
push str.HangGameThread
push 5
call fcn.00499ec0
add esp, 0x10
mov eax, dword [0x753915]
test eax, eax
jne 0x48d010
mov ebx, 1
mov dword [0x753919], ebx
mov eax, dword [0x753915]
test eax, eax
je 0x48d024
mov eax, dword [0x5339e0]
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push str.Game_Thread_Suspended
push 5
call fcn.00499ec0
add esp, 8
call fcn.00476470
call fcn.00491630
call fcn.00474d50
call fcn.00476210
call fcn.0048e970
call fcn.0048e7b0
mov ecx, dword [0x5339e0]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push str.Game_Thread_Resumed
push 5
mov dword [0x753919], 0
call fcn.00499ec0
mov al, byte [0x7538fd]
add esp, 8
test bl, al
je 0x48d0a8
push 0
call dword [sym.imp.USER32.dll_SetCursor]
push 0
call dword [sym.imp.USER32.dll_ShowCursor]
pop esi
pop ebx
ret
mov edx, dword [0x753858]
push 0x68
push edx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
push ebx
call dword [sym.imp.USER32.dll_ShowCursor]
pop esi
pop ebx
ret