POKEMON SHUFFLE socre
来源:互联网 发布:电气绘图模拟软件 编辑:程序博客网 时间:2024/06/10 06:27
.text:6045A868
.text:6045A868 ; =============== S U B R O U T I N E =======================================
.text:6045A868
.text:6045A868
.text:6045A868 ; gmThread::Sys_Execute(gmVariable *)
.text:6045A868 EXPORT _ZN8gmThread11Sys_ExecuteEP10gmVariable
.text:6045A868 _ZN8gmThread11Sys_ExecuteEP10gmVariable ; CODE XREF: gmMachine::ExecuteLib(gmStream &,int *,bool,char const*,gmVariable *)+7Cp
.text:6045A868 ; gmMachine::ExecuteFunction(gmFunctionObject *,int *,bool,gmVariable *)+60p ...
.text:6045A868
.text:6045A868 var_80 = -0x80
.text:6045A868 var_78 = -0x78
.text:6045A868 var_74 = -0x74
.text:6045A868 var_70 = -0x70
.text:6045A868 var_6C = -0x6C
.text:6045A868 var_68 = -0x68
.text:6045A868 var_64 = -0x64
.text:6045A868 var_60 = -0x60
.text:6045A868 var_54 = -0x54
.text:6045A868 var_50 = -0x50
.text:6045A868 var_4C = -0x4C
.text:6045A868 var_48 = -0x48
.text:6045A868 var_40 = -0x40
.text:6045A868 var_3C = -0x3C
.text:6045A868 var_38 = -0x38
.text:6045A868 var_30 = -0x30
.text:6045A868 var_28 = -0x28
.text:6045A868
.text:6045A868 STMFD SP!, {R4-R11,LR}
.text:6045A86C SUB SP, SP, #0x5C
.text:6045A870 LDR R12, [R0,#0x34]
.text:6045A874 MOV R5, R0
.text:6045A878 STR R1, [SP,#0x80+var_64]
.text:6045A87C STR R12, [SP,#0x80+var_70]
.text:6045A880 LDR R12, =(_GLOBAL_OFFSET_TABLE_ - 0x6045A88C)
.text:6045A884 ADD R12, PC, R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045A888 STR R12, [SP,#0x80+var_68]
.text:6045A88C LDR R12, [SP,#0x80+var_70]
.text:6045A890 CMP R12, #0
.text:6045A894 BNE loc_6045AA84
.text:6045A898 LDR R3, [R0,#0x10]
.text:6045A89C CMP R3, #0
.text:6045A8A0 BNE loc_6045B67C
.text:6045A8A4
.text:6045A8A4 loc_6045A8A4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+E20j
.text:6045A8A4 ; gmThread::Sys_Execute(gmVariable *)+E2Cj ...
.text:6045A8A4 LDR R2, [R5,#0x2C]
.text:6045A8A8 MOV R11, #3
.text:6045A8AC LDR R3, [R5,#0x20]
.text:6045A8B0 ADD R1, SP, #0x80+var_60
.text:6045A8B4 SUB R2, R2, #0xE0000001
.text:6045A8B8 LDR R4, [R5,#0x28]
.text:6045A8BC STR R1, [SP,#0x80+var_78]
.text:6045A8C0 ADD R12, SP, #0x80+var_30
.text:6045A8C4 MOV R2, R2,LSL R11
.text:6045A8C8 STR R12, [SP,#0x80+var_6C]
.text:6045A8CC ADD R1, R3, R2
.text:6045A8D0 ADD R2, R2, #8
.text:6045A8D4 ADD R7, R3, R2
.text:6045A8D8 ADD R4, R3, R4,LSL#3
.text:6045A8DC LDR R3, [R1,#4]
.text:6045A8E0 MOV R6, #0
.text:6045A8E4 LDR R12, [R5,#0x44]
.text:6045A8E8 LDR R3, [R3,#0x1C]
.text:6045A8EC CMP R12, R6
.text:6045A8F0 MOVEQ R12, R3
.text:6045A8F4 STR R3, [SP,#0x80+var_50]
.text:6045A8F8
.text:6045A8F8 loc_6045A8F8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+22Cj
.text:6045A8F8 ; gmThread::Sys_Execute(gmVariable *)+264j ...
.text:6045A8F8 ADD R3, R12, #4
.text:6045A8FC STR R3, [SP,#0x80+var_54]
.text:6045A900 LDR R0, [R12]
.text:6045A904 CMP R0, #0x39 ; switch 58 cases
.text:6045A908 ADDLS PC, PC, R0,LSL#2 ; switch jump
.text:6045A90C ; ---------------------------------------------------------------------------
.text:6045A90C
.text:6045A90C loc_6045A90C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A90C B loc_6045AA90 ; _ZN18VNetworkLightGroupD2Ev_ptr ; jumptable 003B5908 default case
.text:6045A910 ; ---------------------------------------------------------------------------
.text:6045A910
.text:6045A910 loc_6045A910 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A910 B loc_6045AEFC ; jumptable 003B5908 case 0
.text:6045A914 ; ---------------------------------------------------------------------------
.text:6045A914
.text:6045A914 loc_6045A914 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A914 B loc_6045B1E8 ; jumptable 003B5908 case 1
.text:6045A918 ; ---------------------------------------------------------------------------
.text:6045A918
.text:6045A918 loc_6045A918 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A918 B loc_6045B118 ; jumptable 003B5908 case 2
.text:6045A91C ; ---------------------------------------------------------------------------
.text:6045A91C
.text:6045A91C loc_6045A91C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A91C B loc_6045AFD8 ; jumptable 003B5908 case 3
.text:6045A920 ; ---------------------------------------------------------------------------
.text:6045A920
.text:6045A920 loc_6045A920 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A920 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A924 ; ---------------------------------------------------------------------------
.text:6045A924
.text:6045A924 loc_6045A924 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A924 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A928 ; ---------------------------------------------------------------------------
.text:6045A928
.text:6045A928 loc_6045A928 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A928 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A92C ; ---------------------------------------------------------------------------
.text:6045A92C
.text:6045A92C loc_6045A92C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A92C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A930 ; ---------------------------------------------------------------------------
.text:6045A930
.text:6045A930 loc_6045A930 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A930 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A934 ; ---------------------------------------------------------------------------
.text:6045A934
.text:6045A934 loc_6045A934 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A934 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A938 ; ---------------------------------------------------------------------------
.text:6045A938
.text:6045A938 loc_6045A938 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A938 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A93C ; ---------------------------------------------------------------------------
.text:6045A93C
.text:6045A93C loc_6045A93C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A93C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A940 ; ---------------------------------------------------------------------------
.text:6045A940
.text:6045A940 loc_6045A940 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A940 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A944 ; ---------------------------------------------------------------------------
.text:6045A944
.text:6045A944 loc_6045A944 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A944 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A948 ; ---------------------------------------------------------------------------
.text:6045A948
.text:6045A948 loc_6045A948 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A948 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A94C ; ---------------------------------------------------------------------------
.text:6045A94C
.text:6045A94C loc_6045A94C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A94C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A950 ; ---------------------------------------------------------------------------
.text:6045A950
.text:6045A950 loc_6045A950 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A950 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A954 ; ---------------------------------------------------------------------------
.text:6045A954
.text:6045A954 loc_6045A954 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A954 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A958 ; ---------------------------------------------------------------------------
.text:6045A958
.text:6045A958 loc_6045A958 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A958 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A95C ; ---------------------------------------------------------------------------
.text:6045A95C
.text:6045A95C loc_6045A95C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A95C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A960 ; ---------------------------------------------------------------------------
.text:6045A960
.text:6045A960 loc_6045A960 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A960 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A964 ; ---------------------------------------------------------------------------
.text:6045A964
.text:6045A964 loc_6045A964 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A964 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A968 ; ---------------------------------------------------------------------------
.text:6045A968
.text:6045A968 loc_6045A968 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A968 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A96C ; ---------------------------------------------------------------------------
.text:6045A96C
.text:6045A96C loc_6045A96C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A96C B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A970 ; ---------------------------------------------------------------------------
.text:6045A970
.text:6045A970 loc_6045A970 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A970 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A974 ; ---------------------------------------------------------------------------
.text:6045A974
.text:6045A974 loc_6045A974 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A974 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A978 ; ---------------------------------------------------------------------------
.text:6045A978
.text:6045A978 loc_6045A978 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A978 B loc_6045AA90 ; jumptable 003B5908 default case
.text:6045A97C ; ---------------------------------------------------------------------------
.text:6045A97C
.text:6045A97C loc_6045A97C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A97C B loc_6045B0CC ; jumptable 003B5908 case 27
.text:6045A980 ; ---------------------------------------------------------------------------
.text:6045A980
.text:6045A980 loc_6045A980 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A980 B loc_6045B0BC ; jumptable 003B5908 case 28
.text:6045A984 ; ---------------------------------------------------------------------------
.text:6045A984
.text:6045A984 loc_6045A984 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A984 B loc_6045AC5C ; jumptable 003B5908 case 29
.text:6045A988 ; ---------------------------------------------------------------------------
.text:6045A988
.text:6045A988 loc_6045A988 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A988 B loc_6045AC00 ; jumptable 003B5908 case 30
.text:6045A98C ; ---------------------------------------------------------------------------
.text:6045A98C
.text:6045A98C loc_6045A98C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A98C B loc_6045ABB4 ; jumptable 003B5908 case 31
.text:6045A990 ; ---------------------------------------------------------------------------
.text:6045A990
.text:6045A990 loc_6045A990 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A990 B loc_6045AB60 ; jumptable 003B5908 case 32
.text:6045A994 ; ---------------------------------------------------------------------------
.text:6045A994
.text:6045A994 loc_6045A994 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A994 B loc_6045AAD0 ; jumptable 003B5908 case 33
.text:6045A998 ; ---------------------------------------------------------------------------
.text:6045A998
.text:6045A998 loc_6045A998 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A998 B loc_6045A9F8 ; jumptable 003B5908 case 34
.text:6045A99C ; ---------------------------------------------------------------------------
.text:6045A99C
.text:6045A99C loc_6045A99C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A99C B loc_6045AA04 ; jumptable 003B5908 case 35
.text:6045A9A0 ; ---------------------------------------------------------------------------
.text:6045A9A0
.text:6045A9A0 loc_6045A9A0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9A0 B loc_6045AE4C ; jumptable 003B5908 case 36
.text:6045A9A4 ; ---------------------------------------------------------------------------
.text:6045A9A4
.text:6045A9A4 loc_6045A9A4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9A4 B loc_6045AE40 ; jumptable 003B5908 case 37
.text:6045A9A8 ; ---------------------------------------------------------------------------
.text:6045A9A8
.text:6045A9A8 loc_6045A9A8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9A8 B loc_6045AE34 ; jumptable 003B5908 case 38
.text:6045A9AC ; ---------------------------------------------------------------------------
.text:6045A9AC
.text:6045A9AC loc_6045A9AC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9AC B loc_6045AE20 ; jumptable 003B5908 case 39
.text:6045A9B0 ; ---------------------------------------------------------------------------
.text:6045A9B0
.text:6045A9B0 loc_6045A9B0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9B0 B loc_6045ADFC ; jumptable 003B5908 case 40
.text:6045A9B4 ; ---------------------------------------------------------------------------
.text:6045A9B4
.text:6045A9B4 loc_6045A9B4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9B4 B loc_6045ADD4 ; jumptable 003B5908 case 41
.text:6045A9B8 ; ---------------------------------------------------------------------------
.text:6045A9B8
.text:6045A9B8 loc_6045A9B8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9B8 B loc_6045ADC0 ; jumptable 003B5908 case 42
.text:6045A9BC ; ---------------------------------------------------------------------------
.text:6045A9BC
.text:6045A9BC loc_6045A9BC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9BC B loc_6045ADA4 ; jumptable 003B5908 case 43
.text:6045A9C0 ; ---------------------------------------------------------------------------
.text:6045A9C0
.text:6045A9C0 loc_6045A9C0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9C0 B loc_6045AD90 ; jumptable 003B5908 case 44
.text:6045A9C4 ; ---------------------------------------------------------------------------
.text:6045A9C4
.text:6045A9C4 loc_6045A9C4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9C4 B loc_6045AD78 ; jumptable 003B5908 case 45
.text:6045A9C8 ; ---------------------------------------------------------------------------
.text:6045A9C8
.text:6045A9C8 loc_6045A9C8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9C8 B loc_6045AD5C ; jumptable 003B5908 case 46
.text:6045A9CC ; ---------------------------------------------------------------------------
.text:6045A9CC
.text:6045A9CC loc_6045A9CC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9CC B loc_6045AD44 ; jumptable 003B5908 case 47
.text:6045A9D0 ; ---------------------------------------------------------------------------
.text:6045A9D0
.text:6045A9D0 loc_6045A9D0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9D0 B loc_6045AD14 ; jumptable 003B5908 case 48
.text:6045A9D4 ; ---------------------------------------------------------------------------
.text:6045A9D4
.text:6045A9D4 loc_6045A9D4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9D4 B loc_6045ACF8 ; jumptable 003B5908 case 49
.text:6045A9D8 ; ---------------------------------------------------------------------------
.text:6045A9D8
.text:6045A9D8 loc_6045A9D8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9D8 B loc_6045ACD4 ; jumptable 003B5908 case 50
.text:6045A9DC ; ---------------------------------------------------------------------------
.text:6045A9DC
.text:6045A9DC loc_6045A9DC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9DC B loc_6045ACB0 ; jumptable 003B5908 case 51
.text:6045A9E0 ; ---------------------------------------------------------------------------
.text:6045A9E0
.text:6045A9E0 loc_6045A9E0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9E0 B loc_6045B348 ; jumptable 003B5908 case 52
.text:6045A9E4 ; ---------------------------------------------------------------------------
.text:6045A9E4
.text:6045A9E4 loc_6045A9E4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9E4 B loc_6045B308 ; jumptable 003B5908 case 53
.text:6045A9E8 ; ---------------------------------------------------------------------------
.text:6045A9E8
.text:6045A9E8 loc_6045A9E8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9E8 B loc_6045B3C0 ; jumptable 003B5908 case 54
.text:6045A9EC ; ---------------------------------------------------------------------------
.text:6045A9EC
.text:6045A9EC loc_6045A9EC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9EC B loc_6045B010 ; jumptable 003B5908 case 55
.text:6045A9F0 ; ---------------------------------------------------------------------------
.text:6045A9F0
.text:6045A9F0 loc_6045A9F0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9F0 B loc_6045B238 ; jumptable 003B5908 case 56
.text:6045A9F4 ; ---------------------------------------------------------------------------
.text:6045A9F4
.text:6045A9F4 loc_6045A9F4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9F4 B loc_6045B3FC ; jumptable 003B5908 case 57
.text:6045A9F8 ; ---------------------------------------------------------------------------
.text:6045A9F8
.text:6045A9F8 loc_6045A9F8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9F8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A998j
.text:6045A9F8 STR R6, [R4] ; jumptable 003B5908 case 34
.text:6045A9FC ADD R4, R4, #8
.text:6045AA00 STR R6, [R4,#-4]
.text:6045AA04
.text:6045AA04 loc_6045AA04 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AA04 ; gmThread::Sys_Execute(gmVariable *):loc_6045A99Cj
.text:6045AA04 LDR R3, [R5,#0x20] ; jumptable 003B5908 case 35
.text:6045AA08 MOV R0, R5
.text:6045AA0C ADD R1, SP, #0x80+var_54
.text:6045AA10 ADD R2, SP, #0x80+var_50
.text:6045AA14 RSB R4, R3, R4
.text:6045AA18 MOV R4, R4,ASR#3
.text:6045AA1C STR R4, [R5,#0x28]
.text:6045AA20 BL _ZN8gmThread17Sys_PopStackFrameERPKhS2_ ; gmThread::Sys_PopStackFrame(uchar const*&,uchar const*&)
.text:6045AA24 LDR R4, [R5,#0x28]
.text:6045AA28 LDR R7, [R5,#0x2C]
.text:6045AA2C LDR R3, [R5,#0x20]
.text:6045AA30 ADD R4, R3, R4,LSL#3
.text:6045AA34 ADD R7, R3, R7,LSL#3 ; _ZTV23VisVertexAnimControl_cl_ptr
.text:6045AA38 CMP R0, #0
.text:6045AA3C BNE loc_6045B4F8
.text:6045AA40 LDR R3, [R5,#0x10]
.text:6045AA44 CMP R3, #0
.text:6045AA48 BEQ loc_6045B110
.text:6045AA4C LDR R3, [R5,#0x1C]
.text:6045AA50 LDRB R2, [R3,#0x228]
.text:6045AA54 CMP R2, #0 ; _ZN18VNetworkLightGroupD2Ev_ptr
.text:6045AA58 BEQ loc_6045B110
.text:6045AA5C LDR R2, [R3,#0x10]
.text:6045AA60 CMP R2, #0
.text:6045AA64 BEQ loc_6045B110
.text:6045AA68 LDR R2, [SP,#0x80+var_54]
.text:6045AA6C MOV R0, R5
.text:6045AA70 STR R2, [R5,#0x44]
.text:6045AA74 LDR R3, [R3,#0x10]
.text:6045AA78 BLX R3
.text:6045AA7C CMP R0, #0
.text:6045AA80 BEQ loc_6045B110
.text:6045AA84
.text:6045AA84 loc_6045AA84 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+2Cj
.text:6045AA84 ; gmThread::Sys_Execute(gmVariable *)+2F4j ...
.text:6045AA84 LDR R0, [SP,#0x80+var_70]
.text:6045AA88 ADD SP, SP, #0x5C
.text:6045AA8C LDMFD SP!, {R4-R11,PC}
.text:6045AA90 ; ---------------------------------------------------------------------------
.text:6045AA90
.text:6045AA90 loc_6045AA90 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AA90 ; gmThread::Sys_Execute(gmVariable *):loc_6045A90Cj ...
.text:6045AA90 MOV R12, R3 ; jumptable 003B5908 default case
.text:6045AA94 B loc_6045A8F8
.text:6045AA98 ; ---------------------------------------------------------------------------
.text:6045AA98
.text:6045AA98 loc_6045AA98 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AA98 ; gmThread::Sys_Execute(gmVariable *):loc_6045A934j ...
.text:6045AA98 LDR R8, [R5,#0x1C] ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045AA9C LDR R3, [R4,#-8]
.text:6045AAA0 LDR R2, [R8,#0x200]
.text:6045AAA4 RSB R3, R3, R3,LSL#4
.text:6045AAA8 ADD R3, R2, R3,LSL#4
.text:6045AAAC ADD R3, R3, R0,LSL#2
.text:6045AAB0 LDR R12, [R3,#4]
.text:6045AAB4 CMP R12, #0
.text:6045AAB8 BEQ loc_6045B5D4
.text:6045AABC MOV R0, R5
.text:6045AAC0 SUB R1, R4, #8
.text:6045AAC4 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AAC8 LDR R12, [SP,#0x80+var_54]
.text:6045AACC B loc_6045A8F8
.text:6045AAD0 ; ---------------------------------------------------------------------------
.text:6045AAD0
.text:6045AAD0 loc_6045AAD0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AAD0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A994j
.text:6045AAD0 LDR R3, [R5,#0x20] ; jumptable 003B5908 case 33
.text:6045AAD4 ADD R2, SP, #0x80+var_28
.text:6045AAD8 ADD R1, R12, #8
.text:6045AADC MOV R0, R5
.text:6045AAE0 RSB R4, R3, R4
.text:6045AAE4 STR R1, [R2,#-0x2C]!
.text:6045AAE8 ADD R3, SP, #0x80+var_50
.text:6045AAEC MOV R4, R4,ASR#3
.text:6045AAF0 STR R4, [R5,#0x28]
.text:6045AAF4 LDR R1, [R12,#4]
.text:6045AAF8 BL _ZN8gmThread14PushStackFrameEiPPKhS2_ ; gmThread::PushStackFrame(int,uchar const**,uchar const**)
.text:6045AAFC LDR R2, [R5,#0x28]
.text:6045AB00 LDR R7, [R5,#0x2C]
.text:6045AB04 LDR R3, [R5,#0x20]
.text:6045AB08 ADD R4, R3, R2,LSL#3
.text:6045AB0C ADD R7, R3, R7,LSL#3
.text:6045AB10 CMP R0, #0
.text:6045AB14 BNE loc_6045B778
.text:6045AB18 LDR R3, [R5,#0x10]
.text:6045AB1C CMP R3, #0
.text:6045AB20 BEQ loc_6045B110
.text:6045AB24 LDR R3, [R5,#0x1C]
.text:6045AB28 LDRB R2, [R3,#0x228]
.text:6045AB2C CMP R2, #0
.text:6045AB30 BEQ loc_6045B110
.text:6045AB34 LDR R2, [R3,#0xC]
.text:6045AB38 CMP R2, #0
.text:6045AB3C BEQ loc_6045B110
.text:6045AB40 LDR R2, [SP,#0x80+var_54]
.text:6045AB44 MOV R0, R5
.text:6045AB48 STR R2, [R5,#0x44]
.text:6045AB4C LDR R3, [R3,#0xC]
.text:6045AB50 BLX R3
.text:6045AB54 CMP R0, #0
.text:6045AB58 BEQ loc_6045B110
.text:6045AB5C B loc_6045AA84
.text:6045AB60 ; ---------------------------------------------------------------------------
.text:6045AB60
.text:6045AB60 loc_6045AB60 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AB60 ; gmThread::Sys_Execute(gmVariable *):loc_6045A990j
.text:6045AB60 LDR R2, [R4,#-8] ; jumptable 003B5908 case 32
.text:6045AB64 CMP R2, #6
.text:6045AB68 BLE loc_6045AB98
.text:6045AB6C LDR R1, [R5,#0x1C]
.text:6045AB70 RSB R2, R2, R2,LSL#4
.text:6045AB74 LDR R1, [R1,#0x200]
.text:6045AB78 ADD R2, R1, R2,LSL#4
.text:6045AB7C LDR R12, [R2,#0x6C]
.text:6045AB80 CMP R12, #0
.text:6045AB84 BEQ loc_6045B6FC
.text:6045AB88 MOV R0, R5
.text:6045AB8C SUB R1, R4, #8
.text:6045AB90 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AB94 LDR R3, [SP,#0x80+var_54]
.text:6045AB98
.text:6045AB98 loc_6045AB98 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+300j
.text:6045AB98 ; gmThread::Sys_Execute(gmVariable *)+EA0j
.text:6045AB98 LDR R2, [R4,#-4]
.text:6045AB9C CMP R2, #0
.text:6045ABA0 BEQ loc_6045ABF8
.text:6045ABA4
.text:6045ABA4 loc_6045ABA4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+38Cj
.text:6045ABA4 LDR R3, [R3]
.text:6045ABA8 LDR R12, [SP,#0x80+var_50]
.text:6045ABAC ADD R12, R12, R3 ; _ZN26VActionTimerForceFramerate31classVActionTimerForceFramerateE_ptr
.text:6045ABB0 B loc_6045A8F8
.text:6045ABB4 ; ---------------------------------------------------------------------------
.text:6045ABB4
.text:6045ABB4 loc_6045ABB4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ABB4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A98Cj
.text:6045ABB4 LDR R2, [R4,#-8] ; jumptable 003B5908 case 31
.text:6045ABB8 CMP R2, #6
.text:6045ABBC BLE loc_6045ABEC
.text:6045ABC0 LDR R1, [R5,#0x1C]
.text:6045ABC4 RSB R2, R2, R2,LSL#4
.text:6045ABC8 LDR R1, [R1,#0x200]
.text:6045ABCC ADD R2, R1, R2,LSL#4
.text:6045ABD0 LDR R12, [R2,#0x6C]
.text:6045ABD4 CMP R12, #0
.text:6045ABD8 BEQ loc_6045B6A8
.text:6045ABDC MOV R0, R5
.text:6045ABE0 SUB R1, R4, #8
.text:6045ABE4 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045ABE8 LDR R3, [SP,#0x80+var_54]
.text:6045ABEC
.text:6045ABEC loc_6045ABEC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+354j
.text:6045ABEC ; gmThread::Sys_Execute(gmVariable *)+E48j
.text:6045ABEC LDR R2, [R4,#-4]
.text:6045ABF0 CMP R2, #0
.text:6045ABF4 BEQ loc_6045ABA4
.text:6045ABF8
.text:6045ABF8 loc_6045ABF8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+338j
.text:6045ABF8 ADD R12, R3, #4
.text:6045ABFC B loc_6045A8F8
.text:6045AC00 ; ---------------------------------------------------------------------------
.text:6045AC00
.text:6045AC00 loc_6045AC00 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AC00 ; gmThread::Sys_Execute(gmVariable *):loc_6045A988j
.text:6045AC00 LDR R2, [R4,#-8] ; jumptable 003B5908 case 30
.text:6045AC04 SUB R8, R4, #8
.text:6045AC08 CMP R2, #6
.text:6045AC0C BLE loc_6045AC3C ; _ZN26VActionTimerForceFramerate31classVActionTimerForceFramerateE_ptr
.text:6045AC10 LDR R1, [R5,#0x1C]
.text:6045AC14 RSB R2, R2, R2,LSL#4
.text:6045AC18 LDR R1, [R1,#0x200]
.text:6045AC1C ADD R2, R1, R2,LSL#4
.text:6045AC20 LDR R12, [R2,#0x6C]
.text:6045AC24 CMP R12, #0
.text:6045AC28 BEQ loc_6045B720
.text:6045AC2C MOV R0, R5
.text:6045AC30 MOV R1, R8
.text:6045AC34 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AC38 LDR R3, [SP,#0x80+var_54]
.text:6045AC3C
.text:6045AC3C loc_6045AC3C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+3A4j
.text:6045AC3C ; gmThread::Sys_Execute(gmVariable *)+EC4j
.text:6045AC3C LDR R2, [R4,#-4]
.text:6045AC40 CMP R2, #0
.text:6045AC44 BEQ loc_6045ACA4
.text:6045AC48
.text:6045AC48 loc_6045AC48 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+438j
.text:6045AC48 LDR R3, [R3] ; _ZTV23VisVertexAnimControl_cl_ptr
.text:6045AC4C MOV R4, R8
.text:6045AC50 LDR R12, [SP,#0x80+var_50]
.text:6045AC54 ADD R12, R12, R3
.text:6045AC58 B loc_6045A8F8
.text:6045AC5C ; ---------------------------------------------------------------------------
.text:6045AC5C
.text:6045AC5C loc_6045AC5C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AC5C ; gmThread::Sys_Execute(gmVariable *):loc_6045A984j
.text:6045AC5C LDR R2, [R4,#-8] ; jumptable 003B5908 case 29
.text:6045AC60 SUB R8, R4, #8
.text:6045AC64 CMP R2, #6
.text:6045AC68 BLE loc_6045AC98
.text:6045AC6C LDR R1, [R5,#0x1C]
.text:6045AC70 RSB R2, R2, R2,LSL#4
.text:6045AC74 LDR R1, [R1,#0x200]
.text:6045AC78 ADD R2, R1, R2,LSL#4
.text:6045AC7C LDR R12, [R2,#0x6C]
.text:6045AC80 CMP R12, #0
.text:6045AC84 BEQ loc_6045B70C
.text:6045AC88 MOV R0, R5
.text:6045AC8C MOV R1, R8
.text:6045AC90 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AC94 LDR R3, [SP,#0x80+var_54]
.text:6045AC98
.text:6045AC98 loc_6045AC98 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+400j
.text:6045AC98 ; gmThread::Sys_Execute(gmVariable *)+EACj
.text:6045AC98 LDR R2, [R4,#-4]
.text:6045AC9C CMP R2, #0
.text:6045ACA0 BEQ loc_6045AC48
.text:6045ACA4
.text:6045ACA4 loc_6045ACA4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+3DCj
.text:6045ACA4 ADD R12, R3, #4
.text:6045ACA8 MOV R4, R8
.text:6045ACAC B loc_6045A8F8
.text:6045ACB0 ; ---------------------------------------------------------------------------
.text:6045ACB0
.text:6045ACB0 loc_6045ACB0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ACB0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9DCj
.text:6045ACB0 LDR R3, [R12,#4] ; jumptable 003B5908 case 51
.text:6045ACB4 ADD R12, R12, #8
.text:6045ACB8 STR R12, [SP,#0x80+var_54]
.text:6045ACBC ADD R3, R7, R3,LSL#3
.text:6045ACC0 LDMIA R3, {R0,R1}
.text:6045ACC4 STMIA R4, {R0,R1}
.text:6045ACC8 ADD R4, R4, #8
.text:6045ACCC LDR R12, [SP,#0x80+var_54]
.text:6045ACD0 B loc_6045A8F8
.text:6045ACD4 ; ---------------------------------------------------------------------------
.text:6045ACD4
.text:6045ACD4 loc_6045ACD4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ACD4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9D8j
.text:6045ACD4 LDR R3, [R5,#0x2C] ; jumptable 003B5908 case 50
.text:6045ACD8 LDR R2, [R5,#0x20]
.text:6045ACDC SUB R3, R3, #0xE0000002
.text:6045ACE0 ADD R3, R2, R3,LSL#3
.text:6045ACE4 LDMIA R3, {R0,R1}
.text:6045ACE8 STMIA R4, {R0,R1}
.text:6045ACEC ADD R4, R4, #8
.text:6045ACF0 LDR R12, [SP,#0x80+var_54]
.text:6045ACF4 B loc_6045A8F8
.text:6045ACF8 ; ---------------------------------------------------------------------------
.text:6045ACF8
.text:6045ACF8 loc_6045ACF8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ACF8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9D4j
.text:6045ACF8 MOV R12, #5 ; jumptable 003B5908 case 49
.text:6045ACFC STR R12, [R4]
.text:6045AD00 LDR R12, [SP,#0x80+var_54]
.text:6045AD04 ADD R4, R4, #8
.text:6045AD08 LDR R3, [R12],#4
.text:6045AD0C STR R3, [R4,#-4]
.text:6045AD10 B loc_6045A8F8
.text:6045AD14 ; ---------------------------------------------------------------------------
.text:6045AD14
.text:6045AD14 loc_6045AD14 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD14 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9D0j
.text:6045AD14 LDR R3, [R5,#0x20] ; jumptable 003B5908 case 48
.text:6045AD18 RSB R3, R3, R4
.text:6045AD1C ADD R4, R4, #8
.text:6045AD20 MOV R3, R3,ASR#3
.text:6045AD24 STR R3, [R5,#0x28]
.text:6045AD28 MOV R3, #4
.text:6045AD2C STR R3, [R4,#-8]
.text:6045AD30 LDR R0, [R5,#0x1C]
.text:6045AD34 BL _ZN9gmMachine16AllocTableObjectEv ; gmMachine::AllocTableObject(void)
.text:6045AD38 LDR R12, [SP,#0x80+var_54]
.text:6045AD3C STR R0, [R4,#-4]
.text:6045AD40 B loc_6045A8F8
.text:6045AD44 ; ---------------------------------------------------------------------------
.text:6045AD44
.text:6045AD44 loc_6045AD44 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD44 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9CCj
.text:6045AD44 STR R11, [R4] ; jumptable 003B5908 case 47
.text:6045AD48 ADD R4, R4, #8
.text:6045AD4C LDR R12, [SP,#0x80+var_54]
.text:6045AD50 LDR R3, [R12],#4
.text:6045AD54 STR R3, [R4,#-4]
.text:6045AD58 B loc_6045A8F8
.text:6045AD5C ; ---------------------------------------------------------------------------
.text:6045AD5C
.text:6045AD5C loc_6045AD5C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD5C ; gmThread::Sys_Execute(gmVariable *):loc_6045A9C8j
.text:6045AD5C MOV R3, #2 ; jumptable 003B5908 case 46
.text:6045AD60 STR R3, [R4]
.text:6045AD64 LDR R12, [SP,#0x80+var_54]
.text:6045AD68 ADD R4, R4, #8
.text:6045AD6C LDR R3, [R12],#4
.text:6045AD70 STR R3, [R4,#-4]
.text:6045AD74 B loc_6045A8F8
.text:6045AD78 ; ---------------------------------------------------------------------------
.text:6045AD78
.text:6045AD78 loc_6045AD78 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD78 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9C4j
.text:6045AD78 MOV R3, #1 ; jumptable 003B5908 case 45
.text:6045AD7C STR R3, [R4]
.text:6045AD80 STR R3, [R4,#4]
.text:6045AD84 ADD R4, R4, #8
.text:6045AD88 LDR R12, [SP,#0x80+var_54]
.text:6045AD8C B loc_6045A8F8
.text:6045AD90 ; ---------------------------------------------------------------------------
.text:6045AD90
.text:6045AD90 loc_6045AD90 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD90 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9C0j
.text:6045AD90 MOV R3, #1 ; jumptable 003B5908 case 44
.text:6045AD94 STMIA R4, {R3,R6}
.text:6045AD98 ADD R4, R4, #8
.text:6045AD9C LDR R12, [SP,#0x80+var_54]
.text:6045ADA0 B loc_6045A8F8
.text:6045ADA4 ; ---------------------------------------------------------------------------
.text:6045ADA4
.text:6045ADA4 loc_6045ADA4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADA4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9BCj
.text:6045ADA4 MOV R3, #1 ; jumptable 003B5908 case 43
.text:6045ADA8 STR R3, [R4]
.text:6045ADAC LDR R12, [SP,#0x80+var_54]
.text:6045ADB0 ADD R4, R4, #8
.text:6045ADB4 LDR R3, [R12],#4
.text:6045ADB8 STR R3, [R4,#-4]
.text:6045ADBC B loc_6045A8F8
.text:6045ADC0 ; ---------------------------------------------------------------------------
.text:6045ADC0
.text:6045ADC0 loc_6045ADC0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADC0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9B8j
.text:6045ADC0 STR R6, [R4] ; jumptable 003B5908 case 42
.text:6045ADC4 ADD R4, R4, #8
.text:6045ADC8 STR R6, [R4,#-4]
.text:6045ADCC LDR R12, [SP,#0x80+var_54]
.text:6045ADD0 B loc_6045A8F8
.text:6045ADD4 ; ---------------------------------------------------------------------------
.text:6045ADD4
.text:6045ADD4 loc_6045ADD4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADD4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9B4j
.text:6045ADD4 SUB R2, R4, #8 ; jumptable 003B5908 case 41
.text:6045ADD8 SUB R3, R4, #0x10
.text:6045ADDC LDMIA R2, {R0,R1}
.text:6045ADE0 STMIA R4, {R0,R1}
.text:6045ADE4 LDMIA R3, {R0,R1}
.text:6045ADE8 STMIA R2, {R0,R1}
.text:6045ADEC LDMIA R4, {R0,R1}
.text:6045ADF0 STMIA R3, {R0,R1}
.text:6045ADF4 LDR R12, [SP,#0x80+var_54]
.text:6045ADF8 B loc_6045A8F8
.text:6045ADFC ; ---------------------------------------------------------------------------
.text:6045ADFC
.text:6045ADFC loc_6045ADFC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADFC ; gmThread::Sys_Execute(gmVariable *):loc_6045A9B0j
.text:6045ADFC SUB R2, R4, #0x10 ; jumptable 003B5908 case 40
.text:6045AE00 ADD R3, R4, #8
.text:6045AE04 LDMIA R2, {R0,R1}
.text:6045AE08 STMIA R4, {R0,R1}
.text:6045AE0C LDMDB R4, {R0,R1}
.text:6045AE10 ADD R4, R4, #0x10
.text:6045AE14 LDR R12, [SP,#0x80+var_54]
.text:6045AE18 STMIA R3, {R0,R1}
.text:6045AE1C B loc_6045A8F8
.text:6045AE20 ; ---------------------------------------------------------------------------
.text:6045AE20
.text:6045AE20 loc_6045AE20 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE20 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9ACj
.text:6045AE20 LDMDB R4, {R0,R1} ; jumptable 003B5908 case 39
.text:6045AE24 STMIA R4, {R0,R1}
.text:6045AE28 ADD R4, R4, #8
.text:6045AE2C LDR R12, [SP,#0x80+var_54]
.text:6045AE30 B loc_6045A8F8
.text:6045AE34 ; ---------------------------------------------------------------------------
.text:6045AE34
.text:6045AE34 loc_6045AE34 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE34 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9A8j
.text:6045AE34 SUB R4, R4, #0x10 ; jumptable 003B5908 case 38
.text:6045AE38 MOV R12, R3
.text:6045AE3C B loc_6045A8F8
.text:6045AE40 ; ---------------------------------------------------------------------------
.text:6045AE40
.text:6045AE40 loc_6045AE40 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE40 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9A4j
.text:6045AE40 SUB R4, R4, #8 ; jumptable 003B5908 case 37
.text:6045AE44 MOV R12, R3
.text:6045AE48 B loc_6045A8F8
.text:6045AE4C ; ---------------------------------------------------------------------------
.text:6045AE4C
.text:6045AE4C loc_6045AE4C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE4C ; gmThread::Sys_Execute(gmVariable *):loc_6045A9A0j
.text:6045AE4C ADD R3, R12, #8 ; jumptable 003B5908 case 36
.text:6045AE50 STR R3, [SP,#0x80+var_54]
.text:6045AE54 LDR R3, [R4,#-0x10]
.text:6045AE58 LDR R2, [R12,#4]
.text:6045AE5C CMP R3, #4
.text:6045AE60 MOV R10, R2,LSR#16
.text:6045AE64 UXTH R2, R2
.text:6045AE68 STR R2, [SP,#0x80+var_74]
.text:6045AE6C BEQ loc_6045B50C
.text:6045AE70 LDR R0, [R5,#0x1C]
.text:6045AE74 RSB R3, R3, R3,LSL#4
.text:6045AE78 LDR R2, [R0,#0x200]
.text:6045AE7C ADD R3, R2, R3,LSL#4
.text:6045AE80 LDR R12, [R3,#0xEC]
.text:6045AE84 CMP R12, #0
.text:6045AE88 BEQ loc_6045B7DC
.text:6045AE8C LDR R3, [R4,#-4]
.text:6045AE90 ADD R2, SP, #0x80+var_28
.text:6045AE94 ADD R9, SP, #0x80+var_40
.text:6045AE98 ADD R8, SP, #0x80+var_48
.text:6045AE9C MOV R0, R5
.text:6045AEA0 STR R3, [R2,#-0x24]!
.text:6045AEA4 MOV R3, R9
.text:6045AEA8 LDR R1, [R4,#-0xC]
.text:6045AEAC STR R8, [SP,#0x80+var_80]
.text:6045AEB0 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AEB4 LDR R3, [SP,#0x80+var_4C]
.text:6045AEB8 CMN R3, #1
.text:6045AEBC BEQ loc_6045B66C
.text:6045AEC0 LDMIA R9, {R0,R1}
.text:6045AEC4 ADD R10, R7, R10,LSL#3
.text:6045AEC8 LDR R12, [SP,#0x80+var_74]
.text:6045AECC MOV R3, #1
.text:6045AED0 STMIA R10, {R0,R1}
.text:6045AED4 LDMIA R8, {R0,R1}
.text:6045AED8 ADD R2, R7, R12,LSL#3
.text:6045AEDC STMIA R2, {R0,R1}
.text:6045AEE0 STR R3, [R4]
.text:6045AEE4 STR R3, [R4,#4]
.text:6045AEE8
.text:6045AEE8 loc_6045AEE8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+E10j
.text:6045AEE8 LDR R3, [SP,#0x80+var_4C]
.text:6045AEEC ADD R4, R4, #8
.text:6045AEF0 STR R3, [R4,#-0xC]
.text:6045AEF4 LDR R12, [SP,#0x80+var_54]
.text:6045AEF8 B loc_6045A8F8
.text:6045AEFC ; ---------------------------------------------------------------------------
.text:6045AEFC
.text:6045AEFC loc_6045AEFC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AEFC ; gmThread::Sys_Execute(gmVariable *):loc_6045A910j
.text:6045AEFC LDR R10, [R12,#4] ; jumptable 003B5908 case 0
.text:6045AF00 ADD R12, R12, #8
.text:6045AF04 STR R12, [SP,#0x80+var_54]
.text:6045AF08 LDR R8, [R4,#-8]
.text:6045AF0C STR R10, [R4,#4]
.text:6045AF10 STR R11, [R4]
.text:6045AF14 LDR R0, [R5,#0x1C]
.text:6045AF18 RSB R9, R8, R8,LSL#4
.text:6045AF1C MOV R9, R9,LSL#4
.text:6045AF20 LDR R3, [R0,#0x200]
.text:6045AF24 ADD R3, R3, R9
.text:6045AF28 LDR R3, [R3,#4]
.text:6045AF2C CMP R3, #0
.text:6045AF30 BEQ loc_6045AF50
.text:6045AF34 MOV R0, R5
.text:6045AF38 SUB R1, R4, #8
.text:6045AF3C BLX R3
.text:6045AF40 LDR R3, [R4,#-8]
.text:6045AF44 CMP R3, #0
.text:6045AF48 BNE loc_6045B110
.text:6045AF4C LDR R0, [R5,#0x1C]
.text:6045AF50
.text:6045AF50 loc_6045AF50 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+6C8j
.text:6045AF50 CMP R8, #0
.text:6045AF54 BEQ loc_6045B7F0
.text:6045AF58 STR R11, [SP,#0x80+var_40]
.text:6045AF5C ADD R8, SP, #0x80+var_38
.text:6045AF60 STR R10, [SP,#0x80+var_3C]
.text:6045AF64 ADD R2, SP, #0x80+var_40
.text:6045AF68 LDR R3, [R0,#0x200]
.text:6045AF6C MOV R0, R8
.text:6045AF70 ADD R9, R3, R9
.text:6045AF74 LDR R1, [R9,#0xDC]
.text:6045AF78 BL _ZNK13gmTableObject3GetERK10gmVariable ; gmTableObject::Get(gmVariable const&)
.text:6045AF7C LDMIA R8, {R0,R1}
.text:6045AF80 STMDB R4, {R0,R1}
.text:6045AF84 LDR R12, [SP,#0x80+var_54]
.text:6045AF88 B loc_6045A8F8
.text:6045AF8C ; ---------------------------------------------------------------------------
.text:6045AF8C
.text:6045AF8C loc_6045AF8C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AF8C ; gmThread::Sys_Execute(gmVariable *):loc_6045A920j ...
.text:6045AF8C LDR R2, [R4,#-0x10] ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045AF90 LDR R3, [R4,#-8]
.text:6045AF94 LDR R8, [R5,#0x1C]
.text:6045AF98 CMP R3, R2
.text:6045AF9C MOVLT R3, R2
.text:6045AFA0 LDR R2, [R8,#0x200]
.text:6045AFA4 RSB R3, R3, R3,LSL#4
.text:6045AFA8 ADD R3, R2, R3,LSL#4 ; _ZTV26VActionTimerForceFramerate_ptr
.text:6045AFAC ADD R3, R3, R0,LSL#2
.text:6045AFB0 LDR R12, [R3,#4]
.text:6045AFB4 CMP R12, #0
.text:6045AFB8 BEQ loc_6045B61C
.text:6045AFBC
.text:6045AFBC loc_6045AFBC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+8CCj
.text:6045AFBC SUB R8, R4, #8
.text:6045AFC0 SUB R1, R4, #0x10
.text:6045AFC4 MOV R0, R5
.text:6045AFC8 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AFCC MOV R4, R8
.text:6045AFD0 LDR R12, [SP,#0x80+var_54]
.text:6045AFD4 B loc_6045A8F8
.text:6045AFD8 ; ---------------------------------------------------------------------------
.text:6045AFD8
.text:6045AFD8 loc_6045AFD8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AFD8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A91Cj
.text:6045AFD8 LDR R0, [R5,#0x1C] ; jumptable 003B5908 case 3
.text:6045AFDC LDR R3, [R4,#-0x18]
.text:6045AFE0 LDR R2, [R0,#0x200]
.text:6045AFE4 RSB R3, R3, R3,LSL#4
.text:6045AFE8 ADD R3, R2, R3,LSL#4
.text:6045AFEC LDR R12, [R3,#0x10]
.text:6045AFF0 CMP R12, #0
.text:6045AFF4 BEQ loc_6045B568
.text:6045AFF8 SUB R4, R4, #0x18
.text:6045AFFC MOV R0, R5
.text:6045B000 MOV R1, R4
.text:6045B004 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045B008 LDR R12, [SP,#0x80+var_54]
.text:6045B00C B loc_6045A8F8
.text:6045B010 ; ---------------------------------------------------------------------------
.text:6045B010
.text:6045B010 loc_6045B010 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B010 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9ECj
.text:6045B010 LDR R9, [R5,#0x2C] ; jumptable 003B5908 case 55
.text:6045B014 ADD R3, R12, #8
.text:6045B018 LDR R8, [R5,#0x20]
.text:6045B01C SUB R9, R9, #0xE0000002
.text:6045B020 STR R3, [SP,#0x80+var_54]
.text:6045B024 LDR R2, [R12,#4]
.text:6045B028 ADD R3, R8, R9,LSL#3
.text:6045B02C LDMIA R3, {R0,R1}
.text:6045B030 STR R2, [R4,#0xC]
.text:6045B034 STR R11, [R4,#8]
.text:6045B038 STMIA R4, {R0,R1}
.text:6045B03C LDR R0, [R5,#0x1C]
.text:6045B040 LDR R3, [R8,R9,LSL#3]
.text:6045B044 LDR R2, [R0,#0x200]
.text:6045B048 RSB R1, R3, R3,LSL#4
.text:6045B04C ADD R2, R2, R1,LSL#4
.text:6045B050 LDR R2, [R2,#4]
.text:6045B054 CMP R2, #0
.text:6045B058 BEQ loc_6045B07C
.text:6045B05C MOV R0, R5 ; _ZTV19VisBitmapManager_cl_ptr
.text:6045B060 MOV R1, R4
.text:6045B064 BLX R2
.text:6045B068 LDR R3, [R4]
.text:6045B06C CMP R3, #0
.text:6045B070 BNE loc_6045B55C
.text:6045B074 LDR R3, [R8,R9,LSL#3]
.text:6045B078 LDR R0, [R5,#0x1C]
.text:6045B07C
.text:6045B07C loc_6045B07C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+7F0j
.text:6045B07C CMP R3, #0
.text:6045B080 BEQ loc_6045B804
.text:6045B084 LDR R2, [R0,#0x200]
.text:6045B088 RSB R3, R3, R3,LSL#4
.text:6045B08C ADD R8, R4, #8
.text:6045B090 ADD R0, SP, #0x80+var_30
.text:6045B094 ADD R3, R2, R3,LSL#4
.text:6045B098 MOV R2, R8
.text:6045B09C LDR R1, [R3,#0xDC]
.text:6045B0A0 BL _ZNK13gmTableObject3GetERK10gmVariable ; gmTableObject::Get(gmVariable const&)
.text:6045B0A4 LDR R12, [SP,#0x80+var_6C]
.text:6045B0A8 LDMIA R12, {R0,R1}
.text:6045B0AC STMIA R4, {R0,R1}
.text:6045B0B0 MOV R4, R8
.text:6045B0B4 LDR R12, [SP,#0x80+var_54]
.text:6045B0B8 B loc_6045A8F8
.text:6045B0BC ; ---------------------------------------------------------------------------
.text:6045B0BC
.text:6045B0BC loc_6045B0BC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B0BC ; gmThread::Sys_Execute(gmVariable *):loc_6045A980j
.text:6045B0BC LDR R3, [R12,#4] ; jumptable 003B5908 case 28
.text:6045B0C0 LDR R12, [SP,#0x80+var_50]
.text:6045B0C4 ADD R12, R12, R3 ; _GLOBAL_OFFSET_TABLE_
.text:6045B0C8 B loc_6045A8F8
.text:6045B0CC ; ---------------------------------------------------------------------------
.text:6045B0CC
.text:6045B0CC loc_6045B0CC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B0CC ; gmThread::Sys_Execute(gmVariable *):loc_6045A97Cj
.text:6045B0CC LDR R2, [R5,#0x1C] ; jumptable 003B5908 case 27
.text:6045B0D0 LDRB R1, [R2,#0x228]
.text:6045B0D4 CMP R1, #0
.text:6045B0D8 BEQ loc_6045AA90 ; jumptable 003B5908 default case
.text:6045B0DC LDR R1, [R2,#8]
.text:6045B0E0 CMP R1, #0
.text:6045B0E4 BEQ loc_6045AA90 ; jumptable 003B5908 default case
.text:6045B0E8 LDR R1, [R5,#0x20]
.text:6045B0EC MOV R0, R5
.text:6045B0F0 STR R3, [R5,#0x44]
.text:6045B0F4 RSB R3, R1, R4
.text:6045B0F8 MOV R3, R3,ASR#3
.text:6045B0FC STR R3, [R5,#0x28]
.text:6045B100 LDR R3, [R2,#8]
.text:6045B104 BLX R3
.text:6045B108 CMP R0, #0
.text:6045B10C BNE loc_6045AA84
.text:6045B110
.text:6045B110 loc_6045B110 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+1E0j
.text:6045B110 ; gmThread::Sys_Execute(gmVariable *)+1F0j ...
.text:6045B110 LDR R12, [SP,#0x80+var_54]
.text:6045B114 B loc_6045A8F8
.text:6045B118 ; ---------------------------------------------------------------------------
.text:6045B118
.text:6045B118 loc_6045B118 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B118 ; gmThread::Sys_Execute(gmVariable *):loc_6045A918j
.text:6045B118 LDR R8, [R5,#0x1C] ; jumptable 003B5908 case 2
.text:6045B11C LDR R3, [R4,#-0x10]
.text:6045B120 LDR R2, [R8,#0x200]
.text:6045B124 RSB R3, R3, R3,LSL#4
.text:6045B128 ADD R3, R2, R3,LSL#4
.text:6045B12C LDR R12, [R3,#0xC]
.text:6045B130 CMP R12, #0
.text:6045B134 BNE loc_6045AFBC
.text:6045B138 LDR LR, [R3,#0x78]
.text:6045B13C CMP LR, #0
.text:6045B140 BEQ loc_6045B888
.text:6045B144
.text:6045B144 loc_6045B144 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+DBCj
.text:6045B144 SUB R3, R4, #0x10
.text:6045B148 ADD R7, R4, #8
.text:6045B14C ADD R8, R4, #0x10
.text:6045B150 ADD R2, SP, #0x80+var_54
.text:6045B154 LDMIA R3, {R0,R1}
.text:6045B158 ADD R3, SP, #0x80+var_50
.text:6045B15C STMIA R4, {R0,R1}
.text:6045B160 LDMDB R4, {R0,R1}
.text:6045B164 STMIA R7, {R0,R1}
.text:6045B168 MOV R0, R5
.text:6045B16C STR R12, [R4,#-0x10]
.text:6045B170 MOV R1, #2
.text:6045B174 STR R12, [R4,#-0xC]
.text:6045B178 MOV R12, #5
.text:6045B17C STMDB R4, {R12,LR}
.text:6045B180 LDR R12, [R5,#0x20]
.text:6045B184 RSB R12, R12, R8
.text:6045B188
.text:6045B188 loc_6045B188 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+DB0j
.text:6045B188 ; gmThread::Sys_Execute(gmVariable *)+E90j
.text:6045B188 MOV R12, R12,ASR#3
.text:6045B18C
.text:6045B18C loc_6045B18C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+D68j
.text:6045B18C STR R12, [R5,#0x28]
.text:6045B190 BL _ZN8gmThread14PushStackFrameEiPPKhS2_ ; gmThread::PushStackFrame(int,uchar const**,uchar const**)
.text:6045B194 LDR R4, [R5,#0x28]
.text:6045B198 LDR R7, [R5,#0x2C]
.text:6045B19C LDR R3, [R5,#0x20]
.text:6045B1A0 ADD R4, R3, R4,LSL#3
.text:6045B1A4 ADD R7, R3, R7,LSL#3
.text:6045B1A8 CMP R0, #0
.text:6045B1AC BEQ loc_6045B110
.text:6045B1B0 CMP R0, #6
.text:6045B1B4 MOV R3, R0
.text:6045B1B8 BEQ loc_6045AA84
.text:6045B1BC CMP R0, #7
.text:6045B1C0 BEQ loc_6045B2A0
.text:6045B1C4 CMP R0, #3
.text:6045B1C8 STRNE R0, [SP,#0x80+var_70]
.text:6045B1CC BNE loc_6045AA84
.text:6045B1D0 LDR R0, [R5,#0x1C]
.text:6045B1D4 MOV R1, R5
.text:6045B1D8 MOV R2, R3
.text:6045B1DC STR R3, [SP,#0x80+var_70]
.text:6045B1E0 BL _ZN9gmMachine15Sys_SwitchStateEP8gmThreadi ; gmMachine::Sys_SwitchState(gmThread *,int)
.text:6045B1E4 B loc_6045AA84
.text:6045B1E8 ; ---------------------------------------------------------------------------
.text:6045B1E8
.text:6045B1E8 loc_6045B1E8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B1E8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A914j
.text:6045B1E8 LDR R3, [R12,#4] ; jumptable 003B5908 case 1
.text:6045B1EC ADD R12, R12, #8
.text:6045B1F0 STR R12, [SP,#0x80+var_54]
.text:6045B1F4 SUB R8, R4, #0x10
.text:6045B1F8 STR R11, [R4]
.text:6045B1FC STR R3, [R4,#4]
.text:6045B200 LDR R3, [R4,#-0x10]
.text:6045B204 LDR R0, [R5,#0x1C]
.text:6045B208 RSB R3, R3, R3,LSL#4
.text:6045B20C LDR R2, [R0,#0x200]
.text:6045B210 ADD R3, R2, R3,LSL#4
.text:6045B214 LDR R3, [R3,#8]
.text:6045B218 CMP R3, #0
.text:6045B21C BEQ loc_6045B7B0
.text:6045B220
.text:6045B220 loc_6045B220 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A24j
.text:6045B220 MOV R0, R5
.text:6045B224 MOV R1, R8
.text:6045B228 BLX R3
.text:6045B22C MOV R4, R8
.text:6045B230 LDR R12, [SP,#0x80+var_54]
.text:6045B234 B loc_6045A8F8
.text:6045B238 ; ---------------------------------------------------------------------------
.text:6045B238
.text:6045B238 loc_6045B238 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B238 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9F0j
.text:6045B238 LDR R2, [R5,#0x2C] ; jumptable 003B5908 case 56
.text:6045B23C SUB R8, R4, #8
.text:6045B240 LDR R3, [R5,#0x20]
.text:6045B244 ADD R1, R12, #8
.text:6045B248 SUB R2, R2, #0xE0000002
.text:6045B24C STR R1, [SP,#0x80+var_54]
.text:6045B250 LDMIA R8, {R0,R1}
.text:6045B254 ADD LR, R3, R2,LSL#3
.text:6045B258 LDR R12, [R12,#4]
.text:6045B25C STMIA R4, {R0,R1}
.text:6045B260 LDMIA LR, {R0,R1}
.text:6045B264 STMIA R8, {R0,R1}
.text:6045B268 STR R12, [R4,#0xC]
.text:6045B26C STR R11, [R4,#8]
.text:6045B270 LDR R3, [R3,R2,LSL#3]
.text:6045B274 LDR R0, [R5,#0x1C]
.text:6045B278 RSB R3, R3, R3,LSL#4
.text:6045B27C LDR R2, [R0,#0x200]
.text:6045B280 ADD R3, R2, R3,LSL#4
.text:6045B284 LDR R3, [R3,#8]
.text:6045B288 CMP R3, #0
.text:6045B28C BNE loc_6045B220
.text:6045B290 LDR R1, =(aSetthisFailed_ - 0x6045B2A0)
.text:6045B294 ADD R0, R0, #0x238
.text:6045B298 ADD R1, PC, R1 ; "setthis failed."
.text:6045B29C BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B2A0
.text:6045B2A0 loc_6045B2A0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+958j
.text:6045B2A0 ; gmThread::Sys_Execute(gmVariable *)+CA0j ...
.text:6045B2A0 LDR R3, [SP,#0x80+var_54]
.text:6045B2A4 MOV R0, R5
.text:6045B2A8 STR R3, [R5,#0x44]
.text:6045B2AC BL _ZN8gmThread11LogLineFileEv ; gmThread::LogLineFile(void)
.text:6045B2B0 MOV R0, R5
.text:6045B2B4 BL _ZN8gmThread12LogCallStackEv ; gmThread::LogCallStack(void)
.text:6045B2B8 LDR R3, =(_ZN9gmMachine17s_machineCallbackE_ptr - 0x60A00914)
.text:6045B2BC LDR R12, [SP,#0x80+var_68]
.text:6045B2C0 LDR R0, [R5,#0x1C]
.text:6045B2C4 LDR R3, [R12,R3] ; _ZN9gmMachine17s_machineCallbackE_ptr ; gmMachine::s_machineCallback
.text:6045B2C8 LDR R3, [R3]
.text:6045B2CC CMP R3, #0
.text:6045B2D0 BEQ loc_6045B2EC
.text:6045B2D4 MOV R1, #1
.text:6045B2D8 MOV R2, R5
.text:6045B2DC BLX R3
.text:6045B2E0 CMP R0, #0
.text:6045B2E4 LDR R0, [R5,#0x1C]
.text:6045B2E8 BNE loc_6045B730
.text:6045B2EC
.text:6045B2EC loc_6045B2EC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A68j
.text:6045B2EC ; gmThread::Sys_Execute(gmVariable *)+ED0j ...
.text:6045B2EC MOV R2, #3
.text:6045B2F0 MOV R1, R5
.text:6045B2F4 STR R2, [SP,#0x80+var_70]
.text:6045B2F8 BL _ZN9gmMachine15Sys_SwitchStateEP8gmThreadi ; gmMachine::Sys_SwitchState(gmThread *,int)
.text:6045B2FC LDR R0, [SP,#0x80+var_70]
.text:6045B300 ADD SP, SP, #0x5C
.text:6045B304 LDMFD SP!, {R4-R11,PC}
.text:6045B308 ; ---------------------------------------------------------------------------
.text:6045B308
.text:6045B308 loc_6045B308 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B308 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9E4j
.text:6045B308 STR R11, [R4] ; jumptable 003B5908 case 53
.text:6045B30C ADD R0, SP, #0x80+var_60
.text:6045B310 LDR R3, [SP,#0x80+var_54]
.text:6045B314 MOV R2, R4
.text:6045B318 LDR R1, [R3],#4
.text:6045B31C STR R1, [R4,#4]
.text:6045B320 LDR R1, [R5,#0x1C]
.text:6045B324 STR R3, [SP,#0x80+var_54]
.text:6045B328 LDR R1, [R1,#0x74]
.text:6045B32C BL _ZNK13gmTableObject3GetERK10gmVariable ; gmTableObject::Get(gmVariable const&)
.text:6045B330 LDR R12, [SP,#0x80+var_78]
.text:6045B334 LDMIA R12, {R0,R1}
.text:6045B338 STMIA R4, {R0,R1}
.text:6045B33C ADD R4, R4, #8
.text:6045B340 LDR R12, [SP,#0x80+var_54]
.text:6045B344 B loc_6045A8F8
.text:6045B348 ; ---------------------------------------------------------------------------
.text:6045B348
.text:6045B348 loc_6045B348 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B348 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9E0j
.text:6045B348 LDR R3, [R5,#0x1C] ; jumptable 003B5908 case 52
.text:6045B34C ADD R2, R12, #8
.text:6045B350 LDR R8, [R12,#4]
.text:6045B354 STR R2, [SP,#0x80+var_54]
.text:6045B358 LDR R0, [R3,#0x18]
.text:6045B35C LDRB R3, [R0,#0x70]
.text:6045B360 CMP R3, #0
.text:6045B364 ADDNE R8, R7, R8,LSL#3
.text:6045B368 BNE loc_6045B3AC
.text:6045B36C LDR R3, [R7,R8,LSL#3]
.text:6045B370 ADD R8, R7, R8,LSL#3
.text:6045B374 CMP R3, #2
.text:6045B378 BLE loc_6045B3AC
.text:6045B37C LDR R1, [R8,#4]
.text:6045B380 CMP R1, #0
.text:6045B384 BEQ loc_6045B3AC
.text:6045B388 LDRB R3, [R1,#0xD]
.text:6045B38C CMP R3, #0
.text:6045B390 BNE loc_6045B3AC
.text:6045B394 LDRB R3, [R1,#0xC]
.text:6045B398 LDR R2, [R0,#0x60]
.text:6045B39C CMP R2, R3
.text:6045B3A0 BEQ loc_6045B3AC
.text:6045B3A4 ADD R0, R0, #4
.text:6045B3A8 BL _ZN12gmGCColorSet14GrayThisObjectEP11gmGCObjBase ; gmGCColorSet::GrayThisObject(gmGCObjBase *)
.text:6045B3AC
.text:6045B3AC loc_6045B3AC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+B00j
.text:6045B3AC ; gmThread::Sys_Execute(gmVariable *)+B10j ...
.text:6045B3AC SUB R4, R4, #8
.text:6045B3B0 LDMIA R4, {R0,R1}
.text:6045B3B4 STMIA R8, {R0,R1}
.text:6045B3B8 LDR R12, [SP,#0x80+var_54]
.text:6045B3BC B loc_6045A8F8
.text:6045B3C0 ; ---------------------------------------------------------------------------
.text:6045B3C0
.text:6045B3C0 loc_6045B3C0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B3C0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9E8j
.text:6045B3C0 STR R11, [R4] ; jumptable 003B5908 case 54
.text:6045B3C4 SUB R1, R4, #8
.text:6045B3C8 LDR R0, [SP,#0x80+var_54]
.text:6045B3CC MOV R2, R4
.text:6045B3D0 MOV R3, R1
.text:6045B3D4 LDR R12, [R0],#4
.text:6045B3D8 STR R12, [R4,#4]
.text:6045B3DC MOV R4, R1
.text:6045B3E0 LDR R1, [R5,#0x1C]
.text:6045B3E4 STR R0, [SP,#0x80+var_54]
.text:6045B3E8 LDR R0, [R1,#0x74]
.text:6045B3EC STR R6, [SP,#0x80+var_80]
.text:6045B3F0 BL _ZN13gmTableObject3SetEP9gmMachineRK10gmVariableS4_b ; gmTableObject::Set(gmMachine *,gmVariable const&,gmVariable const&,bool)
.text:6045B3F4 LDR R12, [SP,#0x80+var_54]
.text:6045B3F8 B loc_6045A8F8
.text:6045B3FC ; ---------------------------------------------------------------------------
.text:6045B3FC
.text:6045B3FC loc_6045B3FC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B3FC ; gmThread::Sys_Execute(gmVariable *):loc_6045A9F4j
.text:6045B3FC ADD R1, SP, #0x80+var_40 ; jumptable 003B5908 case 57
.text:6045B400 LDR R0, [R5,#0x1C]
.text:6045B404 BL _ZN9gmMachine12CreateThreadEPi ; gmMachine::CreateThread(int *)
.text:6045B408 LDR R3, [R5,#0x2C]
.text:6045B40C LDR R1, [R5,#0x24]
.text:6045B410 RSB R1, R3, R1
.text:6045B414 SUB R1, R1, #4
.text:6045B418 MOV R8, R0
.text:6045B41C BL _ZN8gmThread5TouchEi ; gmThread::Touch(int)
.text:6045B420 LDR R3, [R5,#0x2C]
.text:6045B424 LDR R2, [R5,#0x28]
.text:6045B428 SUB R12, R3, #0xE0000002
.text:6045B42C LDR R1, [R5,#0x20]
.text:6045B430 RSB R3, R3, R2
.text:6045B434 LDR R0, [R8,#0x20] ; dest
.text:6045B438 ADD R2, R3, #2
.text:6045B43C ADD R1, R1, R12,LSL#3 ; src
.text:6045B440 MOV R2, R2,LSL#3 ; n
.text:6045B444 BL memcpy
.text:6045B448 LDR R2, [R5,#0x28]
.text:6045B44C LDR R3, [R5,#0x2C]
.text:6045B450 RSB R3, R3, R2
.text:6045B454 ADD R3, R3, #2
.text:6045B458 STR R3, [R8,#0x28]
.text:6045B45C LDR R3, [R5,#0x1C]
.text:6045B460 LDR R0, [R3,#0xDC]
.text:6045B464 CMP R0, #0
.text:6045B468 BEQ loc_6045B75C
.text:6045B46C LDR R2, [R0]
.text:6045B470 STR R2, [R3,#0xDC]
.text:6045B474
.text:6045B474 loc_6045B474 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+EFCj
.text:6045B474 STR R0, [R8,#0x30]
.text:6045B478 MOV R3, #1
.text:6045B47C STR R6, [R0]
.text:6045B480 MOV R12, #2
.text:6045B484 LDR R2, [R8,#0x30]
.text:6045B488 ADD R4, R4, #8
.text:6045B48C LDR R0, [SP,#0x80+var_54]
.text:6045B490 STR R6, [R2,#4]
.text:6045B494 ADD R0, R0, #4
.text:6045B498 LDR R2, [R8,#0x30]
.text:6045B49C STR R6, [R2,#8]
.text:6045B4A0 LDR R1, [R8,#0x28]
.text:6045B4A4 LDR R2, [R8,#0x20]
.text:6045B4A8 STR R0, [R8,#0x44]
.text:6045B4AC STR R12, [R8,#0x2C]
.text:6045B4B0 LDR R12, [R5,#0x48]
.text:6045B4B4 STR R3, [R2,R1,LSL#3]
.text:6045B4B8 LDR R2, [R8,#0x28]
.text:6045B4BC LDR LR, [R8,#0x20]
.text:6045B4C0 LDR R0, [SP,#0x80+var_54]
.text:6045B4C4 ADD R1, R2, R3
.text:6045B4C8 ADD R2, LR, R2,LSL#3
.text:6045B4CC STR R1, [R8,#0x28]
.text:6045B4D0 LDR R1, [SP,#0x80+var_50]
.text:6045B4D4 STR R12, [R2,#4]
.text:6045B4D8 LDR R2, [R0]
.text:6045B4DC ADD R2, R1, R2
.text:6045B4E0 STR R2, [SP,#0x80+var_54]
.text:6045B4E4 STR R3, [R4,#-8]
.text:6045B4E8 LDR R3, [R8,#0x48]
.text:6045B4EC LDR R12, [SP,#0x80+var_54]
.text:6045B4F0 STR R3, [R4,#-4]
.text:6045B4F4 B loc_6045A8F8
.text:6045B4F8 ; ---------------------------------------------------------------------------
.text:6045B4F8
.text:6045B4F8 loc_6045B4F8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+1D4j
.text:6045B4F8 CMP R0, #3
.text:6045B4FC BEQ loc_6045B7C4
.text:6045B500 CMP R0, #7
.text:6045B504 BNE loc_6045B110
.text:6045B508 B loc_6045B2A0
.text:6045B50C ; ---------------------------------------------------------------------------
.text:6045B50C
.text:6045B50C loc_6045B50C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+604j
.text:6045B50C LDR R3, [R4,#-4]
.text:6045B510 ADD R1, SP, #0x80+var_28
.text:6045B514 STR R3, [R1,#-0x18]!
.text:6045B518 LDR R0, [R4,#-0xC]
.text:6045B51C BL _ZNK13gmTableObject7GetNextERi ; gmTableObject::GetNext(int &)
.text:6045B520 LDR R3, [SP,#0x80+var_40]
.text:6045B524 STR R3, [R4,#-4]
.text:6045B528 SUBS R3, R0, #0
.text:6045B52C BEQ loc_6045B768
.text:6045B530 LDMIB R3, {R0,R1}
.text:6045B534 ADD R10, R7, R10,LSL#3
.text:6045B538 LDR R2, [SP,#0x80+var_74]
.text:6045B53C ADD R3, R3, #0xC
.text:6045B540 STMIA R10, {R0,R1}
.text:6045B544 LDMIA R3, {R0,R1}
.text:6045B548 ADD R12, R7, R2,LSL#3
.text:6045B54C MOV R2, #1
.text:6045B550 STMIA R12, {R0,R1}
.text:6045B554 STR R2, [R4]
.text:6045B558 STR R2, [R4,#4]
.text:6045B55C
.text:6045B55C loc_6045B55C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+808j
.text:6045B55C ; gmThread::Sys_Execute(gmVariable *)+F0Cj
.text:6045B55C ADD R4, R4, #8
.text:6045B560 LDR R12, [SP,#0x80+var_54]
.text:6045B564 B loc_6045A8F8
.text:6045B568 ; ---------------------------------------------------------------------------
.text:6045B568
.text:6045B568 loc_6045B568 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+78Cj
.text:6045B568 LDR R7, [R3,#0x7C]
.text:6045B56C CMP R7, #0
.text:6045B570 BEQ loc_6045B848
.text:6045B574 SUB LR, R4, #8
.text:6045B578 ADD R8, R4, #8
.text:6045B57C SUB R2, R4, #0x10
.text:6045B580 SUB R3, R4, #0x18
.text:6045B584 LDMIA LR, {R0,R1}
.text:6045B588 STMIA R8, {R0,R1}
.text:6045B58C ADD R8, R4, #0x10
.text:6045B590 LDMIA R2, {R0,R1}
.text:6045B594 ADD R2, SP, #0x80+var_54
.text:6045B598 STMIA R4, {R0,R1}
.text:6045B59C LDMIA R3, {R0,R1}
.text:6045B5A0 ADD R3, SP, #0x80+var_50
.text:6045B5A4 STMIA LR, {R0,R1}
.text:6045B5A8 MOV R1, #3
.text:6045B5AC STR R12, [R4,#-0x18]
.text:6045B5B0 MOV R0, R5
.text:6045B5B4 STR R12, [R4,#-0x14]
.text:6045B5B8 MOV R12, #5
.text:6045B5BC STR R7, [R4,#-0xC]
.text:6045B5C0 STR R12, [R4,#-0x10]
.text:6045B5C4 LDR R12, [R5,#0x20]
.text:6045B5C8 RSB R12, R12, R8
.text:6045B5CC MOV R12, R12,ASR R1
.text:6045B5D0 B loc_6045B18C
.text:6045B5D4 ; ---------------------------------------------------------------------------
.text:6045B5D4
.text:6045B5D4 loc_6045B5D4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+250j
.text:6045B5D4 LDR LR, [R3,#0x70]
.text:6045B5D8 CMP LR, #0
.text:6045B5DC BEQ loc_6045B818
.text:6045B5E0 LDMDB R4, {R0,R1}
.text:6045B5E4 ADD R3, R4, #8
.text:6045B5E8 ADD R7, R4, #0x10
.text:6045B5EC ADD R2, SP, #0x80+var_54
.text:6045B5F0 STMIA R3, {R0,R1}
.text:6045B5F4 ADD R3, SP, #0x80+var_50
.text:6045B5F8 STR R12, [R4,#-8]
.text:6045B5FC MOV R0, R5
.text:6045B600 STR R12, [R4,#-4]
.text:6045B604 MOV R12, #5
.text:6045B608 STMIA R4, {R12,LR}
.text:6045B60C MOV R1, #1
.text:6045B610 LDR R12, [R5,#0x20]
.text:6045B614 RSB R12, R12, R7
.text:6045B618 B loc_6045B188
.text:6045B61C ; ---------------------------------------------------------------------------
.text:6045B61C
.text:6045B61C loc_6045B61C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+750j
.text:6045B61C LDR LR, [R3,#0x70]
.text:6045B620 CMP LR, #0
.text:6045B624 BNE loc_6045B144
.text:6045B628 BL _Z17gmGetOperatorName10gmOperator ; gmGetOperatorName(gmOperator)
.text:6045B62C LDR R1, [R4,#-0x10]
.text:6045B630 MOV R7, R0
.text:6045B634 LDR R0, [R5,#0x1C]
.text:6045B638 BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B63C LDR R1, [R4,#-8]
.text:6045B640 MOV R6, R0
.text:6045B644 LDR R0, [R5,#0x1C]
.text:6045B648 BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B64C LDR R1, =(aOperatorSUndef - 0x6045B660)
.text:6045B650 MOV R2, R7
.text:6045B654 MOV R3, R6
.text:6045B658 ADD R1, PC, R1 ; "operator %s undefined for type %s and %"...
.text:6045B65C STR R0, [SP,#0x80+var_80]
.text:6045B660 ADD R0, R8, #0x238
.text:6045B664 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B668 B loc_6045B2A0
.text:6045B66C ; ---------------------------------------------------------------------------
.text:6045B66C
.text:6045B66C loc_6045B66C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+654j
.text:6045B66C MOV R3, #1
.text:6045B670 STR R6, [R4,#4]
.text:6045B674 STR R3, [R4]
.text:6045B678 B loc_6045AEE8
.text:6045B67C ; ---------------------------------------------------------------------------
.text:6045B67C
.text:6045B67C loc_6045B67C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+38j
.text:6045B67C LDR R3, [R0,#0x1C]
.text:6045B680 LDRB R2, [R3,#0x228]
.text:6045B684 CMP R2, #0
.text:6045B688 BEQ loc_6045A8A4
.text:6045B68C LDR R3, [R3,#0x14]
.text:6045B690 CMP R3, #0
.text:6045B694 BEQ loc_6045A8A4
.text:6045B698 BLX R3
.text:6045B69C CMP R0, #0
.text:6045B6A0 BEQ loc_6045A8A4
.text:6045B6A4 B loc_6045AA84
.text:6045B6A8 ; ---------------------------------------------------------------------------
.text:6045B6A8
.text:6045B6A8 loc_6045B6A8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+370j
.text:6045B6A8 LDR LR, [R2,#0xD8]
.text:6045B6AC CMP LR, #0
.text:6045B6B0 BEQ loc_6045ABEC
.text:6045B6B4
.text:6045B6B4 loc_6045B6B4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+E9Cj
.text:6045B6B4 LDMDB R4, {R0,R1}
.text:6045B6B8
.text:6045B6B8 loc_6045B6B8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+EB4j
.text:6045B6B8 ADD R3, R4, #8
.text:6045B6BC ADD R2, SP, #0x80+var_28
.text:6045B6C0 ADD R7, R4, #0x10
.text:6045B6C4 STMIA R3, {R0,R1}
.text:6045B6C8 ADD R3, SP, #0x80+var_50
.text:6045B6CC STR R12, [R4,#-8]
.text:6045B6D0 MOV R0, R5
.text:6045B6D4 STR R12, [R4,#-4]
.text:6045B6D8 MOV R12, #5
.text:6045B6DC STMIA R4, {R12,LR}
.text:6045B6E0 MOV R1, #1
.text:6045B6E4 LDR LR, [SP,#0x80+var_54]
.text:6045B6E8 LDR R12, [R5,#0x20]
.text:6045B6EC SUB LR, LR, #4
.text:6045B6F0 STR LR, [R2,#-0x2C]!
.text:6045B6F4 RSB R12, R12, R7
.text:6045B6F8 B loc_6045B188
.text:6045B6FC ; ---------------------------------------------------------------------------
.text:6045B6FC
.text:6045B6FC loc_6045B6FC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+31Cj
.text:6045B6FC LDR LR, [R2,#0xD8]
.text:6045B700 CMP LR, #0
.text:6045B704 BNE loc_6045B6B4
.text:6045B708 B loc_6045AB98
.text:6045B70C ; ---------------------------------------------------------------------------
.text:6045B70C
.text:6045B70C loc_6045B70C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+41Cj
.text:6045B70C LDR LR, [R2,#0xD8]
.text:6045B710 CMP LR, #0
.text:6045B714 BEQ loc_6045AC98
.text:6045B718
.text:6045B718 loc_6045B718 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+EC0j
.text:6045B718 LDMIA R8, {R0,R1}
.text:6045B71C B loc_6045B6B8
.text:6045B720 ; ---------------------------------------------------------------------------
.text:6045B720
.text:6045B720 loc_6045B720 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+3C0j
.text:6045B720 LDR LR, [R2,#0xD8]
.text:6045B724 CMP LR, #0
.text:6045B728 BNE loc_6045B718
.text:6045B72C B loc_6045AC3C
.text:6045B730 ; ---------------------------------------------------------------------------
.text:6045B730
.text:6045B730 loc_6045B730 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A80j
.text:6045B730 LDRB R3, [R0,#0x228]
.text:6045B734 CMP R3, #0
.text:6045B738 BEQ loc_6045B2EC
.text:6045B73C LDR R3, [R0,#4]
.text:6045B740 CMP R3, #0
.text:6045B744 BEQ loc_6045B2EC
.text:6045B748 MOV R2, #4
.text:6045B74C MOV R1, R5
.text:6045B750 STR R2, [SP,#0x80+var_70]
.text:6045B754 BL _ZN9gmMachine15Sys_SwitchStateEP8gmThreadi ; gmMachine::Sys_SwitchState(gmThread *,int)
.text:6045B758 B loc_6045AA84
.text:6045B75C ; ---------------------------------------------------------------------------
.text:6045B75C
.text:6045B75C loc_6045B75C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+C00j
.text:6045B75C ADD R0, R3, #0xE0
.text:6045B760 BL _ZN10gmMemChain5AllocEv ; gmMemChain::Alloc(void)
.text:6045B764 B loc_6045B474
.text:6045B768 ; ---------------------------------------------------------------------------
.text:6045B768
.text:6045B768 loc_6045B768 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+CC4j
.text:6045B768 STR R3, [R4,#4]
.text:6045B76C MOV R3, #1
.text:6045B770 STR R3, [R4]
.text:6045B774 B loc_6045B55C
.text:6045B778 ; ---------------------------------------------------------------------------
.text:6045B778
.text:6045B778 loc_6045B778 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+2ACj
.text:6045B778 CMP R0, #6
.text:6045B77C BEQ loc_6045AA84
.text:6045B780 CMP R0, #7
.text:6045B784 BEQ loc_6045B2A0
.text:6045B788 CMP R0, #3
.text:6045B78C STRNE R0, [SP,#0x80+var_70]
.text:6045B790 BNE loc_6045AA84
.text:6045B794 LDR R12, [SP,#0x80+var_64]
.text:6045B798 CMP R12, #0
.text:6045B79C SUBNE R2, R2, #0xE0000001
.text:6045B7A0 ADDNE R3, R3, R2,LSL#3
.text:6045B7A4 LDMNEIA R3, {R0,R1}
.text:6045B7A8 STMNEIA R12, {R0,R1}
.text:6045B7AC B loc_6045B7D4
.text:6045B7B0 ; ---------------------------------------------------------------------------
.text:6045B7B0
.text:6045B7B0 loc_6045B7B0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+9B4j
.text:6045B7B0 LDR R1, =(aSetdotFailed_ - 0x6045B7C0)
.text:6045B7B4 ADD R0, R0, #0x238
.text:6045B7B8 ADD R1, PC, R1 ; "setdot failed."
.text:6045B7BC BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B7C0 B loc_6045B2A0
.text:6045B7C4 ; ---------------------------------------------------------------------------
.text:6045B7C4
.text:6045B7C4 loc_6045B7C4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+C94j
.text:6045B7C4 LDR R12, [SP,#0x80+var_64]
.text:6045B7C8 CMP R12, #0
.text:6045B7CC LDMNEDB R4, {R0,R1}
.text:6045B7D0 STMNEIA R12, {R0,R1}
.text:6045B7D4
.text:6045B7D4 loc_6045B7D4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+F44j
.text:6045B7D4 LDR R0, [R5,#0x1C]
.text:6045B7D8 B loc_6045B2EC
.text:6045B7DC ; ---------------------------------------------------------------------------
.text:6045B7DC
.text:6045B7DC loc_6045B7DC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+620j
.text:6045B7DC LDR R1, =(aForeachExpress - 0x6045B7EC)
.text:6045B7E0 ADD R0, R0, #0x238
.text:6045B7E4 ADD R1, PC, R1 ; "foreach expression has no iterator func"...
.text:6045B7E8 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B7EC B loc_6045B2A0
.text:6045B7F0 ; ---------------------------------------------------------------------------
.text:6045B7F0
.text:6045B7F0 loc_6045B7F0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+6ECj
.text:6045B7F0 LDR R1, =(aGetdotFailed_ - 0x6045B800)
.text:6045B7F4 ADD R0, R0, #0x238
.text:6045B7F8 ADD R1, PC, R1 ; "getdot failed."
.text:6045B7FC BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B800 B loc_6045B2A0
.text:6045B804 ; ---------------------------------------------------------------------------
.text:6045B804
.text:6045B804 loc_6045B804 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+818j
.text:6045B804 LDR R1, =(aGetthisFailed_ - 0x6045B814)
.text:6045B808 ADD R0, R0, #0x238
.text:6045B80C ADD R1, PC, R1 ; "getthis failed. this is null"
.text:6045B810 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B814 B loc_6045B2A0
.text:6045B818 ; ---------------------------------------------------------------------------
.text:6045B818
.text:6045B818 loc_6045B818 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+D74j
.text:6045B818 BL _Z17gmGetOperatorName10gmOperator ; gmGetOperatorName(gmOperator)
.text:6045B81C LDR R1, [R4,#-8]
.text:6045B820 MOV R6, R0
.text:6045B824 LDR R0, [R5,#0x1C]
.text:6045B828 BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B82C LDR R1, =(aUnaryOperatorS - 0x6045B83C)
.text:6045B830 MOV R2, R6
.text:6045B834 ADD R1, PC, R1 ; "unary operator %s undefined for type %s"
.text:6045B838 MOV R3, R0
.text:6045B83C ADD R0, R8, #0x238
.text:6045B840 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B844 B loc_6045B2A0
.text:6045B848 ; ---------------------------------------------------------------------------
.text:6045B848
.text:6045B848 loc_6045B848 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+D08j
.text:6045B848 LDR R1, =(aSetindFailed_ - 0x6045B858)
.text:6045B84C ADD R0, R0, #0x238
.text:6045B850 ADD R1, PC, R1 ; "setind failed."
.text:6045B854 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B858 B loc_6045B2A0
.text:6045B858 ; ---------------------------------------------------------------------------
.text:6045B85C off_6045B85C DCD _GLOBAL_OFFSET_TABLE_ - 0x6045A88C
.text:6045B85C ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+18r
.text:6045B860 off_6045B860 DCD aSetthisFailed_ - 0x6045B2A0
.text:6045B860 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+A28r
.text:6045B860 ; "setthis failed."
.text:6045B864 off_6045B864 DCD _ZN9gmMachine17s_machineCallbackE_ptr - 0x60A00914
.text:6045B864 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+A50r
.text:6045B868 off_6045B868 DCD aOperatorSUndef - 0x6045B660
.text:6045B868 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+DE4r
.text:6045B868 ; "operator %s undefined for type %s and %"...
.text:6045B86C off_6045B86C DCD aSetdotFailed_ - 0x6045B7C0
.text:6045B86C ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B7B0r
.text:6045B86C ; "setdot failed."
.text:6045B870 off_6045B870 DCD aForeachExpress - 0x6045B7EC
.text:6045B870 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B7DCr
.text:6045B870 ; "foreach expression has no iterator func"...
.text:6045B874 off_6045B874 DCD aGetdotFailed_ - 0x6045B800
.text:6045B874 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B7F0r
.text:6045B874 ; "getdot failed."
.text:6045B878 off_6045B878 DCD aGetthisFailed_ - 0x6045B814
.text:6045B878 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B804r
.text:6045B878 ; "getthis failed. this is null"
.text:6045B87C off_6045B87C DCD aUnaryOperatorS - 0x6045B83C
.text:6045B87C ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+FC4r
.text:6045B87C ; "unary operator %s undefined for type %s"
.text:6045B880 off_6045B880 DCD aSetindFailed_ - 0x6045B858
.text:6045B880 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B848r
.text:6045B880 ; "setind failed."
.text:6045B884 off_6045B884 DCD aOperatorSUndef - 0x6045B8C4
.text:6045B884 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+1048r
.text:6045B884 ; "operator %s undefined for type %s and %"...
.text:6045B888 ; ---------------------------------------------------------------------------
.text:6045B888
.text:6045B888 loc_6045B888 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+8D8j
.text:6045B888 MOV R0, #2
.text:6045B88C BL _Z17gmGetOperatorName10gmOperator ; gmGetOperatorName(gmOperator)
.text:6045B890 LDR R1, [R4,#-0x10]
.text:6045B894 MOV R7, R0
.text:6045B898 LDR R0, [R5,#0x1C]
.text:6045B89C BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B8A0 LDR R1, [R4,#-8]
.text:6045B8A4 MOV R6, R0
.text:6045B8A8 LDR R0, [R5,#0x1C]
.text:6045B8AC BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B8B0 LDR R1, =(aOperatorSUndef - 0x6045B8C4)
.text:6045B8B4 MOV R2, R7
.text:6045B8B8 MOV R3, R6
.text:6045B8BC ADD R1, PC, R1 ; "operator %s undefined for type %s and %"...
.text:6045B8C0 STR R0, [SP,#0x80+var_80]
.text:6045B8C4 ADD R0, R8, #0x238
.text:6045B8C8 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B8CC B loc_6045B2A0
.text:6045B8CC ; End of function gmThread::Sys_Execute(gmVariable *)
.text:6045B8CC
.text:6045A868 ; =============== S U B R O U T I N E =======================================
.text:6045A868
.text:6045A868
.text:6045A868 ; gmThread::Sys_Execute(gmVariable *)
.text:6045A868 EXPORT _ZN8gmThread11Sys_ExecuteEP10gmVariable
.text:6045A868 _ZN8gmThread11Sys_ExecuteEP10gmVariable ; CODE XREF: gmMachine::ExecuteLib(gmStream &,int *,bool,char const*,gmVariable *)+7Cp
.text:6045A868 ; gmMachine::ExecuteFunction(gmFunctionObject *,int *,bool,gmVariable *)+60p ...
.text:6045A868
.text:6045A868 var_80 = -0x80
.text:6045A868 var_78 = -0x78
.text:6045A868 var_74 = -0x74
.text:6045A868 var_70 = -0x70
.text:6045A868 var_6C = -0x6C
.text:6045A868 var_68 = -0x68
.text:6045A868 var_64 = -0x64
.text:6045A868 var_60 = -0x60
.text:6045A868 var_54 = -0x54
.text:6045A868 var_50 = -0x50
.text:6045A868 var_4C = -0x4C
.text:6045A868 var_48 = -0x48
.text:6045A868 var_40 = -0x40
.text:6045A868 var_3C = -0x3C
.text:6045A868 var_38 = -0x38
.text:6045A868 var_30 = -0x30
.text:6045A868 var_28 = -0x28
.text:6045A868
.text:6045A868 STMFD SP!, {R4-R11,LR}
.text:6045A86C SUB SP, SP, #0x5C
.text:6045A870 LDR R12, [R0,#0x34]
.text:6045A874 MOV R5, R0
.text:6045A878 STR R1, [SP,#0x80+var_64]
.text:6045A87C STR R12, [SP,#0x80+var_70]
.text:6045A880 LDR R12, =(_GLOBAL_OFFSET_TABLE_ - 0x6045A88C)
.text:6045A884 ADD R12, PC, R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045A888 STR R12, [SP,#0x80+var_68]
.text:6045A88C LDR R12, [SP,#0x80+var_70]
.text:6045A890 CMP R12, #0
.text:6045A894 BNE loc_6045AA84
.text:6045A898 LDR R3, [R0,#0x10]
.text:6045A89C CMP R3, #0
.text:6045A8A0 BNE loc_6045B67C
.text:6045A8A4
.text:6045A8A4 loc_6045A8A4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+E20j
.text:6045A8A4 ; gmThread::Sys_Execute(gmVariable *)+E2Cj ...
.text:6045A8A4 LDR R2, [R5,#0x2C]
.text:6045A8A8 MOV R11, #3
.text:6045A8AC LDR R3, [R5,#0x20]
.text:6045A8B0 ADD R1, SP, #0x80+var_60
.text:6045A8B4 SUB R2, R2, #0xE0000001
.text:6045A8B8 LDR R4, [R5,#0x28]
.text:6045A8BC STR R1, [SP,#0x80+var_78]
.text:6045A8C0 ADD R12, SP, #0x80+var_30
.text:6045A8C4 MOV R2, R2,LSL R11
.text:6045A8C8 STR R12, [SP,#0x80+var_6C]
.text:6045A8CC ADD R1, R3, R2
.text:6045A8D0 ADD R2, R2, #8
.text:6045A8D4 ADD R7, R3, R2
.text:6045A8D8 ADD R4, R3, R4,LSL#3
.text:6045A8DC LDR R3, [R1,#4]
.text:6045A8E0 MOV R6, #0
.text:6045A8E4 LDR R12, [R5,#0x44]
.text:6045A8E8 LDR R3, [R3,#0x1C]
.text:6045A8EC CMP R12, R6
.text:6045A8F0 MOVEQ R12, R3
.text:6045A8F4 STR R3, [SP,#0x80+var_50]
.text:6045A8F8
.text:6045A8F8 loc_6045A8F8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+22Cj
.text:6045A8F8 ; gmThread::Sys_Execute(gmVariable *)+264j ...
.text:6045A8F8 ADD R3, R12, #4
.text:6045A8FC STR R3, [SP,#0x80+var_54]
.text:6045A900 LDR R0, [R12]
.text:6045A904 CMP R0, #0x39 ; switch 58 cases
.text:6045A908 ADDLS PC, PC, R0,LSL#2 ; switch jump
.text:6045A90C ; ---------------------------------------------------------------------------
.text:6045A90C
.text:6045A90C loc_6045A90C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A90C B loc_6045AA90 ; _ZN18VNetworkLightGroupD2Ev_ptr ; jumptable 003B5908 default case
.text:6045A910 ; ---------------------------------------------------------------------------
.text:6045A910
.text:6045A910 loc_6045A910 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A910 B loc_6045AEFC ; jumptable 003B5908 case 0
.text:6045A914 ; ---------------------------------------------------------------------------
.text:6045A914
.text:6045A914 loc_6045A914 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A914 B loc_6045B1E8 ; jumptable 003B5908 case 1
.text:6045A918 ; ---------------------------------------------------------------------------
.text:6045A918
.text:6045A918 loc_6045A918 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A918 B loc_6045B118 ; jumptable 003B5908 case 2
.text:6045A91C ; ---------------------------------------------------------------------------
.text:6045A91C
.text:6045A91C loc_6045A91C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A91C B loc_6045AFD8 ; jumptable 003B5908 case 3
.text:6045A920 ; ---------------------------------------------------------------------------
.text:6045A920
.text:6045A920 loc_6045A920 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A920 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A924 ; ---------------------------------------------------------------------------
.text:6045A924
.text:6045A924 loc_6045A924 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A924 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A928 ; ---------------------------------------------------------------------------
.text:6045A928
.text:6045A928 loc_6045A928 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A928 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A92C ; ---------------------------------------------------------------------------
.text:6045A92C
.text:6045A92C loc_6045A92C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A92C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A930 ; ---------------------------------------------------------------------------
.text:6045A930
.text:6045A930 loc_6045A930 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A930 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A934 ; ---------------------------------------------------------------------------
.text:6045A934
.text:6045A934 loc_6045A934 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A934 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A938 ; ---------------------------------------------------------------------------
.text:6045A938
.text:6045A938 loc_6045A938 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A938 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A93C ; ---------------------------------------------------------------------------
.text:6045A93C
.text:6045A93C loc_6045A93C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A93C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A940 ; ---------------------------------------------------------------------------
.text:6045A940
.text:6045A940 loc_6045A940 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A940 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A944 ; ---------------------------------------------------------------------------
.text:6045A944
.text:6045A944 loc_6045A944 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A944 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A948 ; ---------------------------------------------------------------------------
.text:6045A948
.text:6045A948 loc_6045A948 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A948 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A94C ; ---------------------------------------------------------------------------
.text:6045A94C
.text:6045A94C loc_6045A94C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A94C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A950 ; ---------------------------------------------------------------------------
.text:6045A950
.text:6045A950 loc_6045A950 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A950 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A954 ; ---------------------------------------------------------------------------
.text:6045A954
.text:6045A954 loc_6045A954 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A954 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A958 ; ---------------------------------------------------------------------------
.text:6045A958
.text:6045A958 loc_6045A958 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A958 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A95C ; ---------------------------------------------------------------------------
.text:6045A95C
.text:6045A95C loc_6045A95C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A95C B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A960 ; ---------------------------------------------------------------------------
.text:6045A960
.text:6045A960 loc_6045A960 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A960 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A964 ; ---------------------------------------------------------------------------
.text:6045A964
.text:6045A964 loc_6045A964 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A964 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A968 ; ---------------------------------------------------------------------------
.text:6045A968
.text:6045A968 loc_6045A968 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A968 B loc_6045AF8C ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045A96C ; ---------------------------------------------------------------------------
.text:6045A96C
.text:6045A96C loc_6045A96C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A96C B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A970 ; ---------------------------------------------------------------------------
.text:6045A970
.text:6045A970 loc_6045A970 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A970 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A974 ; ---------------------------------------------------------------------------
.text:6045A974
.text:6045A974 loc_6045A974 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A974 B loc_6045AA98 ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045A978 ; ---------------------------------------------------------------------------
.text:6045A978
.text:6045A978 loc_6045A978 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A978 B loc_6045AA90 ; jumptable 003B5908 default case
.text:6045A97C ; ---------------------------------------------------------------------------
.text:6045A97C
.text:6045A97C loc_6045A97C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A97C B loc_6045B0CC ; jumptable 003B5908 case 27
.text:6045A980 ; ---------------------------------------------------------------------------
.text:6045A980
.text:6045A980 loc_6045A980 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A980 B loc_6045B0BC ; jumptable 003B5908 case 28
.text:6045A984 ; ---------------------------------------------------------------------------
.text:6045A984
.text:6045A984 loc_6045A984 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A984 B loc_6045AC5C ; jumptable 003B5908 case 29
.text:6045A988 ; ---------------------------------------------------------------------------
.text:6045A988
.text:6045A988 loc_6045A988 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A988 B loc_6045AC00 ; jumptable 003B5908 case 30
.text:6045A98C ; ---------------------------------------------------------------------------
.text:6045A98C
.text:6045A98C loc_6045A98C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A98C B loc_6045ABB4 ; jumptable 003B5908 case 31
.text:6045A990 ; ---------------------------------------------------------------------------
.text:6045A990
.text:6045A990 loc_6045A990 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A990 B loc_6045AB60 ; jumptable 003B5908 case 32
.text:6045A994 ; ---------------------------------------------------------------------------
.text:6045A994
.text:6045A994 loc_6045A994 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A994 B loc_6045AAD0 ; jumptable 003B5908 case 33
.text:6045A998 ; ---------------------------------------------------------------------------
.text:6045A998
.text:6045A998 loc_6045A998 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A998 B loc_6045A9F8 ; jumptable 003B5908 case 34
.text:6045A99C ; ---------------------------------------------------------------------------
.text:6045A99C
.text:6045A99C loc_6045A99C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A99C B loc_6045AA04 ; jumptable 003B5908 case 35
.text:6045A9A0 ; ---------------------------------------------------------------------------
.text:6045A9A0
.text:6045A9A0 loc_6045A9A0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9A0 B loc_6045AE4C ; jumptable 003B5908 case 36
.text:6045A9A4 ; ---------------------------------------------------------------------------
.text:6045A9A4
.text:6045A9A4 loc_6045A9A4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9A4 B loc_6045AE40 ; jumptable 003B5908 case 37
.text:6045A9A8 ; ---------------------------------------------------------------------------
.text:6045A9A8
.text:6045A9A8 loc_6045A9A8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9A8 B loc_6045AE34 ; jumptable 003B5908 case 38
.text:6045A9AC ; ---------------------------------------------------------------------------
.text:6045A9AC
.text:6045A9AC loc_6045A9AC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9AC B loc_6045AE20 ; jumptable 003B5908 case 39
.text:6045A9B0 ; ---------------------------------------------------------------------------
.text:6045A9B0
.text:6045A9B0 loc_6045A9B0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9B0 B loc_6045ADFC ; jumptable 003B5908 case 40
.text:6045A9B4 ; ---------------------------------------------------------------------------
.text:6045A9B4
.text:6045A9B4 loc_6045A9B4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9B4 B loc_6045ADD4 ; jumptable 003B5908 case 41
.text:6045A9B8 ; ---------------------------------------------------------------------------
.text:6045A9B8
.text:6045A9B8 loc_6045A9B8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9B8 B loc_6045ADC0 ; jumptable 003B5908 case 42
.text:6045A9BC ; ---------------------------------------------------------------------------
.text:6045A9BC
.text:6045A9BC loc_6045A9BC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9BC B loc_6045ADA4 ; jumptable 003B5908 case 43
.text:6045A9C0 ; ---------------------------------------------------------------------------
.text:6045A9C0
.text:6045A9C0 loc_6045A9C0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9C0 B loc_6045AD90 ; jumptable 003B5908 case 44
.text:6045A9C4 ; ---------------------------------------------------------------------------
.text:6045A9C4
.text:6045A9C4 loc_6045A9C4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9C4 B loc_6045AD78 ; jumptable 003B5908 case 45
.text:6045A9C8 ; ---------------------------------------------------------------------------
.text:6045A9C8
.text:6045A9C8 loc_6045A9C8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9C8 B loc_6045AD5C ; jumptable 003B5908 case 46
.text:6045A9CC ; ---------------------------------------------------------------------------
.text:6045A9CC
.text:6045A9CC loc_6045A9CC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9CC B loc_6045AD44 ; jumptable 003B5908 case 47
.text:6045A9D0 ; ---------------------------------------------------------------------------
.text:6045A9D0
.text:6045A9D0 loc_6045A9D0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9D0 B loc_6045AD14 ; jumptable 003B5908 case 48
.text:6045A9D4 ; ---------------------------------------------------------------------------
.text:6045A9D4
.text:6045A9D4 loc_6045A9D4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9D4 B loc_6045ACF8 ; jumptable 003B5908 case 49
.text:6045A9D8 ; ---------------------------------------------------------------------------
.text:6045A9D8
.text:6045A9D8 loc_6045A9D8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9D8 B loc_6045ACD4 ; jumptable 003B5908 case 50
.text:6045A9DC ; ---------------------------------------------------------------------------
.text:6045A9DC
.text:6045A9DC loc_6045A9DC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9DC B loc_6045ACB0 ; jumptable 003B5908 case 51
.text:6045A9E0 ; ---------------------------------------------------------------------------
.text:6045A9E0
.text:6045A9E0 loc_6045A9E0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9E0 B loc_6045B348 ; jumptable 003B5908 case 52
.text:6045A9E4 ; ---------------------------------------------------------------------------
.text:6045A9E4
.text:6045A9E4 loc_6045A9E4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9E4 B loc_6045B308 ; jumptable 003B5908 case 53
.text:6045A9E8 ; ---------------------------------------------------------------------------
.text:6045A9E8
.text:6045A9E8 loc_6045A9E8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9E8 B loc_6045B3C0 ; jumptable 003B5908 case 54
.text:6045A9EC ; ---------------------------------------------------------------------------
.text:6045A9EC
.text:6045A9EC loc_6045A9EC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9EC B loc_6045B010 ; jumptable 003B5908 case 55
.text:6045A9F0 ; ---------------------------------------------------------------------------
.text:6045A9F0
.text:6045A9F0 loc_6045A9F0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9F0 B loc_6045B238 ; jumptable 003B5908 case 56
.text:6045A9F4 ; ---------------------------------------------------------------------------
.text:6045A9F4
.text:6045A9F4 loc_6045A9F4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9F4 B loc_6045B3FC ; jumptable 003B5908 case 57
.text:6045A9F8 ; ---------------------------------------------------------------------------
.text:6045A9F8
.text:6045A9F8 loc_6045A9F8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045A9F8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A998j
.text:6045A9F8 STR R6, [R4] ; jumptable 003B5908 case 34
.text:6045A9FC ADD R4, R4, #8
.text:6045AA00 STR R6, [R4,#-4]
.text:6045AA04
.text:6045AA04 loc_6045AA04 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AA04 ; gmThread::Sys_Execute(gmVariable *):loc_6045A99Cj
.text:6045AA04 LDR R3, [R5,#0x20] ; jumptable 003B5908 case 35
.text:6045AA08 MOV R0, R5
.text:6045AA0C ADD R1, SP, #0x80+var_54
.text:6045AA10 ADD R2, SP, #0x80+var_50
.text:6045AA14 RSB R4, R3, R4
.text:6045AA18 MOV R4, R4,ASR#3
.text:6045AA1C STR R4, [R5,#0x28]
.text:6045AA20 BL _ZN8gmThread17Sys_PopStackFrameERPKhS2_ ; gmThread::Sys_PopStackFrame(uchar const*&,uchar const*&)
.text:6045AA24 LDR R4, [R5,#0x28]
.text:6045AA28 LDR R7, [R5,#0x2C]
.text:6045AA2C LDR R3, [R5,#0x20]
.text:6045AA30 ADD R4, R3, R4,LSL#3
.text:6045AA34 ADD R7, R3, R7,LSL#3 ; _ZTV23VisVertexAnimControl_cl_ptr
.text:6045AA38 CMP R0, #0
.text:6045AA3C BNE loc_6045B4F8
.text:6045AA40 LDR R3, [R5,#0x10]
.text:6045AA44 CMP R3, #0
.text:6045AA48 BEQ loc_6045B110
.text:6045AA4C LDR R3, [R5,#0x1C]
.text:6045AA50 LDRB R2, [R3,#0x228]
.text:6045AA54 CMP R2, #0 ; _ZN18VNetworkLightGroupD2Ev_ptr
.text:6045AA58 BEQ loc_6045B110
.text:6045AA5C LDR R2, [R3,#0x10]
.text:6045AA60 CMP R2, #0
.text:6045AA64 BEQ loc_6045B110
.text:6045AA68 LDR R2, [SP,#0x80+var_54]
.text:6045AA6C MOV R0, R5
.text:6045AA70 STR R2, [R5,#0x44]
.text:6045AA74 LDR R3, [R3,#0x10]
.text:6045AA78 BLX R3
.text:6045AA7C CMP R0, #0
.text:6045AA80 BEQ loc_6045B110
.text:6045AA84
.text:6045AA84 loc_6045AA84 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+2Cj
.text:6045AA84 ; gmThread::Sys_Execute(gmVariable *)+2F4j ...
.text:6045AA84 LDR R0, [SP,#0x80+var_70]
.text:6045AA88 ADD SP, SP, #0x5C
.text:6045AA8C LDMFD SP!, {R4-R11,PC}
.text:6045AA90 ; ---------------------------------------------------------------------------
.text:6045AA90
.text:6045AA90 loc_6045AA90 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AA90 ; gmThread::Sys_Execute(gmVariable *):loc_6045A90Cj ...
.text:6045AA90 MOV R12, R3 ; jumptable 003B5908 default case
.text:6045AA94 B loc_6045A8F8
.text:6045AA98 ; ---------------------------------------------------------------------------
.text:6045AA98
.text:6045AA98 loc_6045AA98 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AA98 ; gmThread::Sys_Execute(gmVariable *):loc_6045A934j ...
.text:6045AA98 LDR R8, [R5,#0x1C] ; jumptable 003B5908 cases 9,10,16,23-25
.text:6045AA9C LDR R3, [R4,#-8]
.text:6045AAA0 LDR R2, [R8,#0x200]
.text:6045AAA4 RSB R3, R3, R3,LSL#4
.text:6045AAA8 ADD R3, R2, R3,LSL#4
.text:6045AAAC ADD R3, R3, R0,LSL#2
.text:6045AAB0 LDR R12, [R3,#4]
.text:6045AAB4 CMP R12, #0
.text:6045AAB8 BEQ loc_6045B5D4
.text:6045AABC MOV R0, R5
.text:6045AAC0 SUB R1, R4, #8
.text:6045AAC4 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AAC8 LDR R12, [SP,#0x80+var_54]
.text:6045AACC B loc_6045A8F8
.text:6045AAD0 ; ---------------------------------------------------------------------------
.text:6045AAD0
.text:6045AAD0 loc_6045AAD0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AAD0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A994j
.text:6045AAD0 LDR R3, [R5,#0x20] ; jumptable 003B5908 case 33
.text:6045AAD4 ADD R2, SP, #0x80+var_28
.text:6045AAD8 ADD R1, R12, #8
.text:6045AADC MOV R0, R5
.text:6045AAE0 RSB R4, R3, R4
.text:6045AAE4 STR R1, [R2,#-0x2C]!
.text:6045AAE8 ADD R3, SP, #0x80+var_50
.text:6045AAEC MOV R4, R4,ASR#3
.text:6045AAF0 STR R4, [R5,#0x28]
.text:6045AAF4 LDR R1, [R12,#4]
.text:6045AAF8 BL _ZN8gmThread14PushStackFrameEiPPKhS2_ ; gmThread::PushStackFrame(int,uchar const**,uchar const**)
.text:6045AAFC LDR R2, [R5,#0x28]
.text:6045AB00 LDR R7, [R5,#0x2C]
.text:6045AB04 LDR R3, [R5,#0x20]
.text:6045AB08 ADD R4, R3, R2,LSL#3
.text:6045AB0C ADD R7, R3, R7,LSL#3
.text:6045AB10 CMP R0, #0
.text:6045AB14 BNE loc_6045B778
.text:6045AB18 LDR R3, [R5,#0x10]
.text:6045AB1C CMP R3, #0
.text:6045AB20 BEQ loc_6045B110
.text:6045AB24 LDR R3, [R5,#0x1C]
.text:6045AB28 LDRB R2, [R3,#0x228]
.text:6045AB2C CMP R2, #0
.text:6045AB30 BEQ loc_6045B110
.text:6045AB34 LDR R2, [R3,#0xC]
.text:6045AB38 CMP R2, #0
.text:6045AB3C BEQ loc_6045B110
.text:6045AB40 LDR R2, [SP,#0x80+var_54]
.text:6045AB44 MOV R0, R5
.text:6045AB48 STR R2, [R5,#0x44]
.text:6045AB4C LDR R3, [R3,#0xC]
.text:6045AB50 BLX R3
.text:6045AB54 CMP R0, #0
.text:6045AB58 BEQ loc_6045B110
.text:6045AB5C B loc_6045AA84
.text:6045AB60 ; ---------------------------------------------------------------------------
.text:6045AB60
.text:6045AB60 loc_6045AB60 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AB60 ; gmThread::Sys_Execute(gmVariable *):loc_6045A990j
.text:6045AB60 LDR R2, [R4,#-8] ; jumptable 003B5908 case 32
.text:6045AB64 CMP R2, #6
.text:6045AB68 BLE loc_6045AB98
.text:6045AB6C LDR R1, [R5,#0x1C]
.text:6045AB70 RSB R2, R2, R2,LSL#4
.text:6045AB74 LDR R1, [R1,#0x200]
.text:6045AB78 ADD R2, R1, R2,LSL#4
.text:6045AB7C LDR R12, [R2,#0x6C]
.text:6045AB80 CMP R12, #0
.text:6045AB84 BEQ loc_6045B6FC
.text:6045AB88 MOV R0, R5
.text:6045AB8C SUB R1, R4, #8
.text:6045AB90 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AB94 LDR R3, [SP,#0x80+var_54]
.text:6045AB98
.text:6045AB98 loc_6045AB98 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+300j
.text:6045AB98 ; gmThread::Sys_Execute(gmVariable *)+EA0j
.text:6045AB98 LDR R2, [R4,#-4]
.text:6045AB9C CMP R2, #0
.text:6045ABA0 BEQ loc_6045ABF8
.text:6045ABA4
.text:6045ABA4 loc_6045ABA4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+38Cj
.text:6045ABA4 LDR R3, [R3]
.text:6045ABA8 LDR R12, [SP,#0x80+var_50]
.text:6045ABAC ADD R12, R12, R3 ; _ZN26VActionTimerForceFramerate31classVActionTimerForceFramerateE_ptr
.text:6045ABB0 B loc_6045A8F8
.text:6045ABB4 ; ---------------------------------------------------------------------------
.text:6045ABB4
.text:6045ABB4 loc_6045ABB4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ABB4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A98Cj
.text:6045ABB4 LDR R2, [R4,#-8] ; jumptable 003B5908 case 31
.text:6045ABB8 CMP R2, #6
.text:6045ABBC BLE loc_6045ABEC
.text:6045ABC0 LDR R1, [R5,#0x1C]
.text:6045ABC4 RSB R2, R2, R2,LSL#4
.text:6045ABC8 LDR R1, [R1,#0x200]
.text:6045ABCC ADD R2, R1, R2,LSL#4
.text:6045ABD0 LDR R12, [R2,#0x6C]
.text:6045ABD4 CMP R12, #0
.text:6045ABD8 BEQ loc_6045B6A8
.text:6045ABDC MOV R0, R5
.text:6045ABE0 SUB R1, R4, #8
.text:6045ABE4 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045ABE8 LDR R3, [SP,#0x80+var_54]
.text:6045ABEC
.text:6045ABEC loc_6045ABEC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+354j
.text:6045ABEC ; gmThread::Sys_Execute(gmVariable *)+E48j
.text:6045ABEC LDR R2, [R4,#-4]
.text:6045ABF0 CMP R2, #0
.text:6045ABF4 BEQ loc_6045ABA4
.text:6045ABF8
.text:6045ABF8 loc_6045ABF8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+338j
.text:6045ABF8 ADD R12, R3, #4
.text:6045ABFC B loc_6045A8F8
.text:6045AC00 ; ---------------------------------------------------------------------------
.text:6045AC00
.text:6045AC00 loc_6045AC00 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AC00 ; gmThread::Sys_Execute(gmVariable *):loc_6045A988j
.text:6045AC00 LDR R2, [R4,#-8] ; jumptable 003B5908 case 30
.text:6045AC04 SUB R8, R4, #8
.text:6045AC08 CMP R2, #6
.text:6045AC0C BLE loc_6045AC3C ; _ZN26VActionTimerForceFramerate31classVActionTimerForceFramerateE_ptr
.text:6045AC10 LDR R1, [R5,#0x1C]
.text:6045AC14 RSB R2, R2, R2,LSL#4
.text:6045AC18 LDR R1, [R1,#0x200]
.text:6045AC1C ADD R2, R1, R2,LSL#4
.text:6045AC20 LDR R12, [R2,#0x6C]
.text:6045AC24 CMP R12, #0
.text:6045AC28 BEQ loc_6045B720
.text:6045AC2C MOV R0, R5
.text:6045AC30 MOV R1, R8
.text:6045AC34 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AC38 LDR R3, [SP,#0x80+var_54]
.text:6045AC3C
.text:6045AC3C loc_6045AC3C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+3A4j
.text:6045AC3C ; gmThread::Sys_Execute(gmVariable *)+EC4j
.text:6045AC3C LDR R2, [R4,#-4]
.text:6045AC40 CMP R2, #0
.text:6045AC44 BEQ loc_6045ACA4
.text:6045AC48
.text:6045AC48 loc_6045AC48 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+438j
.text:6045AC48 LDR R3, [R3] ; _ZTV23VisVertexAnimControl_cl_ptr
.text:6045AC4C MOV R4, R8
.text:6045AC50 LDR R12, [SP,#0x80+var_50]
.text:6045AC54 ADD R12, R12, R3
.text:6045AC58 B loc_6045A8F8
.text:6045AC5C ; ---------------------------------------------------------------------------
.text:6045AC5C
.text:6045AC5C loc_6045AC5C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AC5C ; gmThread::Sys_Execute(gmVariable *):loc_6045A984j
.text:6045AC5C LDR R2, [R4,#-8] ; jumptable 003B5908 case 29
.text:6045AC60 SUB R8, R4, #8
.text:6045AC64 CMP R2, #6
.text:6045AC68 BLE loc_6045AC98
.text:6045AC6C LDR R1, [R5,#0x1C]
.text:6045AC70 RSB R2, R2, R2,LSL#4
.text:6045AC74 LDR R1, [R1,#0x200]
.text:6045AC78 ADD R2, R1, R2,LSL#4
.text:6045AC7C LDR R12, [R2,#0x6C]
.text:6045AC80 CMP R12, #0
.text:6045AC84 BEQ loc_6045B70C
.text:6045AC88 MOV R0, R5
.text:6045AC8C MOV R1, R8
.text:6045AC90 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AC94 LDR R3, [SP,#0x80+var_54]
.text:6045AC98
.text:6045AC98 loc_6045AC98 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+400j
.text:6045AC98 ; gmThread::Sys_Execute(gmVariable *)+EACj
.text:6045AC98 LDR R2, [R4,#-4]
.text:6045AC9C CMP R2, #0
.text:6045ACA0 BEQ loc_6045AC48
.text:6045ACA4
.text:6045ACA4 loc_6045ACA4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+3DCj
.text:6045ACA4 ADD R12, R3, #4
.text:6045ACA8 MOV R4, R8
.text:6045ACAC B loc_6045A8F8
.text:6045ACB0 ; ---------------------------------------------------------------------------
.text:6045ACB0
.text:6045ACB0 loc_6045ACB0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ACB0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9DCj
.text:6045ACB0 LDR R3, [R12,#4] ; jumptable 003B5908 case 51
.text:6045ACB4 ADD R12, R12, #8
.text:6045ACB8 STR R12, [SP,#0x80+var_54]
.text:6045ACBC ADD R3, R7, R3,LSL#3
.text:6045ACC0 LDMIA R3, {R0,R1}
.text:6045ACC4 STMIA R4, {R0,R1}
.text:6045ACC8 ADD R4, R4, #8
.text:6045ACCC LDR R12, [SP,#0x80+var_54]
.text:6045ACD0 B loc_6045A8F8
.text:6045ACD4 ; ---------------------------------------------------------------------------
.text:6045ACD4
.text:6045ACD4 loc_6045ACD4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ACD4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9D8j
.text:6045ACD4 LDR R3, [R5,#0x2C] ; jumptable 003B5908 case 50
.text:6045ACD8 LDR R2, [R5,#0x20]
.text:6045ACDC SUB R3, R3, #0xE0000002
.text:6045ACE0 ADD R3, R2, R3,LSL#3
.text:6045ACE4 LDMIA R3, {R0,R1}
.text:6045ACE8 STMIA R4, {R0,R1}
.text:6045ACEC ADD R4, R4, #8
.text:6045ACF0 LDR R12, [SP,#0x80+var_54]
.text:6045ACF4 B loc_6045A8F8
.text:6045ACF8 ; ---------------------------------------------------------------------------
.text:6045ACF8
.text:6045ACF8 loc_6045ACF8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ACF8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9D4j
.text:6045ACF8 MOV R12, #5 ; jumptable 003B5908 case 49
.text:6045ACFC STR R12, [R4]
.text:6045AD00 LDR R12, [SP,#0x80+var_54]
.text:6045AD04 ADD R4, R4, #8
.text:6045AD08 LDR R3, [R12],#4
.text:6045AD0C STR R3, [R4,#-4]
.text:6045AD10 B loc_6045A8F8
.text:6045AD14 ; ---------------------------------------------------------------------------
.text:6045AD14
.text:6045AD14 loc_6045AD14 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD14 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9D0j
.text:6045AD14 LDR R3, [R5,#0x20] ; jumptable 003B5908 case 48
.text:6045AD18 RSB R3, R3, R4
.text:6045AD1C ADD R4, R4, #8
.text:6045AD20 MOV R3, R3,ASR#3
.text:6045AD24 STR R3, [R5,#0x28]
.text:6045AD28 MOV R3, #4
.text:6045AD2C STR R3, [R4,#-8]
.text:6045AD30 LDR R0, [R5,#0x1C]
.text:6045AD34 BL _ZN9gmMachine16AllocTableObjectEv ; gmMachine::AllocTableObject(void)
.text:6045AD38 LDR R12, [SP,#0x80+var_54]
.text:6045AD3C STR R0, [R4,#-4]
.text:6045AD40 B loc_6045A8F8
.text:6045AD44 ; ---------------------------------------------------------------------------
.text:6045AD44
.text:6045AD44 loc_6045AD44 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD44 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9CCj
.text:6045AD44 STR R11, [R4] ; jumptable 003B5908 case 47
.text:6045AD48 ADD R4, R4, #8
.text:6045AD4C LDR R12, [SP,#0x80+var_54]
.text:6045AD50 LDR R3, [R12],#4
.text:6045AD54 STR R3, [R4,#-4]
.text:6045AD58 B loc_6045A8F8
.text:6045AD5C ; ---------------------------------------------------------------------------
.text:6045AD5C
.text:6045AD5C loc_6045AD5C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD5C ; gmThread::Sys_Execute(gmVariable *):loc_6045A9C8j
.text:6045AD5C MOV R3, #2 ; jumptable 003B5908 case 46
.text:6045AD60 STR R3, [R4]
.text:6045AD64 LDR R12, [SP,#0x80+var_54]
.text:6045AD68 ADD R4, R4, #8
.text:6045AD6C LDR R3, [R12],#4
.text:6045AD70 STR R3, [R4,#-4]
.text:6045AD74 B loc_6045A8F8
.text:6045AD78 ; ---------------------------------------------------------------------------
.text:6045AD78
.text:6045AD78 loc_6045AD78 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD78 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9C4j
.text:6045AD78 MOV R3, #1 ; jumptable 003B5908 case 45
.text:6045AD7C STR R3, [R4]
.text:6045AD80 STR R3, [R4,#4]
.text:6045AD84 ADD R4, R4, #8
.text:6045AD88 LDR R12, [SP,#0x80+var_54]
.text:6045AD8C B loc_6045A8F8
.text:6045AD90 ; ---------------------------------------------------------------------------
.text:6045AD90
.text:6045AD90 loc_6045AD90 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AD90 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9C0j
.text:6045AD90 MOV R3, #1 ; jumptable 003B5908 case 44
.text:6045AD94 STMIA R4, {R3,R6}
.text:6045AD98 ADD R4, R4, #8
.text:6045AD9C LDR R12, [SP,#0x80+var_54]
.text:6045ADA0 B loc_6045A8F8
.text:6045ADA4 ; ---------------------------------------------------------------------------
.text:6045ADA4
.text:6045ADA4 loc_6045ADA4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADA4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9BCj
.text:6045ADA4 MOV R3, #1 ; jumptable 003B5908 case 43
.text:6045ADA8 STR R3, [R4]
.text:6045ADAC LDR R12, [SP,#0x80+var_54]
.text:6045ADB0 ADD R4, R4, #8
.text:6045ADB4 LDR R3, [R12],#4
.text:6045ADB8 STR R3, [R4,#-4]
.text:6045ADBC B loc_6045A8F8
.text:6045ADC0 ; ---------------------------------------------------------------------------
.text:6045ADC0
.text:6045ADC0 loc_6045ADC0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADC0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9B8j
.text:6045ADC0 STR R6, [R4] ; jumptable 003B5908 case 42
.text:6045ADC4 ADD R4, R4, #8
.text:6045ADC8 STR R6, [R4,#-4]
.text:6045ADCC LDR R12, [SP,#0x80+var_54]
.text:6045ADD0 B loc_6045A8F8
.text:6045ADD4 ; ---------------------------------------------------------------------------
.text:6045ADD4
.text:6045ADD4 loc_6045ADD4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADD4 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9B4j
.text:6045ADD4 SUB R2, R4, #8 ; jumptable 003B5908 case 41
.text:6045ADD8 SUB R3, R4, #0x10
.text:6045ADDC LDMIA R2, {R0,R1}
.text:6045ADE0 STMIA R4, {R0,R1}
.text:6045ADE4 LDMIA R3, {R0,R1}
.text:6045ADE8 STMIA R2, {R0,R1}
.text:6045ADEC LDMIA R4, {R0,R1}
.text:6045ADF0 STMIA R3, {R0,R1}
.text:6045ADF4 LDR R12, [SP,#0x80+var_54]
.text:6045ADF8 B loc_6045A8F8
.text:6045ADFC ; ---------------------------------------------------------------------------
.text:6045ADFC
.text:6045ADFC loc_6045ADFC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045ADFC ; gmThread::Sys_Execute(gmVariable *):loc_6045A9B0j
.text:6045ADFC SUB R2, R4, #0x10 ; jumptable 003B5908 case 40
.text:6045AE00 ADD R3, R4, #8
.text:6045AE04 LDMIA R2, {R0,R1}
.text:6045AE08 STMIA R4, {R0,R1}
.text:6045AE0C LDMDB R4, {R0,R1}
.text:6045AE10 ADD R4, R4, #0x10
.text:6045AE14 LDR R12, [SP,#0x80+var_54]
.text:6045AE18 STMIA R3, {R0,R1}
.text:6045AE1C B loc_6045A8F8
.text:6045AE20 ; ---------------------------------------------------------------------------
.text:6045AE20
.text:6045AE20 loc_6045AE20 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE20 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9ACj
.text:6045AE20 LDMDB R4, {R0,R1} ; jumptable 003B5908 case 39
.text:6045AE24 STMIA R4, {R0,R1}
.text:6045AE28 ADD R4, R4, #8
.text:6045AE2C LDR R12, [SP,#0x80+var_54]
.text:6045AE30 B loc_6045A8F8
.text:6045AE34 ; ---------------------------------------------------------------------------
.text:6045AE34
.text:6045AE34 loc_6045AE34 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE34 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9A8j
.text:6045AE34 SUB R4, R4, #0x10 ; jumptable 003B5908 case 38
.text:6045AE38 MOV R12, R3
.text:6045AE3C B loc_6045A8F8
.text:6045AE40 ; ---------------------------------------------------------------------------
.text:6045AE40
.text:6045AE40 loc_6045AE40 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE40 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9A4j
.text:6045AE40 SUB R4, R4, #8 ; jumptable 003B5908 case 37
.text:6045AE44 MOV R12, R3
.text:6045AE48 B loc_6045A8F8
.text:6045AE4C ; ---------------------------------------------------------------------------
.text:6045AE4C
.text:6045AE4C loc_6045AE4C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AE4C ; gmThread::Sys_Execute(gmVariable *):loc_6045A9A0j
.text:6045AE4C ADD R3, R12, #8 ; jumptable 003B5908 case 36
.text:6045AE50 STR R3, [SP,#0x80+var_54]
.text:6045AE54 LDR R3, [R4,#-0x10]
.text:6045AE58 LDR R2, [R12,#4]
.text:6045AE5C CMP R3, #4
.text:6045AE60 MOV R10, R2,LSR#16
.text:6045AE64 UXTH R2, R2
.text:6045AE68 STR R2, [SP,#0x80+var_74]
.text:6045AE6C BEQ loc_6045B50C
.text:6045AE70 LDR R0, [R5,#0x1C]
.text:6045AE74 RSB R3, R3, R3,LSL#4
.text:6045AE78 LDR R2, [R0,#0x200]
.text:6045AE7C ADD R3, R2, R3,LSL#4
.text:6045AE80 LDR R12, [R3,#0xEC]
.text:6045AE84 CMP R12, #0
.text:6045AE88 BEQ loc_6045B7DC
.text:6045AE8C LDR R3, [R4,#-4]
.text:6045AE90 ADD R2, SP, #0x80+var_28
.text:6045AE94 ADD R9, SP, #0x80+var_40
.text:6045AE98 ADD R8, SP, #0x80+var_48
.text:6045AE9C MOV R0, R5
.text:6045AEA0 STR R3, [R2,#-0x24]!
.text:6045AEA4 MOV R3, R9
.text:6045AEA8 LDR R1, [R4,#-0xC]
.text:6045AEAC STR R8, [SP,#0x80+var_80]
.text:6045AEB0 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AEB4 LDR R3, [SP,#0x80+var_4C]
.text:6045AEB8 CMN R3, #1
.text:6045AEBC BEQ loc_6045B66C
.text:6045AEC0 LDMIA R9, {R0,R1}
.text:6045AEC4 ADD R10, R7, R10,LSL#3
.text:6045AEC8 LDR R12, [SP,#0x80+var_74]
.text:6045AECC MOV R3, #1
.text:6045AED0 STMIA R10, {R0,R1}
.text:6045AED4 LDMIA R8, {R0,R1}
.text:6045AED8 ADD R2, R7, R12,LSL#3
.text:6045AEDC STMIA R2, {R0,R1}
.text:6045AEE0 STR R3, [R4]
.text:6045AEE4 STR R3, [R4,#4]
.text:6045AEE8
.text:6045AEE8 loc_6045AEE8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+E10j
.text:6045AEE8 LDR R3, [SP,#0x80+var_4C]
.text:6045AEEC ADD R4, R4, #8
.text:6045AEF0 STR R3, [R4,#-0xC]
.text:6045AEF4 LDR R12, [SP,#0x80+var_54]
.text:6045AEF8 B loc_6045A8F8
.text:6045AEFC ; ---------------------------------------------------------------------------
.text:6045AEFC
.text:6045AEFC loc_6045AEFC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AEFC ; gmThread::Sys_Execute(gmVariable *):loc_6045A910j
.text:6045AEFC LDR R10, [R12,#4] ; jumptable 003B5908 case 0
.text:6045AF00 ADD R12, R12, #8
.text:6045AF04 STR R12, [SP,#0x80+var_54]
.text:6045AF08 LDR R8, [R4,#-8]
.text:6045AF0C STR R10, [R4,#4]
.text:6045AF10 STR R11, [R4]
.text:6045AF14 LDR R0, [R5,#0x1C]
.text:6045AF18 RSB R9, R8, R8,LSL#4
.text:6045AF1C MOV R9, R9,LSL#4
.text:6045AF20 LDR R3, [R0,#0x200]
.text:6045AF24 ADD R3, R3, R9
.text:6045AF28 LDR R3, [R3,#4]
.text:6045AF2C CMP R3, #0
.text:6045AF30 BEQ loc_6045AF50
.text:6045AF34 MOV R0, R5
.text:6045AF38 SUB R1, R4, #8
.text:6045AF3C BLX R3
.text:6045AF40 LDR R3, [R4,#-8]
.text:6045AF44 CMP R3, #0
.text:6045AF48 BNE loc_6045B110
.text:6045AF4C LDR R0, [R5,#0x1C]
.text:6045AF50
.text:6045AF50 loc_6045AF50 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+6C8j
.text:6045AF50 CMP R8, #0
.text:6045AF54 BEQ loc_6045B7F0
.text:6045AF58 STR R11, [SP,#0x80+var_40]
.text:6045AF5C ADD R8, SP, #0x80+var_38
.text:6045AF60 STR R10, [SP,#0x80+var_3C]
.text:6045AF64 ADD R2, SP, #0x80+var_40
.text:6045AF68 LDR R3, [R0,#0x200]
.text:6045AF6C MOV R0, R8
.text:6045AF70 ADD R9, R3, R9
.text:6045AF74 LDR R1, [R9,#0xDC]
.text:6045AF78 BL _ZNK13gmTableObject3GetERK10gmVariable ; gmTableObject::Get(gmVariable const&)
.text:6045AF7C LDMIA R8, {R0,R1}
.text:6045AF80 STMDB R4, {R0,R1}
.text:6045AF84 LDR R12, [SP,#0x80+var_54]
.text:6045AF88 B loc_6045A8F8
.text:6045AF8C ; ---------------------------------------------------------------------------
.text:6045AF8C
.text:6045AF8C loc_6045AF8C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AF8C ; gmThread::Sys_Execute(gmVariable *):loc_6045A920j ...
.text:6045AF8C LDR R2, [R4,#-0x10] ; jumptable 003B5908 cases 4-8,11-15,17-22
.text:6045AF90 LDR R3, [R4,#-8]
.text:6045AF94 LDR R8, [R5,#0x1C]
.text:6045AF98 CMP R3, R2
.text:6045AF9C MOVLT R3, R2
.text:6045AFA0 LDR R2, [R8,#0x200]
.text:6045AFA4 RSB R3, R3, R3,LSL#4
.text:6045AFA8 ADD R3, R2, R3,LSL#4 ; _ZTV26VActionTimerForceFramerate_ptr
.text:6045AFAC ADD R3, R3, R0,LSL#2
.text:6045AFB0 LDR R12, [R3,#4]
.text:6045AFB4 CMP R12, #0
.text:6045AFB8 BEQ loc_6045B61C
.text:6045AFBC
.text:6045AFBC loc_6045AFBC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+8CCj
.text:6045AFBC SUB R8, R4, #8
.text:6045AFC0 SUB R1, R4, #0x10
.text:6045AFC4 MOV R0, R5
.text:6045AFC8 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045AFCC MOV R4, R8
.text:6045AFD0 LDR R12, [SP,#0x80+var_54]
.text:6045AFD4 B loc_6045A8F8
.text:6045AFD8 ; ---------------------------------------------------------------------------
.text:6045AFD8
.text:6045AFD8 loc_6045AFD8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045AFD8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A91Cj
.text:6045AFD8 LDR R0, [R5,#0x1C] ; jumptable 003B5908 case 3
.text:6045AFDC LDR R3, [R4,#-0x18]
.text:6045AFE0 LDR R2, [R0,#0x200]
.text:6045AFE4 RSB R3, R3, R3,LSL#4
.text:6045AFE8 ADD R3, R2, R3,LSL#4
.text:6045AFEC LDR R12, [R3,#0x10]
.text:6045AFF0 CMP R12, #0
.text:6045AFF4 BEQ loc_6045B568
.text:6045AFF8 SUB R4, R4, #0x18
.text:6045AFFC MOV R0, R5
.text:6045B000 MOV R1, R4
.text:6045B004 BLX R12 ; _GLOBAL_OFFSET_TABLE_
.text:6045B008 LDR R12, [SP,#0x80+var_54]
.text:6045B00C B loc_6045A8F8
.text:6045B010 ; ---------------------------------------------------------------------------
.text:6045B010
.text:6045B010 loc_6045B010 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B010 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9ECj
.text:6045B010 LDR R9, [R5,#0x2C] ; jumptable 003B5908 case 55
.text:6045B014 ADD R3, R12, #8
.text:6045B018 LDR R8, [R5,#0x20]
.text:6045B01C SUB R9, R9, #0xE0000002
.text:6045B020 STR R3, [SP,#0x80+var_54]
.text:6045B024 LDR R2, [R12,#4]
.text:6045B028 ADD R3, R8, R9,LSL#3
.text:6045B02C LDMIA R3, {R0,R1}
.text:6045B030 STR R2, [R4,#0xC]
.text:6045B034 STR R11, [R4,#8]
.text:6045B038 STMIA R4, {R0,R1}
.text:6045B03C LDR R0, [R5,#0x1C]
.text:6045B040 LDR R3, [R8,R9,LSL#3]
.text:6045B044 LDR R2, [R0,#0x200]
.text:6045B048 RSB R1, R3, R3,LSL#4
.text:6045B04C ADD R2, R2, R1,LSL#4
.text:6045B050 LDR R2, [R2,#4]
.text:6045B054 CMP R2, #0
.text:6045B058 BEQ loc_6045B07C
.text:6045B05C MOV R0, R5 ; _ZTV19VisBitmapManager_cl_ptr
.text:6045B060 MOV R1, R4
.text:6045B064 BLX R2
.text:6045B068 LDR R3, [R4]
.text:6045B06C CMP R3, #0
.text:6045B070 BNE loc_6045B55C
.text:6045B074 LDR R3, [R8,R9,LSL#3]
.text:6045B078 LDR R0, [R5,#0x1C]
.text:6045B07C
.text:6045B07C loc_6045B07C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+7F0j
.text:6045B07C CMP R3, #0
.text:6045B080 BEQ loc_6045B804
.text:6045B084 LDR R2, [R0,#0x200]
.text:6045B088 RSB R3, R3, R3,LSL#4
.text:6045B08C ADD R8, R4, #8
.text:6045B090 ADD R0, SP, #0x80+var_30
.text:6045B094 ADD R3, R2, R3,LSL#4
.text:6045B098 MOV R2, R8
.text:6045B09C LDR R1, [R3,#0xDC]
.text:6045B0A0 BL _ZNK13gmTableObject3GetERK10gmVariable ; gmTableObject::Get(gmVariable const&)
.text:6045B0A4 LDR R12, [SP,#0x80+var_6C]
.text:6045B0A8 LDMIA R12, {R0,R1}
.text:6045B0AC STMIA R4, {R0,R1}
.text:6045B0B0 MOV R4, R8
.text:6045B0B4 LDR R12, [SP,#0x80+var_54]
.text:6045B0B8 B loc_6045A8F8
.text:6045B0BC ; ---------------------------------------------------------------------------
.text:6045B0BC
.text:6045B0BC loc_6045B0BC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B0BC ; gmThread::Sys_Execute(gmVariable *):loc_6045A980j
.text:6045B0BC LDR R3, [R12,#4] ; jumptable 003B5908 case 28
.text:6045B0C0 LDR R12, [SP,#0x80+var_50]
.text:6045B0C4 ADD R12, R12, R3 ; _GLOBAL_OFFSET_TABLE_
.text:6045B0C8 B loc_6045A8F8
.text:6045B0CC ; ---------------------------------------------------------------------------
.text:6045B0CC
.text:6045B0CC loc_6045B0CC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B0CC ; gmThread::Sys_Execute(gmVariable *):loc_6045A97Cj
.text:6045B0CC LDR R2, [R5,#0x1C] ; jumptable 003B5908 case 27
.text:6045B0D0 LDRB R1, [R2,#0x228]
.text:6045B0D4 CMP R1, #0
.text:6045B0D8 BEQ loc_6045AA90 ; jumptable 003B5908 default case
.text:6045B0DC LDR R1, [R2,#8]
.text:6045B0E0 CMP R1, #0
.text:6045B0E4 BEQ loc_6045AA90 ; jumptable 003B5908 default case
.text:6045B0E8 LDR R1, [R5,#0x20]
.text:6045B0EC MOV R0, R5
.text:6045B0F0 STR R3, [R5,#0x44]
.text:6045B0F4 RSB R3, R1, R4
.text:6045B0F8 MOV R3, R3,ASR#3
.text:6045B0FC STR R3, [R5,#0x28]
.text:6045B100 LDR R3, [R2,#8]
.text:6045B104 BLX R3
.text:6045B108 CMP R0, #0
.text:6045B10C BNE loc_6045AA84
.text:6045B110
.text:6045B110 loc_6045B110 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+1E0j
.text:6045B110 ; gmThread::Sys_Execute(gmVariable *)+1F0j ...
.text:6045B110 LDR R12, [SP,#0x80+var_54]
.text:6045B114 B loc_6045A8F8
.text:6045B118 ; ---------------------------------------------------------------------------
.text:6045B118
.text:6045B118 loc_6045B118 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B118 ; gmThread::Sys_Execute(gmVariable *):loc_6045A918j
.text:6045B118 LDR R8, [R5,#0x1C] ; jumptable 003B5908 case 2
.text:6045B11C LDR R3, [R4,#-0x10]
.text:6045B120 LDR R2, [R8,#0x200]
.text:6045B124 RSB R3, R3, R3,LSL#4
.text:6045B128 ADD R3, R2, R3,LSL#4
.text:6045B12C LDR R12, [R3,#0xC]
.text:6045B130 CMP R12, #0
.text:6045B134 BNE loc_6045AFBC
.text:6045B138 LDR LR, [R3,#0x78]
.text:6045B13C CMP LR, #0
.text:6045B140 BEQ loc_6045B888
.text:6045B144
.text:6045B144 loc_6045B144 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+DBCj
.text:6045B144 SUB R3, R4, #0x10
.text:6045B148 ADD R7, R4, #8
.text:6045B14C ADD R8, R4, #0x10
.text:6045B150 ADD R2, SP, #0x80+var_54
.text:6045B154 LDMIA R3, {R0,R1}
.text:6045B158 ADD R3, SP, #0x80+var_50
.text:6045B15C STMIA R4, {R0,R1}
.text:6045B160 LDMDB R4, {R0,R1}
.text:6045B164 STMIA R7, {R0,R1}
.text:6045B168 MOV R0, R5
.text:6045B16C STR R12, [R4,#-0x10]
.text:6045B170 MOV R1, #2
.text:6045B174 STR R12, [R4,#-0xC]
.text:6045B178 MOV R12, #5
.text:6045B17C STMDB R4, {R12,LR}
.text:6045B180 LDR R12, [R5,#0x20]
.text:6045B184 RSB R12, R12, R8
.text:6045B188
.text:6045B188 loc_6045B188 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+DB0j
.text:6045B188 ; gmThread::Sys_Execute(gmVariable *)+E90j
.text:6045B188 MOV R12, R12,ASR#3
.text:6045B18C
.text:6045B18C loc_6045B18C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+D68j
.text:6045B18C STR R12, [R5,#0x28]
.text:6045B190 BL _ZN8gmThread14PushStackFrameEiPPKhS2_ ; gmThread::PushStackFrame(int,uchar const**,uchar const**)
.text:6045B194 LDR R4, [R5,#0x28]
.text:6045B198 LDR R7, [R5,#0x2C]
.text:6045B19C LDR R3, [R5,#0x20]
.text:6045B1A0 ADD R4, R3, R4,LSL#3
.text:6045B1A4 ADD R7, R3, R7,LSL#3
.text:6045B1A8 CMP R0, #0
.text:6045B1AC BEQ loc_6045B110
.text:6045B1B0 CMP R0, #6
.text:6045B1B4 MOV R3, R0
.text:6045B1B8 BEQ loc_6045AA84
.text:6045B1BC CMP R0, #7
.text:6045B1C0 BEQ loc_6045B2A0
.text:6045B1C4 CMP R0, #3
.text:6045B1C8 STRNE R0, [SP,#0x80+var_70]
.text:6045B1CC BNE loc_6045AA84
.text:6045B1D0 LDR R0, [R5,#0x1C]
.text:6045B1D4 MOV R1, R5
.text:6045B1D8 MOV R2, R3
.text:6045B1DC STR R3, [SP,#0x80+var_70]
.text:6045B1E0 BL _ZN9gmMachine15Sys_SwitchStateEP8gmThreadi ; gmMachine::Sys_SwitchState(gmThread *,int)
.text:6045B1E4 B loc_6045AA84
.text:6045B1E8 ; ---------------------------------------------------------------------------
.text:6045B1E8
.text:6045B1E8 loc_6045B1E8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B1E8 ; gmThread::Sys_Execute(gmVariable *):loc_6045A914j
.text:6045B1E8 LDR R3, [R12,#4] ; jumptable 003B5908 case 1
.text:6045B1EC ADD R12, R12, #8
.text:6045B1F0 STR R12, [SP,#0x80+var_54]
.text:6045B1F4 SUB R8, R4, #0x10
.text:6045B1F8 STR R11, [R4]
.text:6045B1FC STR R3, [R4,#4]
.text:6045B200 LDR R3, [R4,#-0x10]
.text:6045B204 LDR R0, [R5,#0x1C]
.text:6045B208 RSB R3, R3, R3,LSL#4
.text:6045B20C LDR R2, [R0,#0x200]
.text:6045B210 ADD R3, R2, R3,LSL#4
.text:6045B214 LDR R3, [R3,#8]
.text:6045B218 CMP R3, #0
.text:6045B21C BEQ loc_6045B7B0
.text:6045B220
.text:6045B220 loc_6045B220 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A24j
.text:6045B220 MOV R0, R5
.text:6045B224 MOV R1, R8
.text:6045B228 BLX R3
.text:6045B22C MOV R4, R8
.text:6045B230 LDR R12, [SP,#0x80+var_54]
.text:6045B234 B loc_6045A8F8
.text:6045B238 ; ---------------------------------------------------------------------------
.text:6045B238
.text:6045B238 loc_6045B238 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B238 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9F0j
.text:6045B238 LDR R2, [R5,#0x2C] ; jumptable 003B5908 case 56
.text:6045B23C SUB R8, R4, #8
.text:6045B240 LDR R3, [R5,#0x20]
.text:6045B244 ADD R1, R12, #8
.text:6045B248 SUB R2, R2, #0xE0000002
.text:6045B24C STR R1, [SP,#0x80+var_54]
.text:6045B250 LDMIA R8, {R0,R1}
.text:6045B254 ADD LR, R3, R2,LSL#3
.text:6045B258 LDR R12, [R12,#4]
.text:6045B25C STMIA R4, {R0,R1}
.text:6045B260 LDMIA LR, {R0,R1}
.text:6045B264 STMIA R8, {R0,R1}
.text:6045B268 STR R12, [R4,#0xC]
.text:6045B26C STR R11, [R4,#8]
.text:6045B270 LDR R3, [R3,R2,LSL#3]
.text:6045B274 LDR R0, [R5,#0x1C]
.text:6045B278 RSB R3, R3, R3,LSL#4
.text:6045B27C LDR R2, [R0,#0x200]
.text:6045B280 ADD R3, R2, R3,LSL#4
.text:6045B284 LDR R3, [R3,#8]
.text:6045B288 CMP R3, #0
.text:6045B28C BNE loc_6045B220
.text:6045B290 LDR R1, =(aSetthisFailed_ - 0x6045B2A0)
.text:6045B294 ADD R0, R0, #0x238
.text:6045B298 ADD R1, PC, R1 ; "setthis failed."
.text:6045B29C BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B2A0
.text:6045B2A0 loc_6045B2A0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+958j
.text:6045B2A0 ; gmThread::Sys_Execute(gmVariable *)+CA0j ...
.text:6045B2A0 LDR R3, [SP,#0x80+var_54]
.text:6045B2A4 MOV R0, R5
.text:6045B2A8 STR R3, [R5,#0x44]
.text:6045B2AC BL _ZN8gmThread11LogLineFileEv ; gmThread::LogLineFile(void)
.text:6045B2B0 MOV R0, R5
.text:6045B2B4 BL _ZN8gmThread12LogCallStackEv ; gmThread::LogCallStack(void)
.text:6045B2B8 LDR R3, =(_ZN9gmMachine17s_machineCallbackE_ptr - 0x60A00914)
.text:6045B2BC LDR R12, [SP,#0x80+var_68]
.text:6045B2C0 LDR R0, [R5,#0x1C]
.text:6045B2C4 LDR R3, [R12,R3] ; _ZN9gmMachine17s_machineCallbackE_ptr ; gmMachine::s_machineCallback
.text:6045B2C8 LDR R3, [R3]
.text:6045B2CC CMP R3, #0
.text:6045B2D0 BEQ loc_6045B2EC
.text:6045B2D4 MOV R1, #1
.text:6045B2D8 MOV R2, R5
.text:6045B2DC BLX R3
.text:6045B2E0 CMP R0, #0
.text:6045B2E4 LDR R0, [R5,#0x1C]
.text:6045B2E8 BNE loc_6045B730
.text:6045B2EC
.text:6045B2EC loc_6045B2EC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A68j
.text:6045B2EC ; gmThread::Sys_Execute(gmVariable *)+ED0j ...
.text:6045B2EC MOV R2, #3
.text:6045B2F0 MOV R1, R5
.text:6045B2F4 STR R2, [SP,#0x80+var_70]
.text:6045B2F8 BL _ZN9gmMachine15Sys_SwitchStateEP8gmThreadi ; gmMachine::Sys_SwitchState(gmThread *,int)
.text:6045B2FC LDR R0, [SP,#0x80+var_70]
.text:6045B300 ADD SP, SP, #0x5C
.text:6045B304 LDMFD SP!, {R4-R11,PC}
.text:6045B308 ; ---------------------------------------------------------------------------
.text:6045B308
.text:6045B308 loc_6045B308 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B308 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9E4j
.text:6045B308 STR R11, [R4] ; jumptable 003B5908 case 53
.text:6045B30C ADD R0, SP, #0x80+var_60
.text:6045B310 LDR R3, [SP,#0x80+var_54]
.text:6045B314 MOV R2, R4
.text:6045B318 LDR R1, [R3],#4
.text:6045B31C STR R1, [R4,#4]
.text:6045B320 LDR R1, [R5,#0x1C]
.text:6045B324 STR R3, [SP,#0x80+var_54]
.text:6045B328 LDR R1, [R1,#0x74]
.text:6045B32C BL _ZNK13gmTableObject3GetERK10gmVariable ; gmTableObject::Get(gmVariable const&)
.text:6045B330 LDR R12, [SP,#0x80+var_78]
.text:6045B334 LDMIA R12, {R0,R1}
.text:6045B338 STMIA R4, {R0,R1}
.text:6045B33C ADD R4, R4, #8
.text:6045B340 LDR R12, [SP,#0x80+var_54]
.text:6045B344 B loc_6045A8F8
.text:6045B348 ; ---------------------------------------------------------------------------
.text:6045B348
.text:6045B348 loc_6045B348 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B348 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9E0j
.text:6045B348 LDR R3, [R5,#0x1C] ; jumptable 003B5908 case 52
.text:6045B34C ADD R2, R12, #8
.text:6045B350 LDR R8, [R12,#4]
.text:6045B354 STR R2, [SP,#0x80+var_54]
.text:6045B358 LDR R0, [R3,#0x18]
.text:6045B35C LDRB R3, [R0,#0x70]
.text:6045B360 CMP R3, #0
.text:6045B364 ADDNE R8, R7, R8,LSL#3
.text:6045B368 BNE loc_6045B3AC
.text:6045B36C LDR R3, [R7,R8,LSL#3]
.text:6045B370 ADD R8, R7, R8,LSL#3
.text:6045B374 CMP R3, #2
.text:6045B378 BLE loc_6045B3AC
.text:6045B37C LDR R1, [R8,#4]
.text:6045B380 CMP R1, #0
.text:6045B384 BEQ loc_6045B3AC
.text:6045B388 LDRB R3, [R1,#0xD]
.text:6045B38C CMP R3, #0
.text:6045B390 BNE loc_6045B3AC
.text:6045B394 LDRB R3, [R1,#0xC]
.text:6045B398 LDR R2, [R0,#0x60]
.text:6045B39C CMP R2, R3
.text:6045B3A0 BEQ loc_6045B3AC
.text:6045B3A4 ADD R0, R0, #4
.text:6045B3A8 BL _ZN12gmGCColorSet14GrayThisObjectEP11gmGCObjBase ; gmGCColorSet::GrayThisObject(gmGCObjBase *)
.text:6045B3AC
.text:6045B3AC loc_6045B3AC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+B00j
.text:6045B3AC ; gmThread::Sys_Execute(gmVariable *)+B10j ...
.text:6045B3AC SUB R4, R4, #8
.text:6045B3B0 LDMIA R4, {R0,R1}
.text:6045B3B4 STMIA R8, {R0,R1}
.text:6045B3B8 LDR R12, [SP,#0x80+var_54]
.text:6045B3BC B loc_6045A8F8
.text:6045B3C0 ; ---------------------------------------------------------------------------
.text:6045B3C0
.text:6045B3C0 loc_6045B3C0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B3C0 ; gmThread::Sys_Execute(gmVariable *):loc_6045A9E8j
.text:6045B3C0 STR R11, [R4] ; jumptable 003B5908 case 54
.text:6045B3C4 SUB R1, R4, #8
.text:6045B3C8 LDR R0, [SP,#0x80+var_54]
.text:6045B3CC MOV R2, R4
.text:6045B3D0 MOV R3, R1
.text:6045B3D4 LDR R12, [R0],#4
.text:6045B3D8 STR R12, [R4,#4]
.text:6045B3DC MOV R4, R1
.text:6045B3E0 LDR R1, [R5,#0x1C]
.text:6045B3E4 STR R0, [SP,#0x80+var_54]
.text:6045B3E8 LDR R0, [R1,#0x74]
.text:6045B3EC STR R6, [SP,#0x80+var_80]
.text:6045B3F0 BL _ZN13gmTableObject3SetEP9gmMachineRK10gmVariableS4_b ; gmTableObject::Set(gmMachine *,gmVariable const&,gmVariable const&,bool)
.text:6045B3F4 LDR R12, [SP,#0x80+var_54]
.text:6045B3F8 B loc_6045A8F8
.text:6045B3FC ; ---------------------------------------------------------------------------
.text:6045B3FC
.text:6045B3FC loc_6045B3FC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A0j
.text:6045B3FC ; gmThread::Sys_Execute(gmVariable *):loc_6045A9F4j
.text:6045B3FC ADD R1, SP, #0x80+var_40 ; jumptable 003B5908 case 57
.text:6045B400 LDR R0, [R5,#0x1C]
.text:6045B404 BL _ZN9gmMachine12CreateThreadEPi ; gmMachine::CreateThread(int *)
.text:6045B408 LDR R3, [R5,#0x2C]
.text:6045B40C LDR R1, [R5,#0x24]
.text:6045B410 RSB R1, R3, R1
.text:6045B414 SUB R1, R1, #4
.text:6045B418 MOV R8, R0
.text:6045B41C BL _ZN8gmThread5TouchEi ; gmThread::Touch(int)
.text:6045B420 LDR R3, [R5,#0x2C]
.text:6045B424 LDR R2, [R5,#0x28]
.text:6045B428 SUB R12, R3, #0xE0000002
.text:6045B42C LDR R1, [R5,#0x20]
.text:6045B430 RSB R3, R3, R2
.text:6045B434 LDR R0, [R8,#0x20] ; dest
.text:6045B438 ADD R2, R3, #2
.text:6045B43C ADD R1, R1, R12,LSL#3 ; src
.text:6045B440 MOV R2, R2,LSL#3 ; n
.text:6045B444 BL memcpy
.text:6045B448 LDR R2, [R5,#0x28]
.text:6045B44C LDR R3, [R5,#0x2C]
.text:6045B450 RSB R3, R3, R2
.text:6045B454 ADD R3, R3, #2
.text:6045B458 STR R3, [R8,#0x28]
.text:6045B45C LDR R3, [R5,#0x1C]
.text:6045B460 LDR R0, [R3,#0xDC]
.text:6045B464 CMP R0, #0
.text:6045B468 BEQ loc_6045B75C
.text:6045B46C LDR R2, [R0]
.text:6045B470 STR R2, [R3,#0xDC]
.text:6045B474
.text:6045B474 loc_6045B474 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+EFCj
.text:6045B474 STR R0, [R8,#0x30]
.text:6045B478 MOV R3, #1
.text:6045B47C STR R6, [R0]
.text:6045B480 MOV R12, #2
.text:6045B484 LDR R2, [R8,#0x30]
.text:6045B488 ADD R4, R4, #8
.text:6045B48C LDR R0, [SP,#0x80+var_54]
.text:6045B490 STR R6, [R2,#4]
.text:6045B494 ADD R0, R0, #4
.text:6045B498 LDR R2, [R8,#0x30]
.text:6045B49C STR R6, [R2,#8]
.text:6045B4A0 LDR R1, [R8,#0x28]
.text:6045B4A4 LDR R2, [R8,#0x20]
.text:6045B4A8 STR R0, [R8,#0x44]
.text:6045B4AC STR R12, [R8,#0x2C]
.text:6045B4B0 LDR R12, [R5,#0x48]
.text:6045B4B4 STR R3, [R2,R1,LSL#3]
.text:6045B4B8 LDR R2, [R8,#0x28]
.text:6045B4BC LDR LR, [R8,#0x20]
.text:6045B4C0 LDR R0, [SP,#0x80+var_54]
.text:6045B4C4 ADD R1, R2, R3
.text:6045B4C8 ADD R2, LR, R2,LSL#3
.text:6045B4CC STR R1, [R8,#0x28]
.text:6045B4D0 LDR R1, [SP,#0x80+var_50]
.text:6045B4D4 STR R12, [R2,#4]
.text:6045B4D8 LDR R2, [R0]
.text:6045B4DC ADD R2, R1, R2
.text:6045B4E0 STR R2, [SP,#0x80+var_54]
.text:6045B4E4 STR R3, [R4,#-8]
.text:6045B4E8 LDR R3, [R8,#0x48]
.text:6045B4EC LDR R12, [SP,#0x80+var_54]
.text:6045B4F0 STR R3, [R4,#-4]
.text:6045B4F4 B loc_6045A8F8
.text:6045B4F8 ; ---------------------------------------------------------------------------
.text:6045B4F8
.text:6045B4F8 loc_6045B4F8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+1D4j
.text:6045B4F8 CMP R0, #3
.text:6045B4FC BEQ loc_6045B7C4
.text:6045B500 CMP R0, #7
.text:6045B504 BNE loc_6045B110
.text:6045B508 B loc_6045B2A0
.text:6045B50C ; ---------------------------------------------------------------------------
.text:6045B50C
.text:6045B50C loc_6045B50C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+604j
.text:6045B50C LDR R3, [R4,#-4]
.text:6045B510 ADD R1, SP, #0x80+var_28
.text:6045B514 STR R3, [R1,#-0x18]!
.text:6045B518 LDR R0, [R4,#-0xC]
.text:6045B51C BL _ZNK13gmTableObject7GetNextERi ; gmTableObject::GetNext(int &)
.text:6045B520 LDR R3, [SP,#0x80+var_40]
.text:6045B524 STR R3, [R4,#-4]
.text:6045B528 SUBS R3, R0, #0
.text:6045B52C BEQ loc_6045B768
.text:6045B530 LDMIB R3, {R0,R1}
.text:6045B534 ADD R10, R7, R10,LSL#3
.text:6045B538 LDR R2, [SP,#0x80+var_74]
.text:6045B53C ADD R3, R3, #0xC
.text:6045B540 STMIA R10, {R0,R1}
.text:6045B544 LDMIA R3, {R0,R1}
.text:6045B548 ADD R12, R7, R2,LSL#3
.text:6045B54C MOV R2, #1
.text:6045B550 STMIA R12, {R0,R1}
.text:6045B554 STR R2, [R4]
.text:6045B558 STR R2, [R4,#4]
.text:6045B55C
.text:6045B55C loc_6045B55C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+808j
.text:6045B55C ; gmThread::Sys_Execute(gmVariable *)+F0Cj
.text:6045B55C ADD R4, R4, #8
.text:6045B560 LDR R12, [SP,#0x80+var_54]
.text:6045B564 B loc_6045A8F8
.text:6045B568 ; ---------------------------------------------------------------------------
.text:6045B568
.text:6045B568 loc_6045B568 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+78Cj
.text:6045B568 LDR R7, [R3,#0x7C]
.text:6045B56C CMP R7, #0
.text:6045B570 BEQ loc_6045B848
.text:6045B574 SUB LR, R4, #8
.text:6045B578 ADD R8, R4, #8
.text:6045B57C SUB R2, R4, #0x10
.text:6045B580 SUB R3, R4, #0x18
.text:6045B584 LDMIA LR, {R0,R1}
.text:6045B588 STMIA R8, {R0,R1}
.text:6045B58C ADD R8, R4, #0x10
.text:6045B590 LDMIA R2, {R0,R1}
.text:6045B594 ADD R2, SP, #0x80+var_54
.text:6045B598 STMIA R4, {R0,R1}
.text:6045B59C LDMIA R3, {R0,R1}
.text:6045B5A0 ADD R3, SP, #0x80+var_50
.text:6045B5A4 STMIA LR, {R0,R1}
.text:6045B5A8 MOV R1, #3
.text:6045B5AC STR R12, [R4,#-0x18]
.text:6045B5B0 MOV R0, R5
.text:6045B5B4 STR R12, [R4,#-0x14]
.text:6045B5B8 MOV R12, #5
.text:6045B5BC STR R7, [R4,#-0xC]
.text:6045B5C0 STR R12, [R4,#-0x10]
.text:6045B5C4 LDR R12, [R5,#0x20]
.text:6045B5C8 RSB R12, R12, R8
.text:6045B5CC MOV R12, R12,ASR R1
.text:6045B5D0 B loc_6045B18C
.text:6045B5D4 ; ---------------------------------------------------------------------------
.text:6045B5D4
.text:6045B5D4 loc_6045B5D4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+250j
.text:6045B5D4 LDR LR, [R3,#0x70]
.text:6045B5D8 CMP LR, #0
.text:6045B5DC BEQ loc_6045B818
.text:6045B5E0 LDMDB R4, {R0,R1}
.text:6045B5E4 ADD R3, R4, #8
.text:6045B5E8 ADD R7, R4, #0x10
.text:6045B5EC ADD R2, SP, #0x80+var_54
.text:6045B5F0 STMIA R3, {R0,R1}
.text:6045B5F4 ADD R3, SP, #0x80+var_50
.text:6045B5F8 STR R12, [R4,#-8]
.text:6045B5FC MOV R0, R5
.text:6045B600 STR R12, [R4,#-4]
.text:6045B604 MOV R12, #5
.text:6045B608 STMIA R4, {R12,LR}
.text:6045B60C MOV R1, #1
.text:6045B610 LDR R12, [R5,#0x20]
.text:6045B614 RSB R12, R12, R7
.text:6045B618 B loc_6045B188
.text:6045B61C ; ---------------------------------------------------------------------------
.text:6045B61C
.text:6045B61C loc_6045B61C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+750j
.text:6045B61C LDR LR, [R3,#0x70]
.text:6045B620 CMP LR, #0
.text:6045B624 BNE loc_6045B144
.text:6045B628 BL _Z17gmGetOperatorName10gmOperator ; gmGetOperatorName(gmOperator)
.text:6045B62C LDR R1, [R4,#-0x10]
.text:6045B630 MOV R7, R0
.text:6045B634 LDR R0, [R5,#0x1C]
.text:6045B638 BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B63C LDR R1, [R4,#-8]
.text:6045B640 MOV R6, R0
.text:6045B644 LDR R0, [R5,#0x1C]
.text:6045B648 BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B64C LDR R1, =(aOperatorSUndef - 0x6045B660)
.text:6045B650 MOV R2, R7
.text:6045B654 MOV R3, R6
.text:6045B658 ADD R1, PC, R1 ; "operator %s undefined for type %s and %"...
.text:6045B65C STR R0, [SP,#0x80+var_80]
.text:6045B660 ADD R0, R8, #0x238
.text:6045B664 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B668 B loc_6045B2A0
.text:6045B66C ; ---------------------------------------------------------------------------
.text:6045B66C
.text:6045B66C loc_6045B66C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+654j
.text:6045B66C MOV R3, #1
.text:6045B670 STR R6, [R4,#4]
.text:6045B674 STR R3, [R4]
.text:6045B678 B loc_6045AEE8
.text:6045B67C ; ---------------------------------------------------------------------------
.text:6045B67C
.text:6045B67C loc_6045B67C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+38j
.text:6045B67C LDR R3, [R0,#0x1C]
.text:6045B680 LDRB R2, [R3,#0x228]
.text:6045B684 CMP R2, #0
.text:6045B688 BEQ loc_6045A8A4
.text:6045B68C LDR R3, [R3,#0x14]
.text:6045B690 CMP R3, #0
.text:6045B694 BEQ loc_6045A8A4
.text:6045B698 BLX R3
.text:6045B69C CMP R0, #0
.text:6045B6A0 BEQ loc_6045A8A4
.text:6045B6A4 B loc_6045AA84
.text:6045B6A8 ; ---------------------------------------------------------------------------
.text:6045B6A8
.text:6045B6A8 loc_6045B6A8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+370j
.text:6045B6A8 LDR LR, [R2,#0xD8]
.text:6045B6AC CMP LR, #0
.text:6045B6B0 BEQ loc_6045ABEC
.text:6045B6B4
.text:6045B6B4 loc_6045B6B4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+E9Cj
.text:6045B6B4 LDMDB R4, {R0,R1}
.text:6045B6B8
.text:6045B6B8 loc_6045B6B8 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+EB4j
.text:6045B6B8 ADD R3, R4, #8
.text:6045B6BC ADD R2, SP, #0x80+var_28
.text:6045B6C0 ADD R7, R4, #0x10
.text:6045B6C4 STMIA R3, {R0,R1}
.text:6045B6C8 ADD R3, SP, #0x80+var_50
.text:6045B6CC STR R12, [R4,#-8]
.text:6045B6D0 MOV R0, R5
.text:6045B6D4 STR R12, [R4,#-4]
.text:6045B6D8 MOV R12, #5
.text:6045B6DC STMIA R4, {R12,LR}
.text:6045B6E0 MOV R1, #1
.text:6045B6E4 LDR LR, [SP,#0x80+var_54]
.text:6045B6E8 LDR R12, [R5,#0x20]
.text:6045B6EC SUB LR, LR, #4
.text:6045B6F0 STR LR, [R2,#-0x2C]!
.text:6045B6F4 RSB R12, R12, R7
.text:6045B6F8 B loc_6045B188
.text:6045B6FC ; ---------------------------------------------------------------------------
.text:6045B6FC
.text:6045B6FC loc_6045B6FC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+31Cj
.text:6045B6FC LDR LR, [R2,#0xD8]
.text:6045B700 CMP LR, #0
.text:6045B704 BNE loc_6045B6B4
.text:6045B708 B loc_6045AB98
.text:6045B70C ; ---------------------------------------------------------------------------
.text:6045B70C
.text:6045B70C loc_6045B70C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+41Cj
.text:6045B70C LDR LR, [R2,#0xD8]
.text:6045B710 CMP LR, #0
.text:6045B714 BEQ loc_6045AC98
.text:6045B718
.text:6045B718 loc_6045B718 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+EC0j
.text:6045B718 LDMIA R8, {R0,R1}
.text:6045B71C B loc_6045B6B8
.text:6045B720 ; ---------------------------------------------------------------------------
.text:6045B720
.text:6045B720 loc_6045B720 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+3C0j
.text:6045B720 LDR LR, [R2,#0xD8]
.text:6045B724 CMP LR, #0
.text:6045B728 BNE loc_6045B718
.text:6045B72C B loc_6045AC3C
.text:6045B730 ; ---------------------------------------------------------------------------
.text:6045B730
.text:6045B730 loc_6045B730 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+A80j
.text:6045B730 LDRB R3, [R0,#0x228]
.text:6045B734 CMP R3, #0
.text:6045B738 BEQ loc_6045B2EC
.text:6045B73C LDR R3, [R0,#4]
.text:6045B740 CMP R3, #0
.text:6045B744 BEQ loc_6045B2EC
.text:6045B748 MOV R2, #4
.text:6045B74C MOV R1, R5
.text:6045B750 STR R2, [SP,#0x80+var_70]
.text:6045B754 BL _ZN9gmMachine15Sys_SwitchStateEP8gmThreadi ; gmMachine::Sys_SwitchState(gmThread *,int)
.text:6045B758 B loc_6045AA84
.text:6045B75C ; ---------------------------------------------------------------------------
.text:6045B75C
.text:6045B75C loc_6045B75C ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+C00j
.text:6045B75C ADD R0, R3, #0xE0
.text:6045B760 BL _ZN10gmMemChain5AllocEv ; gmMemChain::Alloc(void)
.text:6045B764 B loc_6045B474
.text:6045B768 ; ---------------------------------------------------------------------------
.text:6045B768
.text:6045B768 loc_6045B768 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+CC4j
.text:6045B768 STR R3, [R4,#4]
.text:6045B76C MOV R3, #1
.text:6045B770 STR R3, [R4]
.text:6045B774 B loc_6045B55C
.text:6045B778 ; ---------------------------------------------------------------------------
.text:6045B778
.text:6045B778 loc_6045B778 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+2ACj
.text:6045B778 CMP R0, #6
.text:6045B77C BEQ loc_6045AA84
.text:6045B780 CMP R0, #7
.text:6045B784 BEQ loc_6045B2A0
.text:6045B788 CMP R0, #3
.text:6045B78C STRNE R0, [SP,#0x80+var_70]
.text:6045B790 BNE loc_6045AA84
.text:6045B794 LDR R12, [SP,#0x80+var_64]
.text:6045B798 CMP R12, #0
.text:6045B79C SUBNE R2, R2, #0xE0000001
.text:6045B7A0 ADDNE R3, R3, R2,LSL#3
.text:6045B7A4 LDMNEIA R3, {R0,R1}
.text:6045B7A8 STMNEIA R12, {R0,R1}
.text:6045B7AC B loc_6045B7D4
.text:6045B7B0 ; ---------------------------------------------------------------------------
.text:6045B7B0
.text:6045B7B0 loc_6045B7B0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+9B4j
.text:6045B7B0 LDR R1, =(aSetdotFailed_ - 0x6045B7C0)
.text:6045B7B4 ADD R0, R0, #0x238
.text:6045B7B8 ADD R1, PC, R1 ; "setdot failed."
.text:6045B7BC BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B7C0 B loc_6045B2A0
.text:6045B7C4 ; ---------------------------------------------------------------------------
.text:6045B7C4
.text:6045B7C4 loc_6045B7C4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+C94j
.text:6045B7C4 LDR R12, [SP,#0x80+var_64]
.text:6045B7C8 CMP R12, #0
.text:6045B7CC LDMNEDB R4, {R0,R1}
.text:6045B7D0 STMNEIA R12, {R0,R1}
.text:6045B7D4
.text:6045B7D4 loc_6045B7D4 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+F44j
.text:6045B7D4 LDR R0, [R5,#0x1C]
.text:6045B7D8 B loc_6045B2EC
.text:6045B7DC ; ---------------------------------------------------------------------------
.text:6045B7DC
.text:6045B7DC loc_6045B7DC ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+620j
.text:6045B7DC LDR R1, =(aForeachExpress - 0x6045B7EC)
.text:6045B7E0 ADD R0, R0, #0x238
.text:6045B7E4 ADD R1, PC, R1 ; "foreach expression has no iterator func"...
.text:6045B7E8 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B7EC B loc_6045B2A0
.text:6045B7F0 ; ---------------------------------------------------------------------------
.text:6045B7F0
.text:6045B7F0 loc_6045B7F0 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+6ECj
.text:6045B7F0 LDR R1, =(aGetdotFailed_ - 0x6045B800)
.text:6045B7F4 ADD R0, R0, #0x238
.text:6045B7F8 ADD R1, PC, R1 ; "getdot failed."
.text:6045B7FC BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B800 B loc_6045B2A0
.text:6045B804 ; ---------------------------------------------------------------------------
.text:6045B804
.text:6045B804 loc_6045B804 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+818j
.text:6045B804 LDR R1, =(aGetthisFailed_ - 0x6045B814)
.text:6045B808 ADD R0, R0, #0x238
.text:6045B80C ADD R1, PC, R1 ; "getthis failed. this is null"
.text:6045B810 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B814 B loc_6045B2A0
.text:6045B818 ; ---------------------------------------------------------------------------
.text:6045B818
.text:6045B818 loc_6045B818 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+D74j
.text:6045B818 BL _Z17gmGetOperatorName10gmOperator ; gmGetOperatorName(gmOperator)
.text:6045B81C LDR R1, [R4,#-8]
.text:6045B820 MOV R6, R0
.text:6045B824 LDR R0, [R5,#0x1C]
.text:6045B828 BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B82C LDR R1, =(aUnaryOperatorS - 0x6045B83C)
.text:6045B830 MOV R2, R6
.text:6045B834 ADD R1, PC, R1 ; "unary operator %s undefined for type %s"
.text:6045B838 MOV R3, R0
.text:6045B83C ADD R0, R8, #0x238
.text:6045B840 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B844 B loc_6045B2A0
.text:6045B848 ; ---------------------------------------------------------------------------
.text:6045B848
.text:6045B848 loc_6045B848 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+D08j
.text:6045B848 LDR R1, =(aSetindFailed_ - 0x6045B858)
.text:6045B84C ADD R0, R0, #0x238
.text:6045B850 ADD R1, PC, R1 ; "setind failed."
.text:6045B854 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B858 B loc_6045B2A0
.text:6045B858 ; ---------------------------------------------------------------------------
.text:6045B85C off_6045B85C DCD _GLOBAL_OFFSET_TABLE_ - 0x6045A88C
.text:6045B85C ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+18r
.text:6045B860 off_6045B860 DCD aSetthisFailed_ - 0x6045B2A0
.text:6045B860 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+A28r
.text:6045B860 ; "setthis failed."
.text:6045B864 off_6045B864 DCD _ZN9gmMachine17s_machineCallbackE_ptr - 0x60A00914
.text:6045B864 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+A50r
.text:6045B868 off_6045B868 DCD aOperatorSUndef - 0x6045B660
.text:6045B868 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+DE4r
.text:6045B868 ; "operator %s undefined for type %s and %"...
.text:6045B86C off_6045B86C DCD aSetdotFailed_ - 0x6045B7C0
.text:6045B86C ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B7B0r
.text:6045B86C ; "setdot failed."
.text:6045B870 off_6045B870 DCD aForeachExpress - 0x6045B7EC
.text:6045B870 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B7DCr
.text:6045B870 ; "foreach expression has no iterator func"...
.text:6045B874 off_6045B874 DCD aGetdotFailed_ - 0x6045B800
.text:6045B874 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B7F0r
.text:6045B874 ; "getdot failed."
.text:6045B878 off_6045B878 DCD aGetthisFailed_ - 0x6045B814
.text:6045B878 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B804r
.text:6045B878 ; "getthis failed. this is null"
.text:6045B87C off_6045B87C DCD aUnaryOperatorS - 0x6045B83C
.text:6045B87C ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+FC4r
.text:6045B87C ; "unary operator %s undefined for type %s"
.text:6045B880 off_6045B880 DCD aSetindFailed_ - 0x6045B858
.text:6045B880 ; DATA XREF: gmThread::Sys_Execute(gmVariable *):loc_6045B848r
.text:6045B880 ; "setind failed."
.text:6045B884 off_6045B884 DCD aOperatorSUndef - 0x6045B8C4
.text:6045B884 ; DATA XREF: gmThread::Sys_Execute(gmVariable *)+1048r
.text:6045B884 ; "operator %s undefined for type %s and %"...
.text:6045B888 ; ---------------------------------------------------------------------------
.text:6045B888
.text:6045B888 loc_6045B888 ; CODE XREF: gmThread::Sys_Execute(gmVariable *)+8D8j
.text:6045B888 MOV R0, #2
.text:6045B88C BL _Z17gmGetOperatorName10gmOperator ; gmGetOperatorName(gmOperator)
.text:6045B890 LDR R1, [R4,#-0x10]
.text:6045B894 MOV R7, R0
.text:6045B898 LDR R0, [R5,#0x1C]
.text:6045B89C BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B8A0 LDR R1, [R4,#-8]
.text:6045B8A4 MOV R6, R0
.text:6045B8A8 LDR R0, [R5,#0x1C]
.text:6045B8AC BL _ZN9gmMachine11GetTypeNameEi ; gmMachine::GetTypeName(int)
.text:6045B8B0 LDR R1, =(aOperatorSUndef - 0x6045B8C4)
.text:6045B8B4 MOV R2, R7
.text:6045B8B8 MOV R3, R6
.text:6045B8BC ADD R1, PC, R1 ; "operator %s undefined for type %s and %"...
.text:6045B8C0 STR R0, [SP,#0x80+var_80]
.text:6045B8C4 ADD R0, R8, #0x238
.text:6045B8C8 BL _ZN5gmLog8LogEntryEPKcz ; gmLog::LogEntry(char const*,...)
.text:6045B8CC B loc_6045B2A0
.text:6045B8CC ; End of function gmThread::Sys_Execute(gmVariable *)
.text:6045B8CC
0 0
- POKEMON SHUFFLE socre
- pokemon shuffle sorce 2
- pokemon shuffle c sorce
- pokemon shuffle 3
- pokemon shuffle weak
- pokemon shuffle c sorce 2
- Pokemon Master
- Shuffle
- shuffle
- A、Pokemon Master
- ZOJ3776:Pokemon Master
- ZOJ 3776 Pokemon Master
- ZOJ 3776 Pokemon Master
- ZOJ 3776Pokemon Master
- A.Pokemon Master
- ZOJ 3776 Pokemon Master
- ZOJ 3776 Pokemon Master
- zoj-3776-Pokemon Master
- PHP有序表查找----二分查找(折半)
- Js中的window.parent ,window.top,window.self 详解 【整理】
- 【codeforces】660F. Bear and Bowling 4【分治+维护凸壳】
- 图的存储结构
- 浅谈C语言中的指针
- POKEMON SHUFFLE socre
- C++ 防止头文件重复引用
- AngularJS之ng-disabled指令
- 谈技术聊人生
- Linux IO模式及 select、poll、epoll详解
- C++ Cin输入数字时 输入字母 Cin状态出错
- (十八)ArcGIS API For Javascript之加载shp文件
- 聊聊"三遍读书法"
- ubuntu16.04安装及美化