Function at 0x48b130
Capabilities:
Terminate process

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x200
mov dword [0x4f33f0], eax
mov al, byte [0x4c9350]
test al, al
jne 0x48b14d
call fcn.0048b820
push ebx
push ebp
push esi
push edi
call fcn.0049caf0
mov edi, dword [str.jazz2.log]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x4f2610
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
xor ebx, ebx
push 2
push ebx
push ebx
push 0x62bdd4
mov dword [0x62bdcc], eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
call fcn.0048b880
call fcn.00496a00
call fcn.0048da40
mov ebp, dword [esp + 0x21c]
or ecx, 0xffffffff
mov edi, ebp
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
add esi, 2
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
cmp eax, ebx
je 0x48b1e3
mov edx, eax
jmp 0x48b22b
push str.WIN:_Could_not_allocate__u_KB_memory_block__negotiating_with_user
call fcn.0048edc0
push esi
push 0x48a420
push 0x8f
call fcn.004931c0
mov esi, eax
add esp, 0x10
cmp esi, ebx
je 0x48b217
push str.WIN:_Memory_block_succesfully_allocated
call fcn.0048edc0
add esp, 4
mov edx, esi
jmp 0x48b22b
push str.WIN:_Amnesia_Error:_Out_of_memory__user_canceled_memory_request
call fcn.0048edc0
add esp, 4
call fcn.0048dbf0
xor edx, edx
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
mov dword [0x62bdc8], edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x10]
push ecx
call fcn.004b6fb5
lea edx, [esp + 0x14]
push str._log
push edx
call fcn.004b5f80
add esp, 0xc
test eax, eax
je 0x48b321
lea eax, [esp + 0x10]
push str._log
push eax
mov ebp, 5
call fcn.004b5f80
mov edx, dword [0x62bdc8]
mov esi, eax
lea ecx, [esp + 0x18]
add esp, 8
sub esi, ecx
mov ecx, 0x4f2610
add edx, esi
sub ecx, ebp
mov al, byte [edx + ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
je 0x48b2d4
cmp al, 0x20
jne 0x48b2c5
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + esi + 0x10]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esi + ebp]
sub ecx, esi
mov byte [ebp + 0x4f260a], 0
push ecx
lea ecx, [esp + eax + 0x14]
push ecx
push edx
call fcn.004b58e0
mov edi, dword [0x62bdc8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [edi + esi]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ebp]
sub ecx, esi
push ecx
push eax
push edx
call fcn.004b58e0
add esp, 0x18
push 1
lea ecx, [esp + 0x14]
push str._safe
push ecx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b340
mov byte [0x4f343d], 1
push 1
lea edx, [esp + 0x14]
push str._windowed
push edx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b35f
mov byte [0x4f40a4], 1
push 1
lea eax, [esp + 0x14]
push str._fullscreen
push eax
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b37e
mov byte [0x4f40a4], 2
push 1
lea ecx, [esp + 0x14]
push 0x4d0894
push ecx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b39d
mov byte [0x4c9330], 1
push 1
lea edx, [esp + 0x14]
push str._nolog
push edx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b3bc
mov byte [0x4c9330], 0
push 1
lea eax, [esp + 0x14]
push str._safelog
push eax
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b3db
mov byte [0x4f3434], 1
push 1
lea ecx, [esp + 0x14]
push str._spy
push ecx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b3fd
mov dword [0x4d049c], 1
push 1
lea edx, [esp + 0x14]
push str._nospy
push edx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b41b
mov dword [0x4d049c], ebx
push 1
lea eax, [esp + 0x14]
push str._nosound
push eax
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b43a
mov byte [0x4d268d], 0
push 1
lea ecx, [esp + 0x14]
push str._nodsound
push ecx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b458
mov dword [0x4d04c8], ebx
push 1
lea edx, [esp + 0x14]
push str._nonetwork
push edx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b477
mov byte [0x4d04a0], 0
push 1
lea eax, [esp + 0x14]
push str._noddrawwin
push eax
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b495
mov dword [0x4d1274], ebx
push 1
lea ecx, [esp + 0x14]
push str._noddraw
push ecx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b4b3
mov dword [0x4d127c], ebx
push 1
lea edx, [esp + 0x14]
push str._noddrawmemcheck
push edx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b4d2
mov byte [0x4d1284], 0
push 1
lea eax, [esp + 0x14]
push str._noreg
push eax
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b4f1
mov byte [0x4d04b1], 0
push 1
lea ecx, [esp + 0x14]
push str._nojoy
push ecx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b510
mov byte [0x4d04a8], 0
push 1
lea edx, [esp + 0x14]
push str._noerrtrap
push edx
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b52f
mov byte [0x4d04b0], 0
push 1
lea eax, [esp + 0x14]
push str._nocpucheck
push eax
call fcn.00491840
add esp, 0xc
test al, al
je 0x48b54e
mov byte [0x4d0498], 0
mov al, byte [0x4f343d]
test al, al
je 0x48b5a6
push str.WIN:_Safe_mode_startup
call fcn.0048edc0
add esp, 4
mov byte [0x4f40a4], 4
mov byte [0x4d268d], 0
mov dword [0x4d049c], ebx
mov dword [0x4d04c8], ebx
mov byte [0x4d04a0], 0
mov byte [0x4d04a8], 0
mov dword [0x4d127c], ebx
mov dword [0x4d1274], ebx
mov byte [0x4d0498], 0
mov byte [0x4d04b0], 0
mov ecx, dword [0x62bdc8]
push 0x4d07dc
push ecx
call fcn.004b5f80
add esp, 8
test eax, eax
je 0x48b623
call fcn.0048db40
mov cl, byte [0x4d124c]
mov esi, eax
cmp cl, 5
sete bl
test bl, bl
je 0x48b5dc
xor cl, cl
call fcn.00494e50
mov edx, dword [0x4f33fc]
mov eax, dword [0x4f33f0]
push 0
push 0x490d20
push edx
push 0x87
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
test bl, bl
je 0x48b604
call fcn.00494fb0
call fcn.0048db40
mov ecx, dword [0x4f3408]
sub eax, esi
add ecx, eax
push 0
mov dword [0x4f3408], ecx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x4f3438], eax
mov al, byte [0x4c9330]
test al, al
je 0x48b64e
push 1
push 0x4f2610
call fcn.00498800
add esp, 8
mov dword [0x4f3430], eax
push 0x104
push 0x4f2de4
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x4f2de4
push str.LOG:_GRADE__Build_98_194W___Executable:__s
call fcn.0048edc0
mov ecx, dword [str.1.24]
mov edx, dword [0x4c931c]
push ecx
push edx
push str.LOG:__s_version__s
call fcn.0048edc0
push 0x4eff30
call fcn.0048edc0
add esp, 0x18
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov al, byte [0x4d04b0]
test al, al
je 0x48b6ad
push 0x48b890
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov ecx, 0x63
xor eax, eax
mov edi, 0x4f2720
rep stosd dword es:[edi], eax
call fcn.004918f0
xor eax, eax
mov ecx, eax
and ecx, 0xff
inc eax
cmp eax, 0x104
mov dl, byte [ecx + 0x4d04d8]
mov byte [eax + 0x62c03f], dl
jl 0x48b6c2
mov dword [0x62bdd0], ebx
call fcn.0048d540
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [0x4f33f4], eax
call fcn.004930a0
call fcn.00491260
call fcn.0048da00
call fcn.0048b930
mov ecx, dword [0x4f2500]
mov edx, dword [0x4f2504]
mov eax, bind
add ecx, 0x140
mov dword [0x62bde4], eax
mov dword [0x62bde0], eax
mov eax, 0x90000000
add edx, 0xf0
mov byte [0x62be08], 0
mov dword [0x62bdf8], eax
mov dword [0x62bdf4], eax
mov dword [0x62bde8], ecx
mov dword [0x62bdec], edx
mov dword [0x62be00], eax
mov dword [0x62bdfc], eax
mov dword [0x62be04], ebx
mov dword [0x62bdf0], ebx
call fcn.0048e7c0
mov ecx, dword [0x62bdf0]
mov eax, 0xcf0000
cmp ecx, ebx
je 0x48b781
mov eax, 0x1cf0000
mov ecx, dword [0x4f33f0]
mov edx, dword [0x62bdec]
push ebx
push ecx
mov ecx, dword [0x62bde8]
push ebx
push ebx
push edx
mov edx, dword [0x62bde4]
push ecx
mov ecx, dword [0x62bde0]
push edx
mov edx, dword [0x4c931c]
and eax, 0xefffffff
push ecx
push eax
push edx
push str.DDWndClass
push 0x300
call dword [sym.imp.USER32.dll_CreateWindowExA]
pop edi
pop esi
pop ebp
cmp eax, ebx
mov dword [0x4f33fc], eax
pop ebx
je 0x48b80b
call fcn.00493230
call fcn.0049c080
call fcn.00491aa0
call fcn.00498c80
call fcn.004972f0
push str._____Starting_execution:_invoke_MainProg__
call fcn.0048edc0
push 0x4eff30
call fcn.0048edc0
add esp, 8
call fcn.00440270
call fcn.0048dbf0
xor eax, eax
add esp, 0x200
ret 0x10