v-decompiled-scripts icon indicating copy to clipboard operation
v-decompiled-scripts copied to clipboard

Failure to determine end of function scope in freemode.

Open gir489returns opened this issue 1 year ago • 0 comments

The decompiler failed to understand that func_17111 is a nullsub, and simply continued on instead of ending the function scope and starting over.

This is what it generated:

void func_17111()//Position - 0x5599D6
{
	return;
	if (func_17096(0) == 0 && func_17096(1) == 0)
	{
		Global_1573131.f_6 = 0;
		return;
	}
	if (PED::IS_PED_INJURED(PLAYER::PLAYER_PED_ID()))
	{
		Global_1573131.f_6 = 0;
		return;
	}
	if (TASK::IS_PED_RUNNING(PLAYER::PLAYER_PED_ID()) || TASK::IS_PED_SPRINTING(PLAYER::PLAYER_PED_ID()))
	{
		Global_1573131.f_6 = 1;
		return;
	}
	Global_1573131.f_6 = 0;
}

But this is what it looks like in the script opcode VM.

CODE:005599D6                sub_5599D6:                             ; CODE XREF: sub_55155B+35↑P
CODE:005599D6 2D 00 02 00 00                 ENTER   0, 2
CODE:005599DB 2E 00 00                       LEAVE   0, 0
CODE:005599DB                ; End of function sub_5599D6
CODE:005599DB
CODE:005599DE                ; ---------------------------------------------------------------------------
CODE:005599DE 71                             PUSH_CONST_0 0
CODE:005599DF 5D 93 93 55                    CALL    sub_559393
CODE:005599E3 71                             PUSH_CONST_0 0
CODE:005599E4 08                             IEQ
CODE:005599E5 2A                             DUP
CODE:005599E6 56 08 00                       JZ      loc_5599F1
CODE:005599E9 72                             PUSH_CONST_1 1
CODE:005599EA 5D 93 93 55                    CALL    sub_559393
CODE:005599EE 71                             PUSH_CONST_0 0
CODE:005599EF 08                             IEQ
CODE:005599F0 1F                             IAND
CODE:005599F1
CODE:005599F1                loc_5599F1:                             ; CODE XREF: CODE:005599E6↑o
CODE:005599F1 56 0A 00                       JZ      loc_5599FE
CODE:005599F4 71                             PUSH_CONST_0 0
CODE:005599F5 61 0B 01 18                    GLOBAL_U24 0x18010B
CODE:005599F9 42 06                          IOFFSET_U8_STORE 6
CODE:005599FB 2E 00 00                       LEAVE   0, 0
CODE:005599FE                ; ---------------------------------------------------------------------------
CODE:005599FE
CODE:005599FE                loc_5599FE:                             ; CODE XREF: CODE:loc_5599F1↑o
CODE:005599FE 2C 01 01 D7                    NATIVE  1, native_4A8C381C258A124D
CODE:00559A02 2C 05 0A 49                    NATIVE  5, native_4FAFF4BCB7633475
CODE:00559A06 56 0A 00                       JZ      loc_559A13
CODE:00559A09 71                             PUSH_CONST_0 0
CODE:00559A0A 61 0B 01 18                    GLOBAL_U24 0x18010B
CODE:00559A0E 42 06                          IOFFSET_U8_STORE 6
CODE:00559A10 2E 00 00                       LEAVE   0, 0
CODE:00559A13                ; ---------------------------------------------------------------------------
CODE:00559A13
CODE:00559A13                loc_559A13:                             ; CODE XREF: CODE:00559A06↑o
CODE:00559A13 2C 01 01 D7                    NATIVE  1, native_4A8C381C258A124D
CODE:00559A17 2C 05 02 C6                    NATIVE  5, native_24433628C02BED5F
CODE:00559A1B 2A                             DUP
CODE:00559A1C 06                             INOT
CODE:00559A1D 56 09 00                       JZ      loc_559A29
CODE:00559A20 2C 01 01 D7                    NATIVE  1, native_4A8C381C258A124D
CODE:00559A24 2C 05 06 F5                    NATIVE  5, native_6F21822F60DC0945
CODE:00559A28 20                             IOR
CODE:00559A29
CODE:00559A29                loc_559A29:                             ; CODE XREF: CODE:00559A1D↑o
CODE:00559A29 56 0A 00                       JZ      loc_559A36
CODE:00559A2C 72                             PUSH_CONST_1 1
CODE:00559A2D 61 0B 01 18                    GLOBAL_U24 0x18010B
CODE:00559A31 42 06                          IOFFSET_U8_STORE 6
CODE:00559A33 2E 00 00                       LEAVE   0, 0
CODE:00559A36                ; ---------------------------------------------------------------------------
CODE:00559A36
CODE:00559A36                loc_559A36:                             ; CODE XREF: CODE:loc_559A29↑o
CODE:00559A36 71                             PUSH_CONST_0 0
CODE:00559A37 61 0B 01 18                    GLOBAL_U24 0x18010B
CODE:00559A3B 42 06                          IOFFSET_U8_STORE 6
CODE:00559A3D 2E 00 00                       LEAVE   0, 0
CODE:00559A40
CODE:00559A40                ; =============== S U B R O U T I N E =======================================
CODE:00559A40
CODE:00559A40
CODE:00559A40                sub_559A40:                             ; CODE XREF: sub_55155B+31↑P
CODE:00559A40 2D 00 03 00 00                 ENTER   0, 3
CODE:00559A45 62 17 04 18                    GLOBAL_U24_LOAD 0x180417
CODE:00559A49 71                             PUSH_CONST_0 0
CODE:00559A4A 57 03 00                       IEQ_JZ  loc_559A50
CODE:00559A4D 2E 00 00                       LEAVE   0, 0
CODE:00559A50                ; ---------------------------------------------------------------------------
CODE:00559A50
CODE:00559A50                loc_559A50:                             ; CODE XREF: sub_559A40+A↑o
CODE:00559A50 2C 01 0A 52                    NATIVE  1, native_7E3F74F641EE6B27
CODE:00559A54 61 0B 01 18                    GLOBAL_U24 0x18010B
CODE:00559A58 41 19                          IOFFSET_U8_LOAD 0x19
CODE:00559A5A 2C 09 0A B2                    NATIVE  9, native_C9FA0059132D5731
CODE:00559A5E 56 03 00                       JZ      loc_559A64
CODE:00559A61 2E 00 00                       LEAVE   0, 0
CODE:00559A64                ; ---------------------------------------------------------------------------
CODE:00559A64
CODE:00559A64                loc_559A64:                             ; CODE XREF: sub_559A40+1E↑o
CODE:00559A64 2C 01 0A 52                    NATIVE  1, native_7E3F74F641EE6B27
CODE:00559A68 43 E8 03                       PUSH_CONST_S16 0x3E8
CODE:00559A6B 2C 09 00 A1                    NATIVE  9, native_AD5B43C219C4CB92
CODE:00559A6F 61 0B 01 18                    GLOBAL_U24 0x18010B
CODE:00559A73 42 19                          IOFFSET_U8_STORE 0x19
CODE:00559A75 71                             PUSH_CONST_0 0
CODE:00559A76 39 02                          LOCAL_U8_STORE 2
CODE:00559A78 2C 01 0A 52                    NATIVE  1, native_7E3F74F641EE6B27
CODE:00559A7C 38 02                          LOCAL_U8_LOAD 2
CODE:00559A7E 61 FE 03 18                    GLOBAL_U24 0x1803FE
CODE:00559A82 34 03                          ARRAY_U8 3
CODE:00559A84 41 02                          IOFFSET_U8_LOAD 2
CODE:00559A86 2C 09 0A B2                    NATIVE  9, native_C9FA0059132D5731
CODE:00559A8A 56 03 00                       JZ      loc_559A90
CODE:00559A8D 2E 00 00                       LEAVE   0, 0
CODE:00559A90                ; ---------------------------------------------------------------------------
CODE:00559A90
CODE:00559A90                loc_559A90:                             ; CODE XREF: sub_559A40+4A↑o
CODE:00559A90 5D AB 27 55                    CALL    sub_5527AB
CODE:00559A94 2E 00 00                       LEAVE   0, 0
CODE:00559A94                ; End of function sub_559A40

gir489returns avatar Jul 28 '24 18:07 gir489returns