Function at 0x5ffad0
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 0x5ffb09
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.00602ec0
test eax, eax
pop ecx
pop ecx
jne 0x5ffb38
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], 0x6010e0
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 0x5ffbd6
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.00600c90
cmp dword [esp + 0x40], 1
pop ecx
mov esi, 1
pop ecx
mov edi, eax
jle 0x5ffc0b
mov eax, dword [edi + esi*4]
push eax
push 0x25
call fcn.00602ec0
inc esi
pop ecx
cmp esi, dword [esp + 0x3c]
pop ecx
jl 0x5ffbf7
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc0], eax
mov eax, dword [0x9b48e8]
mov dword [esp + 0xcc], eax
lea eax, [esp + 0xc0]
mov ecx, dword [0x9b48e4]
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 [0x9b48e0]
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 [0x9b48fc]
mov dword [ecx], eax
mov eax, dword [0x9b48fc]
cmp dword [eax], 0
jne 0x5ffcc0
xor eax, eax
add esp, 0xd0
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
mov ecx, 0x9b4924
mov dword [eax + 4], ebp
call fcn.0061a0d0
mov ecx, 0x9b4924
call fcn.00619b60
mov eax, dword [0x9b48fc]
cmp dword [eax + 0x18], 0
jne 0x5ffd04
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 0x5ffd06
xor eax, eax
test eax, eax
jne 0x5ffd6c
mov ecx, dword [0x9b48fc]
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 0x5ffd67
mov edx, dword [0x9b48fc]
mov eax, dword [edx + 0x1c]
mov esi, dword [eax]
push 0x67ee9c
push eax
call dword [esi + 0x2c]
test eax, eax
jl 0x5ffd67
mov edx, dword [0x9b48fc]
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 0x5ffd67
mov esi, dword [0x9b48fc]
mov eax, dword [esi + 0x1c]
mov ebp, dword [eax]
push eax
call dword [ebp + 0x1c]
call fcn.005ff4f0
lea eax, [esp + 0x88]
mov ecx, 0xa10a54
push eax
call fcn.004ada40
lea eax, [esp + 0x88]
mov ecx, 0x9b4924
push eax
call fcn.00619ac0
mov edx, dword [0x9b48fc]
mov eax, dword [edx]
push 0x80000000
push 0xfffffffffffffff0
push eax
call dword [sym.imp.user32.dll_SetWindowLongA]
mov ecx, dword [0x9b48fc]
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 [0x9b48fc]
mov eax, dword [esi]
push eax
push 0x15
call fcn.00602ec0
test eax, eax
pop ecx
pop ecx
jne 0x5ffe00
mov edx, dword [0x9b48fc]
mov eax, dword [edx]
push eax
call dword [sym.imp.user32.dll_DestroyWindow]
push 0
push 0x19
call fcn.00602ec0
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 0x5ffe24
lea eax, [eax]
mov eax, dword [edi + ebp*4]
push eax
push 1
call fcn.00602ec0
inc ebp
pop ecx
cmp ebp, dword [esp + 0x3c]
pop ecx
jl 0x5ffe10
mov eax, dword [0x9b48e4]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], eax
mov eax, dword [0x9b48e8]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x54], 0
push 0
call fcn.00602ec0
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 [0x9b48fc]
push ebx
mov eax, dword [ecx]
push eax
call dword [sym.imp.user32.dll_ShowWindow]
mov esi, dword [0x9b48fc]
mov eax, dword [esi]
push eax
call dword [sym.imp.user32.dll_UpdateWindow]
call fcn.0048e030
push 0x6d5e44
push str.gta_vc.set
call fcn.0048dfa0
mov ebp, eax
pop ecx
test ebp, ebp
pop ecx
je 0x5fff05
mov ecx, 0x9b4924
push ebp
call fcn.00619f50
push ebp
call fcn.0048deb0
pop ecx
push 0x6d5e54
call fcn.0048e040
pop ecx
push 1
call dword [sym.imp.kernel32.dll_SetErrorMode]
fild dword [0x9b48e4]
mov dword [0x974b7c], 1
fmul dword [0x6d5e58]
fstp dword [esp + 0x30]
fild dword [0x9b48e8]
lea eax, [esp + 0x30]
push eax
fmul dword [0x6d5e58]
fstp dword [esp + 0x38]
call fcn.006030a0
mov dword [esp + 0x60], 0x2c
pop ecx
jmp case.default.0x5fffbe
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 0x5fffa0
cmp dword [esp + 0x18], 0x12
je 0x60051d
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.0x5fffbe
cmp dword [0x6d59fc], 0
je 0x6004d0
mov edx, dword [0x9b5f10]
mov eax, edx
cmp eax, 9
ja case.default.0x5fffbe
jmp dword [eax*4 + 0x6d68b8]
mov dword [0x9b5f10], 1
jmp case.default.0x5fffbe
cmp dword [0x974c04], 0
jne 0x5fffea
push 0x6d5e5c
push ebx
call fcn.006007f0
pop ecx
pop ecx
mov dword [0x9b5f10], 2
jmp case.default.0x5fffbe
call fcn.004ab6e0
cmp dword [0x974c04], 0
jne 0x600153
mov ecx, 0x9b4924
call fcn.0061a0a0
test eax, eax
jne 0x600153
push 0
call fcn.004ab080
pop ecx
mov ecx, eax
call fcn.004ae490
test al, al
jne 0x600153
push 0
call fcn.004ab080
pop ecx
xor cl, cl
cmp byte [0x94d790], 0
je 0x600059
xor eax, eax
cmp byte [0x936910], 0
jne 0x600053
inc eax
test al, al
je 0x600059
mov cl, 1
test cl, cl
jne 0x600153
push 0
call fcn.004ab080
cmp word [0x7d17ec], 0
pop ecx
je 0x60007d
cmp word [0x7dddcc], 0
je 0x600091
cmp word [0x7d180a], 0
je 0x600095
cmp word [0x7dddea], 0
jne 0x600095
mov al, 1
jmp 0x600097
xor al, al
test al, al
jne 0x600153
push 0
call fcn.004ab080
xor dl, dl
cmp word [0x7d1608], 0
pop ecx
je 0x6000c6
xor eax, eax
cmp word [0x7ddbe8], 0
jne 0x6000c0
inc eax
test al, al
je 0x6000c6
mov dl, 1
test dl, dl
jne 0x600153
push 0
call fcn.004ab080
xor dl, dl
cmp word [0x7d1816], 0
pop ecx
mov cl, 1
je 0x6000f7
xor eax, eax
cmp word [0x7dddf6], 0
jne 0x6000f1
inc eax
test al, al
je 0x6000f7
mov dl, 1
test dl, dl
jne 0x600120
xor dl, dl
cmp word [0x7d1818], 0
je 0x60011a
xor eax, eax
cmp word [0x7dddf8], 0
jne 0x600114
inc eax
test al, al
je 0x60011a
mov dl, 1
test dl, dl
jne 0x600120
xor cl, cl
test cl, cl
jne 0x600153
push 0
call fcn.004ab080
xor dl, dl
cmp word [0x7d1806], 0
pop ecx
je 0x60014b
xor eax, eax
cmp word [0x7ddde6], 0
jne 0x600145
inc eax
test al, al
je 0x60014b
mov dl, 1
test dl, dl
je case.default.0x5fffbe
inc dword [0x9b5f10]
jmp case.default.0x5fffbe
cmp dword [0x94ddac], 0
je 0x600172
mov eax, dword [0x94ddac]
mov ebp, dword [eax]
push eax
call dword [ebp + 0x24]
call fcn.00600750
call dword [0x6f269c]
mov eax, dword [0x869684]
cmp eax, 0xc
je 0x60018c
cmp eax, 7
jne 0x600193
push str.moviesGTAtitlesGER.mpg
jmp 0x600198
push str.moviesGTAtitles.mpg
push ebx
call fcn.006007f0
pop ecx
pop ecx
mov dword [0x9b5f10], 4
jmp case.default.0x5fffbe
call fcn.004ab6e0
cmp dword [0x974c04], 0
jne 0x60030e
mov ecx, 0x9b4924
call fcn.0061a0a0
test eax, eax
jne 0x60030e
push 0
call fcn.004ab080
pop ecx
mov ecx, eax
call fcn.004ae490
test al, al
jne 0x60030e
push 0
call fcn.004ab080
pop ecx
xor cl, cl
cmp byte [0x94d790], 0
je 0x60020f
xor eax, eax
cmp byte [0x936910], 0
jne 0x600209
inc eax
test al, al
je 0x60020f
mov cl, 1
test cl, cl
jne 0x60030e
push 0
call fcn.004ab080
cmp word [0x7d17ec], 0
pop ecx
je 0x600233
cmp word [0x7dddcc], 0
je 0x600247
cmp word [0x7d180a], 0
je 0x600250
cmp word [0x7dddea], 0
jne 0x600250
mov al, 1
jmp 0x600252
xor al, al
test al, al
jne 0x60030e
push 0
call fcn.004ab080
xor dl, dl
cmp word [0x7d1608], 0
pop ecx
je 0x600281
xor eax, eax
cmp word [0x7ddbe8], 0
jne 0x60027b
inc eax
test al, al
je 0x600281
mov dl, 1
test dl, dl
jne 0x60030e
push 0
call fcn.004ab080
xor dl, dl
cmp word [0x7d1816], 0
pop ecx
mov cl, 1
je 0x6002b2
xor eax, eax
cmp word [0x7dddf6], 0
jne 0x6002ac
inc eax
test al, al
je 0x6002b2
mov dl, 1
test dl, dl
jne 0x6002db
xor dl, dl
cmp word [0x7d1818], 0
je 0x6002d5
xor eax, eax
cmp word [0x7dddf8], 0
jne 0x6002cf
inc eax
test al, al
je 0x6002d5
mov dl, 1
test dl, dl
jne 0x6002db
xor cl, cl
test cl, cl
jne 0x60030e
push 0
call fcn.004ab080
xor dl, dl
cmp word [0x7d1806], 0
pop ecx
je 0x600306
xor eax, eax
cmp word [0x7ddde6], 0
jne 0x600300
inc eax
test al, al
je 0x600306
mov dl, 1
test dl, dl
je case.default.0x5fffbe
inc dword [0x9b5f10]
jmp case.default.0x5fffbe
cmp dword [0x94ddac], 0
je 0x60032d
mov eax, dword [0x94ddac]
mov esi, dword [eax]
push eax
call dword [esi + 0x24]
call fcn.00600750
call dword [0x6f269c]
push str.loadsc0
push 0
push 0
call fcn.004a69f0
add esp, 0xc
push str.loadsc0
push 0
push 0
call fcn.004a69f0
add esp, 0xc
call fcn.004a5040
test al, al
jne 0x60036d
mov dword [0x9b48f8], 1
mov dword [0x9b5f10], 6
jmp case.default.0x5fffbe
push str.loadsc0
push 0
push 0
call fcn.004a69f0
add esp, 0xc
push str.loadsc0
push 0
push 0
call fcn.004a69f0
add esp, 0xc
cmp dword [0x6d59f8], 0
mov byte [0x86964a], 1
mov byte [0x8696a4], 1
je 0x6003d3
mov eax, dword [0x783eec]
mov dword [0x6d59f8], 0
mov dword [0x869694], eax
mov eax, dword [0x783eec]
mov dword [0x869698], eax
mov dword [0x9b5f10], 7
jmp case.default.0x5fffbe
mov ecx, dword [0x9b48fc]
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 0x600408
push 0
push 0x1b
call fcn.00602ec0
pop ecx
pop ecx
cmp byte [0x869670], 0
je 0x60041a
cmp byte [0x869674], 0
je 0x600424
mov dword [0x9b5f10], 8
cmp byte [0x869674], 0
je case.default.0x5fffbe
call fcn.004a5c60
mov byte [0x8696a4], 0
mov dword [0x9b5f10], 9
jmp case.default.0x5fffbe
call fcn.004d0e50
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.004d0e10
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 8], eax
cmp dword [0x974b7c], 0
fldz
fild qword [esp + 8]
fdiv dword [esp + 4]
fstp st(1)
je 0x6006d1
cmp byte [0x86965d], 0
je 0x6004bc
fild dword [0x9b48f4]
fdivr dword [0x6d5ea4]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x6006d8
push 1
push 0x1a
fstp st(0)
call fcn.00602ec0
pop ecx
pop ecx
jmp case.default.0x5fffbe
mov eax, dword [0x8100c4]
push eax
call fcn.0064a870
test eax, eax
pop ecx
je 0x600501
mov eax, dword [0x8100c4]
push eax
call fcn.0064a860
pop ecx
mov dword [0x6d59fc], 1
push 1
push 0x26
call fcn.00602ec0
pop ecx
pop ecx
call dword [sym.imp.user32.dll_WaitMessage]
cmp dword [0x9b48f8], 0
jne 0x60051d
cmp byte [0x869671], 0
je 0x5fff60
mov ecx, 0x869638
mov dword [0x974b7c], 0
call fcn.004a396e
cmp byte [0x869671], 0
je 0x6005e0
call fcn.004a95b0
call fcn.004ab0a0
mov ecx, 0xa10b93
push 3
call fcn.005f98d0
call fcn.004d0dd0
cmp byte [0x869674], 0
je 0x600594
call fcn.004a47d0
call fcn.004a4690
mov ecx, 0xa10b93
push 1
call fcn.005f98d0
mov eax, dword [0xa0d9b4]
push eax
call fcn.004a6db0
pop ecx
push eax
call fcn.004a6ea0
mov byte [0x869674], 0
pop ecx
jmp 0x6005ca
cmp dword [0x9b5f10], 9
jne 0x6005a2
call fcn.004a4a00
call fcn.004d0dd0
cmp byte [0x869672], 1
jne 0x6005c0
mov dword [0x9b5f10], 6
jmp 0x6005ca
mov dword [0x9b5f10], 8
mov byte [0x869672], 0
mov byte [0x869671], 0
jmp 0x5fff18
cmp dword [0x9b5f10], 9
jne 0x6005ee
call fcn.004a4a00
mov ecx, 0xa10b93
call fcn.005f9e90
call fcn.00642b90
cmp dword [0x7839e0], 0
mov ebx, eax
je 0x600649
xor ebp, ebp
test ebx, ebx
jle 0x60062c
mov eax, eax
mov edx, dword [0x7839e0]
mov esi, dword [0x7870c8]
mov eax, dword [edx + ebp*4]
push eax
call dword [esi + 0x134]
inc ebp
pop ecx
cmp ebp, ebx
jl 0x600610
mov eax, dword [0x7839e0]
mov ebx, dword [0x7870c8]
push eax
call dword [ebx + 0x134]
mov dword [0x7839e0], 0
pop ecx
push 0
push 0x16
call fcn.00602ec0
pop ecx
pop ecx
mov ecx, dword [0x9b48fc]
mov eax, dword [ecx]
push eax
call dword [sym.imp.user32.dll_DestroyWindow]
push 0
push 0x19
call fcn.00602ec0
pop ecx
pop ecx
push edi
call fcn.006618f0
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.0x5fffbe
fstp st(0)
jmp case.default.0x5fffbe