Function at 0x5ffab0
Capabilities:
Accept command line arguments
Hide graphical window

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0xd0
cmp byte [0x784008], 0
mov ebx, dword [esp + 0xf0]
mov ebp, dword [esp + 0xe4]
mov eax, dword [esp + 0xec]
jne 0x5ffae9
mov byte [0x784008], 1
mov dword [0x784004], 0
push 2
push 0
push 0
push 0x2001
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 0
push 0x18
call fcn.00602ee0
test eax, eax
pop ecx
pop ecx
jne 0x5ffb18
xor eax, eax
add esp, 0xd0
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
push 0x64
push ebp
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push 0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xa0], 0x2000
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xa4], 0x6010b0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x98]
push eax
mov edx, dword [str.Grand_theft_auto_3]
mov dword [esp + 0xc0], edx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
call dword [sym.imp.USER32.dll_RegisterClassA]
movzx eax, ax
test eax, eax
jne 0x5ffbb6
xor eax, eax
add esp, 0xd0
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea esi, [esp + 0x38]
push esi
push eax
call fcn.00600c70
cmp dword [esp + 0x40], 1
pop ecx
mov esi, 1
pop ecx
mov edi, eax
jle 0x5ffbeb
mov eax, dword [edi + esi*4]
push eax
push 0x25
call fcn.00602ee0
inc esi
pop ecx
cmp esi, dword [esp + 0x3c]
pop ecx
jl 0x5ffbd7
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc0], eax
mov eax, dword [0x9b48e0]
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xc0]
mov ecx, dword [0x9b48dc]
push 0
push 0xcf0000
push eax
mov dword [esp + 0xd4], ecx
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0xcc]
sub eax, dword [esp + 0xc0]
sub edx, dword [esp + 0xc4]
mov esi, dword [0x9b48d8]
push 0
push ebp
push 0
push 0
push edx
push eax
mov eax, dword [str.Grand_theft_auto_3]
push 0x80000000
push 0x80000000
push 0xcf0000
push esi
push eax
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [0x9b48f4]
mov dword [ecx], eax
mov eax, dword [0x9b48f4]
cmp dword [eax], 0
jne 0x5ffca0
xor eax, eax
add esp, 0xd0
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
mov ecx, 0x9b491c
mov dword [eax + 4], ebp
call fcn.0061a0f0
mov ecx, 0x9b491c
call fcn.00619b80
mov eax, dword [0x9b48f4]
cmp dword [eax + 0x18], 0
jne 0x5ffce4
add eax, 0x18
push 0
push eax
push 0x67ec8c
push 0x800
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call sub.DINPUT8.dll_DirectInput8Create
test eax, eax
jl 0x5ffce6
xor eax, eax
test eax, eax
jne 0x5ffd4c
mov ecx, dword [0x9b48f4]
lea eax, [ecx + 0x1c]
push 0
push eax
mov eax, dword [ecx + 0x18]
mov ebp, dword [eax]
push 0x67ebfc
push eax
call dword [ebp + 0xc]
test eax, eax
jl 0x5ffd47
mov edx, dword [0x9b48f4]
mov eax, dword [edx + 0x1c]
mov esi, dword [eax]
push 0x67ee9c
push eax
call dword [esi + 0x2c]
test eax, eax
jl 0x5ffd47
mov edx, dword [0x9b48f4]
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx]
mov ebp, dword [eax]
push 6
push ecx
push eax
call dword [ebp + 0x34]
test eax, eax
jl 0x5ffd47
mov esi, dword [0x9b48f4]
mov eax, dword [esi + 0x1c]
mov ebp, dword [eax]
push eax
call dword [ebp + 0x1c]
call fcn.005ff4d0
lea eax, [esp + 0x88]
mov ecx, 0xa10a4c
push eax
call fcn.004ada20
lea eax, [esp + 0x88]
mov ecx, 0x9b491c
push eax
call fcn.00619ae0
mov edx, dword [0x9b48f4]
mov eax, dword [edx]
push 0x80000000
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [0x9b48f4]
mov eax, dword [ecx]
push 0x27
push 0
push 0
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov esi, dword [0x9b48f4]
mov eax, dword [esi]
push eax
push 0x15
call fcn.00602ee0
test eax, eax
pop ecx
pop ecx
jne 0x5ffde0
mov edx, dword [0x9b48f4]
mov eax, dword [edx]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
push 0
push 0x19
call fcn.00602ee0
pop ecx
pop ecx
xor eax, eax
add esp, 0xd0
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
cmp dword [esp + 0x38], 1
mov ebp, 1
jle 0x5ffe04
lea eax, [eax]
mov eax, dword [edi + ebp*4]
push eax
push 1
call fcn.00602ee0
inc ebp
pop ecx
cmp ebp, dword [esp + 0x3c]
pop ecx
jl 0x5ffdf0
mov eax, dword [0x9b48dc]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], eax
mov eax, dword [0x9b48e0]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x54], 0
push 0
call fcn.00602ee0
pop ecx
pop ecx
push 2
push 0
push 0
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 2
push 0
push 0
push 0x56
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 2
push 0
push 0
push 0x55
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov dword [esp + 0x3c], 8
lea eax, [esp + 0x3c]
push 2
push eax
mov dword [esp + 0x4c], 8
push 8
push 0x3a
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
lea eax, [esp + 0x44]
mov dword [esp + 0x48], 0x100
push 2
push eax
push 8
push 0x3b
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov ecx, dword [0x9b48f4]
push ebx
mov eax, dword [ecx]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [0x9b48f4]
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
call fcn.0048e020
push 0x6d5e44
push str.gta_vc.set
call fcn.0048df90
mov ebp, eax
pop ecx
test ebp, ebp
pop ecx
je 0x5ffee5
mov ecx, 0x9b491c
push ebp
call fcn.00619f70
push ebp
call fcn.0048dea0
pop ecx
push 0x6d5e54
call fcn.0048e030
pop ecx
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
fild dword [0x9b48dc]
mov dword [0x974b74], 1
fmul dword [0x6d5e58]
fstp dword [esp + 0x30]
fild dword [0x9b48e0]
lea eax, [esp + 0x30]
push eax
fmul dword [0x6d5e58]
fstp dword [esp + 0x38]
call fcn.006030c0
mov dword [esp + 0x60], 0x2c
pop ecx
jmp case.default.0x5fff9e
lea eax, [esp + 0x14]
push 3
push 0
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x5fff80
cmp dword [esp + 0x18], 0x12
je 0x6004fd
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp case.default.0x5fff9e
cmp dword [0x6d59fc], 0
je 0x6004b0
mov edx, dword [0x9b5f08]
mov eax, edx
cmp eax, 9
ja case.default.0x5fff9e
jmp dword [eax*4 + 0x6d68e4]
mov dword [0x9b5f08], 1
jmp case.default.0x5fff9e
cmp dword [0x974bfc], 0
jne 0x5fffca
push 0x6d5e5c
push ebx
call fcn.006007d0
pop ecx
pop ecx
mov dword [0x9b5f08], 2
jmp case.default.0x5fff9e
call fcn.004ab6c0
cmp dword [0x974bfc], 0
jne 0x600133
mov ecx, 0x9b491c
call fcn.0061a0c0
test eax, eax
jne 0x600133
push 0
call fcn.004ab060
pop ecx
mov ecx, eax
call fcn.004ae470
test al, al
jne 0x600133
push 0
call fcn.004ab060
pop ecx
xor cl, cl
cmp byte [0x94d788], 0
je 0x600039
xor eax, eax
cmp byte [0x936908], 0
jne 0x600033
inc eax
test al, al
je 0x600039
mov cl, 1
test cl, cl
jne 0x600133
push 0
call fcn.004ab060
cmp word [0x7d17e4], 0
pop ecx
je 0x60005d
cmp word [0x7dddc4], 0
je 0x600071
cmp word [0x7d1802], 0
je 0x600075
cmp word [0x7ddde2], 0
jne 0x600075
mov al, 1
jmp 0x600077
xor al, al
test al, al
jne 0x600133
push 0
call fcn.004ab060
xor dl, dl
cmp word [0x7d1600], 0
pop ecx
je 0x6000a6
xor eax, eax
cmp word [0x7ddbe0], 0
jne 0x6000a0
inc eax
test al, al
je 0x6000a6
mov dl, 1
test dl, dl
jne 0x600133
push 0
call fcn.004ab060
xor dl, dl
cmp word [0x7d180e], 0
pop ecx
mov cl, 1
je 0x6000d7
xor eax, eax
cmp word [0x7dddee], 0
jne 0x6000d1
inc eax
test al, al
je 0x6000d7
mov dl, 1
test dl, dl
jne 0x600100
xor dl, dl
cmp word [0x7d1810], 0
je 0x6000fa
xor eax, eax
cmp word [0x7dddf0], 0
jne 0x6000f4
inc eax
test al, al
je 0x6000fa
mov dl, 1
test dl, dl
jne 0x600100
xor cl, cl
test cl, cl
jne 0x600133
push 0
call fcn.004ab060
xor dl, dl
cmp word [0x7d17fe], 0
pop ecx
je 0x60012b
xor eax, eax
cmp word [0x7dddde], 0
jne 0x600125
inc eax
test al, al
je 0x60012b
mov dl, 1
test dl, dl
je case.default.0x5fff9e
inc dword [0x9b5f08]
jmp case.default.0x5fff9e
cmp dword [0x94dda4], 0
je 0x600152
mov eax, dword [0x94dda4]
mov ebp, dword [eax]
push eax
call dword [ebp + 0x24]
call fcn.00600730
call dword [0x6f269c]
mov eax, dword [0x86967c]
cmp eax, 0xc
je 0x60016c
cmp eax, 7
jne 0x600173
push str.moviesGTAtitlesGER.mpg
jmp 0x600178
push str.moviesGTAtitles.mpg
push ebx
call fcn.006007d0
pop ecx
pop ecx
mov dword [0x9b5f08], 4
jmp case.default.0x5fff9e
call fcn.004ab6c0
cmp dword [0x974bfc], 0
jne 0x6002ee
mov ecx, 0x9b491c
call fcn.0061a0c0
test eax, eax
jne 0x6002ee
push 0
call fcn.004ab060
pop ecx
mov ecx, eax
call fcn.004ae470
test al, al
jne 0x6002ee
push 0
call fcn.004ab060
pop ecx
xor cl, cl
cmp byte [0x94d788], 0
je 0x6001ef
xor eax, eax
cmp byte [0x936908], 0
jne 0x6001e9
inc eax
test al, al
je 0x6001ef
mov cl, 1
test cl, cl
jne 0x6002ee
push 0
call fcn.004ab060
cmp word [0x7d17e4], 0
pop ecx
je 0x600213
cmp word [0x7dddc4], 0
je 0x600227
cmp word [0x7d1802], 0
je 0x600230
cmp word [0x7ddde2], 0
jne 0x600230
mov al, 1
jmp 0x600232
xor al, al
test al, al
jne 0x6002ee
push 0
call fcn.004ab060
xor dl, dl
cmp word [0x7d1600], 0
pop ecx
je 0x600261
xor eax, eax
cmp word [0x7ddbe0], 0
jne 0x60025b
inc eax
test al, al
je 0x600261
mov dl, 1
test dl, dl
jne 0x6002ee
push 0
call fcn.004ab060
xor dl, dl
cmp word [0x7d180e], 0
pop ecx
mov cl, 1
je 0x600292
xor eax, eax
cmp word [0x7dddee], 0
jne 0x60028c
inc eax
test al, al
je 0x600292
mov dl, 1
test dl, dl
jne 0x6002bb
xor dl, dl
cmp word [0x7d1810], 0
je 0x6002b5
xor eax, eax
cmp word [0x7dddf0], 0
jne 0x6002af
inc eax
test al, al
je 0x6002b5
mov dl, 1
test dl, dl
jne 0x6002bb
xor cl, cl
test cl, cl
jne 0x6002ee
push 0
call fcn.004ab060
xor dl, dl
cmp word [0x7d17fe], 0
pop ecx
je 0x6002e6
xor eax, eax
cmp word [0x7dddde], 0
jne 0x6002e0
inc eax
test al, al
je 0x6002e6
mov dl, 1
test dl, dl
je case.default.0x5fff9e
inc dword [0x9b5f08]
jmp case.default.0x5fff9e
cmp dword [0x94dda4], 0
je 0x60030d
mov eax, dword [0x94dda4]
mov esi, dword [eax]
push eax
call dword [esi + 0x24]
call fcn.00600730
call dword [0x6f269c]
push str.loadsc0
push 0
push 0
call fcn.004a69d0
add esp, 0xc
push str.loadsc0
push 0
push 0
call fcn.004a69d0
add esp, 0xc
call fcn.004a5020
test al, al
jne 0x60034d
mov dword [0x9b48f0], 1
mov dword [0x9b5f08], 6
jmp case.default.0x5fff9e
push str.loadsc0
push 0
push 0
call fcn.004a69d0
add esp, 0xc
push str.loadsc0
push 0
push 0
call fcn.004a69d0
add esp, 0xc
cmp dword [0x6d59f8], 0
mov byte [0x869642], 1
mov byte [0x86969c], 1
je 0x6003b3
mov eax, dword [0x783eec]
mov dword [0x6d59f8], 0
mov dword [0x86968c], eax
mov eax, dword [0x783eec]
mov dword [0x869690], eax
mov dword [0x9b5f08], 7
jmp case.default.0x5fff9e
mov ecx, dword [0x9b48f4]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [ecx]
push eax
call dword [sym.imp.USER32.dll_GetWindowPlacement]
cmp dword [esp + 0x64], 2
je 0x6003e8
push 0
push 0x1b
call fcn.00602ee0
pop ecx
pop ecx
cmp byte [0x869668], 0
je 0x6003fa
cmp byte [0x86966c], 0
je 0x600404
mov dword [0x9b5f08], 8
cmp byte [0x86966c], 0
je case.default.0x5fff9e
call fcn.004a5c40
mov byte [0x86969c], 0
mov dword [0x9b5f08], 9
jmp case.default.0x5fff9e
call fcn.004d0e30
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 8], eax
fild qword [esp + 8]
fstp dword [esp + 4]
call fcn.004d0df0
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 8], eax
cmp dword [0x974b74], 0
fldz
fild qword [esp + 8]
fdiv dword [esp + 4]
fstp st(1)
je 0x6006b1
cmp byte [0x869655], 0
je 0x60049c
fild dword [0x9b48ec]
fdivr dword [0x6d5ea4]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x6006b8
push 1
push 0x1a
fstp st(0)
call fcn.00602ee0
pop ecx
pop ecx
jmp case.default.0x5fff9e
mov eax, dword [0x8100bc]
push eax
call fcn.0064a820
test eax, eax
pop ecx
je 0x6004e1
mov eax, dword [0x8100bc]
push eax
call fcn.0064a810
pop ecx
mov dword [0x6d59fc], 1
push 1
push 0x26
call fcn.00602ee0
pop ecx
pop ecx
call dword [sym.imp.USER32.dll_WaitMessage]
cmp dword [0x9b48f0], 0
jne 0x6004fd
cmp byte [0x869669], 0
je 0x5fff40
mov ecx, 0x869630
mov dword [0x974b74], 0
call fcn.004a394d
cmp byte [0x869669], 0
je 0x6005c0
call fcn.004a9590
call fcn.004ab080
mov ecx, 0xa10b8a
push 3
call fcn.005f98b0
call fcn.004d0db0
cmp byte [0x86966c], 0
je 0x600574
call fcn.004a47b0
call fcn.004a4670
mov ecx, 0xa10b8a
push 1
call fcn.005f98b0
mov eax, dword [0xa0d9ac]
push eax
call fcn.004a6d90
pop ecx
push eax
call fcn.004a6e80
mov byte [0x86966c], 0
pop ecx
jmp 0x6005aa
cmp dword [0x9b5f08], 9
jne 0x600582
call fcn.004a49e0
call fcn.004d0db0
cmp byte [0x86966a], 1
jne 0x6005a0
mov dword [0x9b5f08], 6
jmp 0x6005aa
mov dword [0x9b5f08], 8
mov byte [0x86966a], 0
mov byte [0x869669], 0
jmp 0x5ffef8
cmp dword [0x9b5f08], 9
jne 0x6005ce
call fcn.004a49e0
mov ecx, 0xa10b8a
call fcn.005f9e70
call fcn.00642b40
cmp dword [0x7839e0], 0
mov ebx, eax
je 0x600629
xor ebp, ebp
test ebx, ebx
jle 0x60060c
mov eax, eax
mov edx, dword [0x7839e0]
mov esi, dword [0x7870c0]
mov eax, dword [edx + ebp*4]
push eax
call dword [esi + 0x134]
inc ebp
pop ecx
cmp ebp, ebx
jl 0x6005f0
mov eax, dword [0x7839e0]
mov ebx, dword [0x7870c0]
push eax
call dword [ebx + 0x134]
mov dword [0x7839e0], 0
pop ecx
push 0
push 0x16
call fcn.00602ee0
pop ecx
pop ecx
mov ecx, dword [0x9b48f4]
mov eax, dword [ecx]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
push 0
push 0x19
call fcn.00602ee0
pop ecx
pop ecx
push edi
call fcn.006618a0
pop ecx
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
lea eax, [esp + 0x3c]
push 2
push eax
push 8
push 0x3b
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 2
push 0
push 1
push 0x56
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 2
push 0
push 1
push 0x55
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 2
push 0
push 1
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
push 0
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, dword [esp + 0x1c]
add esp, 0xd0
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
fstp st(0)
jmp case.default.0x5fff9e
fstp st(0)
jmp case.default.0x5fff9e