Skip to content

Instantly share code, notes, and snippets.

@kamronbatman
Created April 19, 2017 06:12
Show Gist options
  • Save kamronbatman/a8b4a5208dac2a6f4f56e83def258159 to your computer and use it in GitHub Desktop.
Save kamronbatman/a8b4a5208dac2a6f4f56e83def258159 to your computer and use it in GitHub Desktop.
Sample0519 Generation
sub_6974 ; CODE XREF: ROM:00006B94p
var_2C = -0x2C
var_28 = -0x28
var_24 = -0x24
var_20 = -0x20
var_1C = -0x1C
PUSH {R4-R7,LR}
MOV R7, R8
PUSH {R7}
SUB SP, SP, #0x14
MOVS R6, R1
LDR R1, =0x202EA28
LDR R0, [R1]
CMP R0, #0
BNE loc_69A8
LDR R1, =0x3005AA0
LDRB R5, [R1,#0xA]
LDRB R0, [R1,#0xB]
LSLS R0, R0, #8
ORRS R5, R0
LDRB R0, [R1,#0xC]
LSLS R0, R0, #0x10
ORRS R5, R0
LDRB R0, [R1,#0xD]
LSLS R0, R0, #0x18
ORRS R5, R0
B loc_69AA
; ---------------------------------------------------------------------------
ALIGN 0x10
dword_69A0 DCD 0x202EA28 ; DATA XREF: sub_6974+Ar
dword_69A4 DCD 0x3005AA0 ; DATA XREF: sub_6974+12r
; ---------------------------------------------------------------------------
loc_69A8 ; CODE XREF: sub_6974+10j
LDR R5, [R1,#4]
loc_69AA ; CODE XREF: sub_6974+28j
BL sub_3A28
MOVS R4, R0
BL sub_3A28
LSLS R4, R4, #0x10
ORRS R4, R0
LSRS R2, R5, #0x10
LDR R3, =0xFFFF
MOVS R0, R5
ANDS R0, R3
EORS R2, R0
LDR R7, =0xFFFF0000
LSRS R1, R4, #0x10
B loc_69D8
; ---------------------------------------------------------------------------
dword_69C8 DCD 0xFFFF ; DATA XREF: sub_6974+46r
dword_69CC DCD 0xFFFF0000 ; DATA XREF: sub_6974+4Er
; ---------------------------------------------------------------------------
loc_69D0 ; CODE XREF: sub_6974+6Ej
ADDS R4, #1
MOVS R1, R4
ANDS R1, R7
LSRS R1, R1, #0x10
loc_69D8 ; CODE XREF: sub_6974+52j
EORS R1, R2
MOVS R0, R4
ANDS R0, R3
EORS R1, R0
CMP R1, #7
BLS loc_69D0
MOVS R0, R6
BL sub_3C18
LDR R0, =0x199
MOV R8, R0
LDR R7, =0x202EA3C
LDR R0, [R7,#0x14]
CMP R0, #0
BEQ loc_6A1C
LDR R0, =0xFFFF0000
ANDS R4, R0
MOVS R1, R5
ANDS R1, R0
LSRS R1, R1, #0x10
LDR R0, =0xFFFF
ANDS R0, R5
EORS R1, R0
LSRS R0, R4, #0x10
EORS R1, R0
ORRS R4, R1
MOVS R0, #8
NEGS R0, R0
ANDS R4, R0
BL sub_3A28
MOVS R1, #7
ANDS R1, R0
ORRS R4, R1
loc_6A1C ; CODE XREF: sub_6974+80j
LDRB R2, [R7]
MOVS R0, #1
STR R0, [SP,#0x2C+var_2C]
STR R4, [SP,#0x2C+var_28]
STR R0, [SP,#0x2C+var_24]
STR R5, [SP,#0x2C+var_20]
MOVS R0, R6
MOV R1, R8
MOVS R3, #0x20 ; ' '
BL sub_3C98
LDR R4, =0x202EA28
LDR R2, [R4]
CMP R2, #0
BEQ loc_6A4E
MOVS R0, R6
MOVS R1, #7
BL sub_51F0
MOVS R2, R4
ADDS R2, #8
MOVS R0, R6
MOVS R1, #0x31 ; '1'
BL sub_51F0
loc_6A4E ; CODE XREF: sub_6974+C4j
MOVS R4, #0
ADDS R5, R7, #4
loc_6A52 ; CODE XREF: sub_6974+F8j
LSLS R0, R4, #1
ADDS R1, R0, R5
LDRH R0, [R1]
CMP R0, #0
BEQ loc_6A64
MOVS R1, R0
MOVS R0, R6
BL sub_4434
loc_6A64 ; CODE XREF: sub_6974+E6j
ADDS R0, R4, #1
LSLS R0, R0, #0x18
LSRS R4, R0, #0x18
CMP R4, #3
BLS loc_6A52
BL sub_61E4
LSLS R0, R0, #0x10
MOVS R1, #0x30000
ANDS R1, R0
LSRS R1, R1, #0x10
MOVS R0, #1
ANDS R1, R0
CMP R1, #0
BNE loc_6AA0
LDR R1, =0x202EA3C
MOVS R0, #0xA9 ; '©'
B loc_6AA4
; ---------------------------------------------------------------------------
ALIGN 4
dword_6A8C DCD 0x199 ; DATA XREF: sub_6974+76r
dword_6A90 DCD 0x202EA3C ; DATA XREF: sub_6974+7Ar
; sub_6974+110r
dword_6A94 DCD 0xFFFF0000 ; DATA XREF: sub_6974+82r
dword_6A98 DCD 0xFFFF ; DATA XREF: sub_6974+8Cr
dword_6A9C DCD 0x202EA28 ; DATA XREF: sub_6974+BEr
; ---------------------------------------------------------------------------
loc_6AA0 ; CODE XREF: sub_6974+10Ej
LDR R1, =0x202EA3C
MOVS R0, #0xAA ; 'ª'
loc_6AA4 ; CODE XREF: sub_6974+114j
STRH R0, [R1,#0xC]
LDR R1, =0x202EA3C
LDRH R2, [R1,#0xC]
MOVS R0, R2
CMP R0, #0
BEQ loc_6AD8
CMP R0, #0x82 ; '‚'
BNE loc_6AC4
LDRH R1, [R1,#0xC]
MOVS R0, R6
BL sub_66F0
B loc_6AD8
; ---------------------------------------------------------------------------
ALIGN 0x10
dword_6AC0 DCD 0x202EA3C ; DATA XREF: sub_6974:loc_6AA0r
; sub_6974+132r
; ---------------------------------------------------------------------------
loc_6AC4 ; CODE XREF: sub_6974+13Ej
ADD R0, SP, #0x2C+var_1C
STRB R2, [R0]
MOVS R1, R0
LSRS R0, R2, #8
STRB R0, [R1,#1]
MOVS R0, R6
MOVS R1, #0xC
ADD R2, SP, #0x2C+var_1C
BL sub_51F0
loc_6AD8 ; CODE XREF: sub_6974+13Aj
; sub_6974+148j
LDR R0, =0x202EA3C
LDR R3, [R0,#0x10]
CMP R3, #0
BEQ loc_6B28
ADD R1, SP, #0x2C+var_1C
MOVS R2, #0
MOVS R0, #1
STRB R0, [R1]
MOVS R0, R1
STRB R2, [R0,#1]
MOVS R5, R3
LDR R0, [R5]
CMP R0, #0
BEQ loc_6B12
ADDS R4, R1, #0
loc_6AF6 ; CODE XREF: sub_6974+19Cj
LDMIA R5!, {R1}
MOVS R0, R6
ADD R2, SP, #0x2C+var_1C
BL sub_51F0
MOVS R0, #0x2A ; '*'
BL sub_2F0C
LDRB R0, [R4,#1]
ADDS R0, #1
STRB R0, [R4,#1]
LDR R0, [R5]
CMP R0, #0
BNE loc_6AF6
loc_6B12 ; CODE XREF: sub_6974+17Ej
ADD R0, SP, #0x2C+var_1C
LDRB R0, [R0,#1]
CMP R0, #0
BEQ loc_6B28
LDR R0, =0x3001D80
LDR R1, =0x1327
ADDS R0, R0, R1
LDRB R2, [R0]
MOVS R1, #8
ORRS R1, R2
STRB R1, [R0]
loc_6B28 ; CODE XREF: sub_6974+16Aj
; sub_6974+1A4j
MOV R0, R8
BL sub_5D50
LSLS R0, R0, #0x10
LSRS R0, R0, #0x10
MOVS R1, #2
BL sub_3A78
MOV R0, R8
BL sub_5D50
LSLS R0, R0, #0x10
LSRS R0, R0, #0x10
MOVS R1, #3
BL sub_3A78
ADD SP, SP, #0x14
POP {R3}
MOV R8, R3
POP {R4-R7}
POP {R0}
BX R0
; End of function sub_6974
int sub_34C();
int sub_390();
int sub_470();
int __fastcall sub_588(int a1);
int sub_64C();
int sub_754();
int __fastcall sub_804(int a1);
int sub_868();
int sub_878();
int __fastcall sub_928(int a1);
int sub_98C();
int __fastcall sub_99C(int a1, int a2, int a3);
int sub_9F0();
signed int sub_A28();
int sub_A38();
int __fastcall sub_A7C(unsigned __int8 a1, unsigned __int8 a2);
int __fastcall sub_A98(unsigned __int8 a1);
int __fastcall sub_B04(unsigned int i);
int __fastcall sub_C18(__int16 a1, __int16 a2, _WORD *a3, unsigned __int16 a4, __int16 a5);
int __fastcall sub_CE8(unsigned __int8 a1, int a2, unsigned __int16 a3, int a4, char a5);
signed int sub_EDC();
int __fastcall sub_EFC(__int16 a1, __int16 a2, __int16 a3);
int sub_F34();
int sub_1158();
int __fastcall sub_1164(int a1, __int16 a2);
int sub_1198();
int __fastcall sub_11B0(int a1, __int16 a2);
int sub_1204();
int __fastcall sub_1210(int a1, __int16 a2);
int sub_1244();
int __fastcall sub_125C(int a1, __int16 a2);
signed int sub_12B0();
int sub_139C();
int sub_14F0();
int sub_151C();
int __fastcall sub_1674(int a1, int a2, int a3, unsigned __int8 a4, unsigned __int8 a5, unsigned __int16 a6, unsigned __int16 a7);
unsigned int __fastcall sub_16F4(unsigned int a1);
unsigned int __fastcall sub_1708(unsigned __int16 a1);
int __fastcall sub_18D8(__int16 a1, int a2, int a3, unsigned __int8 a4);
int __fastcall sub_1938(int a1, int a2, signed int a3, int a4, int a5, int a6);
int __fastcall sub_2038(int a1, int a2, signed int a3, int a4, int a5, int a6);
int __fastcall sub_2758(int a1, int a2, int a3);
int __fastcall sub_27D4(int a1, __int16 a2, unsigned __int8 a3, unsigned __int8 a4, unsigned __int8 a5, unsigned __int8 a6, int a7);
int __fastcall sub_28A8(int a1, unsigned __int8 a2);
signed int __fastcall sub_293C(int a1);
_BYTE *__fastcall sub_2950(int a1, char a2);
int __fastcall sub_2994(int a1);
int __fastcall sub_29B8(int a1);
int __fastcall sub_29E0(int a1, unsigned __int8 a2, unsigned __int8 a3);
int __fastcall sub_2A90(int a1, int a2);
int __fastcall sub_2AB8(int a1, int a2, int a3);
int __fastcall sub_2B6C(int a1, char *a2);
int __fastcall sub_2C78(int a1, _BYTE *a2, _BYTE *a3, __int16 a4, unsigned __int16 a5);
int __fastcall sub_2D3C(int a1, unsigned __int8 a2, unsigned __int8 a3, unsigned __int8 a4);
int __fastcall sub_2E54(int a1, char a2, char a3, __int16 a4, int a5, char a6);
int __fastcall sub_2F0C(unsigned __int8 a1);
int __fastcall sub_2F44(unsigned __int8 a1);
int sub_2F90();
int sub_2FA4();
int sub_2FB4();
int sub_3028();
int sub_306C();
int sub_30B4();
int sub_30EC();
int sub_3124();
int sub_3134();
int __fastcall sub_3144(_DWORD); // weak
signed int __fastcall sub_324C(unsigned __int8 a1);
signed int __fastcall sub_327C(char a1);
signed int sub_33C0();
signed int __fastcall sub_33DC(signed int a1, char a2);
int __fastcall sub_3440(unsigned __int16 a1, int a2);
int __fastcall sub_34DC(unsigned __int16 a1, int a2);
int __fastcall sub_35CC(char a1, int *a2, unsigned int a3);
signed int __fastcall sub_3640(char a1);
signed int __fastcall sub_366C(unsigned __int16 a1, int a2);
signed int __fastcall sub_36AC(int a1, int a2);
signed int __fastcall sub_3764(int a1);
signed int __fastcall sub_3978(unsigned __int8 a1, int a2, unsigned __int16 a3);
signed int __fastcall sub_39E4(unsigned __int8 a1);
int __fastcall sub_39FC(int *a1, int a2);
int sub_3A28();
int __fastcall sub_3A48(int result);
int __fastcall sub_3A58(_BYTE *a1);
signed int __fastcall sub_3A78(int a1, unsigned __int8 a2);
int __fastcall sub_3C00(int a1);
int __fastcall sub_3C18(int a1);
int __fastcall sub_3C98(int a1, unsigned __int16 a2, unsigned __int8 a3, unsigned __int8 a4, char a5, int a6, char a7, int a8);
int __fastcall sub_3D08(int a1, unsigned __int16 a2, unsigned __int8 a3, unsigned __int8 a4, char a5, int a6, char a7, int a8);
int __fastcall sub_3FD4(_DWORD *a1);
int __fastcall sub_4068(int a1);
int __fastcall sub_435C(int a1);
int __fastcall sub_43C8(int a1);
int __fastcall sub_4434(int a1, unsigned __int16 a2);
signed int __fastcall sub_4448(int a1, unsigned __int16 a2);
int __fastcall sub_44B8(int a1);
int __fastcall sub_4560(int a1, unsigned __int16 a2);
int __fastcall sub_460C(int a1);
int __fastcall sub_4630(int a1);
int __fastcall sub_4654(_DWORD, _DWORD, _DWORD); // weak
int __fastcall sub_4B7C(_DWORD, _DWORD, _DWORD); // weak
int __fastcall sub_4C18(_DWORD, _DWORD, _DWORD); // weak
int __fastcall sub_51F0(_DWORD, _DWORD, _DWORD); // weak
int __fastcall sub_52E0(_DWORD, _DWORD, _DWORD); // weak
int __fastcall sub_5904(_BYTE *a1, _BYTE *a2, unsigned int a3);
signed int __fastcall sub_598C(_BYTE *a1);
int __fastcall sub_59F4(_BYTE *a1);
int __fastcall sub_5A28(unsigned __int16 a1, char a2, unsigned __int8 a3);
int __fastcall sub_5A70(int a1);
int __fastcall sub_5A98(unsigned __int8 a1, unsigned __int16 a2, int a3);
int __fastcall sub_5C48(int a1);
int __fastcall sub_5C54(int a1);
int __fastcall sub_5D50(unsigned __int16 a1);
int sub_5D74();
signed int sub_5D8C();
int __fastcall sub_5DA0(int a1);
bool __fastcall sub_5DC8(unsigned __int8 a1);
int __fastcall sub_5E00(unsigned __int8 a1, unsigned __int8 a2, unsigned __int8 a3);
int __fastcall sub_5E8C(_BYTE *a1);
int sub_5EC8();
int __fastcall sub_5F34(int a1);
int __fastcall sub_5F64(int a1);
int __fastcall sub_5F7C(int a1);
int __fastcall sub_5F94(int a1);
int __fastcall sub_5FA8(int a1);
int __fastcall sub_60BC(_BYTE *a1, int a2, int a3);
int sub_61E4();
int __fastcall sub_621C(__int16 a1, char a2, char a3, char a4);
unsigned int __fastcall sub_643C(int a1, int a2, int a3);
signed int __fastcall sub_6464(int a1, int a2, int a3);
signed int sub_64A8();
int __fastcall sub_64EC(int a1, int a2, int a3);
bool __fastcall sub_659C(int a1, int a2, int a3);
signed int __fastcall sub_66F0(int a1, __int16 a2);
int __fastcall sub_6974(int a1, int a2);
int __fastcall sub_6C78(int a1);
int __fastcall sub_6DDC(int a1);
int __fastcall sub_6DE8(int a1);
int __fastcall sub_7048(int a1);
void sub_7070();
void sub_7074();
void sub_7078();
void sub_707C();
void sub_7080();
void sub_7084();
void sub_7088();
void sub_708C();
void sub_7090();
void sub_7094();
int __fastcall sub_70B8(int result);
int sub_70DC();
signed int __fastcall sub_71A0(unsigned __int8 a1, _DWORD *a2);
int __fastcall sub_71DC(unsigned __int8 a1);
int sub_7284();
int __fastcall sub_72CC(_WORD *a1);
int __fastcall sub_7330(int a1, int a2);
int __fastcall sub_73FC(int a1, int a2);
int __fastcall sub_7494(int a1, int a2);
void sub_752C();
signed int sub_75B8();
signed int __fastcall sub_7760(unsigned __int16 a1);
int __fastcall sub_782C(_BYTE *a1, _BYTE *a2);
int sub_7908();
int sub_7938();
int sub_7A10();
signed int __fastcall sub_7A94(int a1);
signed int __fastcall sub_7B60(int a1);
signed int __fastcall sub_7C08(int a1);
signed int __fastcall sub_7D54(int a1);
unsigned __int8 __fastcall sub_7FD8(unsigned __int8 result);
unsigned __int8 __fastcall sub_807C(unsigned __int8 result);
int sub_811C();
int sub_81A8();
int sub_81BC();
int sub_81D0(void); // weak
int __fastcall sub_81D4(_DWORD, _DWORD); // weak
int __fastcall sub_81DC(_DWORD); // weak
int __fastcall sub_81E4(_DWORD, _DWORD); // weak
int __fastcall sub_81F0(_DWORD); // weak
int __fastcall sub_820C(unsigned int a1, unsigned int a2);
int nullsub_1(void); // weak
unsigned int __fastcall sub_82A4(unsigned int result, unsigned int a2);
int __fastcall sub_8374(unsigned int a1, unsigned int a2);
unsigned int __fastcall sub_83EC(unsigned int result, unsigned int a2);
int __fastcall sub_84AC(_DWORD *a1, _DWORD *a2, unsigned int a3);
_BYTE *__fastcall sub_84F4(_BYTE *a1, _BYTE *a2, unsigned int a3);
_DWORD *__fastcall sub_8554(_DWORD *a1, _DWORD *a2);
int __fastcall sub_85A0(_BYTE *a1, int a2, int a3);
signed int __fastcall sub_85D4(int a1, int a2);
int __fastcall sub_85F4(int a1, int a2, int a3);
int __fastcall sub_8668(int a1, int a2, int a3);
int sub_867C(); // weak
_BYTE *__fastcall sub_95DC(int a1, int a2, int a3, int a4, char a5, char *a6, _DWORD *a7, int a8, _DWORD *a9);
int __fastcall sub_96D0(_BYTE *a1, signed int a2, char a3);
signed int __fastcall sub_9740(int a1);
int __fastcall sub_97EC(int a1, int a2);
int __fastcall sub_9948(_DWORD, _DWORD, _DWORD, _DWORD); // weak
int __fastcall sub_A640(int a1);
int __fastcall sub_A6D4(int result, __int16 a2, __int16 a3, int a4);
int __fastcall sub_A70C(_DWORD *a1, int a2);
int __fastcall sub_A7B0(int a1);
int __fastcall sub_A7D0(int a1);
int __fastcall sub_A830(int result, int a2);
signed int __fastcall sub_A9F0(_DWORD *a1, int a2);
signed int __fastcall sub_AAB0(int a1, int a2);
int __fastcall sub_ACDC(int a1);
signed int __fastcall sub_AD1C(int a1, int a2, _DWORD *a3);
signed int sub_AD58();
signed int sub_AD78();
int __fastcall sub_AD88(int a1);
unsigned int __fastcall sub_AE64(_DWORD *a1, int a2);
int __fastcall sub_AFC0(_DWORD *a1, int a2);
signed int __fastcall sub_B380(int a1, int *a2, _BYTE *a3, int a4);
_BYTE *__fastcall sub_B3AC(_BYTE *a1, unsigned __int8 a2, unsigned int a3);
unsigned int __fastcall sub_B42C(unsigned int a1, unsigned int a2, unsigned int a3);
_BYTE *__fastcall sub_B4B4(_BYTE *a1, char a2, unsigned int a3);
int __fastcall nullsub_2(_DWORD); // weak
int __fastcall nullsub_3(_DWORD); // weak
int __fastcall sub_B510(int a1, int a2);
int __fastcall sub_B568(int result, int a2);
int __fastcall sub_B580(int a1, int a2, int a3, unsigned int a4);
signed int __fastcall sub_B69C(int a1);
signed int __fastcall sub_B6F4(unsigned int *a1);
int __fastcall sub_B778(int a1, int a2);
int __fastcall sub_B78C(int a1, int a2, int a3);
int __fastcall sub_B8F8(int a1, int a2, signed int a3);
int __fastcall sub_B990(int a1, int a2, signed int a3);
int __fastcall sub_BA30(int a1, int a2);
int __fastcall sub_BA70(int a1, int a2, int a3);
__int64 __fastcall sub_BBAC(int a1, _DWORD *a2);
int __fastcall sub_BC68(int a1, int a2, int a3, _DWORD *a4, _DWORD *a5);
unsigned int __fastcall sub_BDE0(int a1, unsigned int a2);
unsigned int __fastcall sub_BE04(int a1, unsigned int a2);
int __fastcall sub_BE24(_DWORD *a1, int a2);
int __fastcall sub_BF14(_DWORD *a1, _DWORD *a2);
int __fastcall sub_BF70(_DWORD *a1);
signed int __fastcall sub_BFB4(int a1);
int __fastcall sub_BFD4(int a1);
int sub_C090();
int __fastcall sub_C0A4(int a1);
int __fastcall sub_C0B8(int result);
int __fastcall sub_C0D0(int a1, int a2, int a3);
int __fastcall sub_C0F4(int a1, int a2, int a3);
signed int __fastcall sub_C13C(int a1, int a2, int a3);
int __fastcall sub_C1C0(int a1, int a2, int a3);
int __fastcall sub_C1CC(int a1, int a2, int a3);
int __fastcall sub_C1F0(int a1, int a2, int a3);
int __fastcall sub_C23C(_DWORD *a1, __int16 a2);
int __fastcall sub_C2F0(int a1);
int __fastcall sub_C324(int a1);
int __fastcall sub_C374(int a1);
int __fastcall sub_C3B0(int a1, int a2);
int __fastcall sub_C418(_DWORD *a1, int a2, int a3, int a4);
int __fastcall sub_C448(_DWORD *a1, int a2, int a3);
int __fastcall sub_C4A0(_DWORD *a1, int a2);
int sub_C4CC();
int __fastcall sub_C4D8(_DWORD *a1, int a2, int a3);
int sub_C504();
signed int sub_C524();
int __fastcall sub_C52C(_DWORD *a1, int a2, int a3, int a4);
int __fastcall sub_C55C(_DWORD *a1, int a2, int a3, int a4);
unsigned int __fastcall sub_C58C(int a1);
int __fastcall sub_C6D4(int a1, int a2);
signed int __fastcall sub_C7AC(int a1, int a2, int a3);
unsigned int __fastcall sub_CA18(int a1, int a2, int a3, int a4);
unsigned int __fastcall sub_CA48(int a1, int a2, int a3, int a4);
unsigned int __fastcall sub_CA80(int a1, int a2, int a3, int a4);
unsigned int __fastcall sub_CD28(int a1, int a2, int a3, int a4);
int __fastcall sub_CEB0(int a1, int a2);
int __fastcall sub_CFDC(int a1, int a2, int a3, int a4);
int __fastcall sub_D028(int a1, int a2, int a3, int a4);
int __fastcall sub_D074(int a1, int a2, int a3, int a4);
int __fastcall sub_D10C(int a1, int a2, int a3, int a4);
int __fastcall sub_D158(int a1, int a2, int a3, int a4);
unsigned int __fastcall sub_D1A4(__int64 a1);
int __fastcall sub_D220(int a1, int a2);
unsigned int __fastcall sub_D294(int a1, int a2);
unsigned int __fastcall sub_D2BC(int a1, int a2, int a3, int a4, int a5);
unsigned int __fastcall sub_D328(int a1);
int __fastcall sub_D3E0(unsigned int *a1, int a2);
signed int __fastcall sub_D45C(int a1, int a2, int a3);
int __fastcall sub_D888(int a1, int a2);
unsigned int __fastcall sub_DC30(int a1, int a2, int a3, int a4);
int __fastcall sub_DC74(int result, unsigned int a2, int a3);
unsigned int __fastcall sub_DCA8(unsigned int a1, int a2, unsigned int a3);
int __fastcall sub_DD18(int a1);
//----- (00006974) --------------------------------------------------------
int __fastcall sub_6974(int a1, int a2)
{
int v2; // r6@1
unsigned int v3; // r5@2
int v4; // r4@4
unsigned int v5; // r4@4
unsigned int i; // r1@4
unsigned int v7; // r4@11
int *v9; // r5@19
int v10; // r1@20
unsigned __int16 v11; // r0@23
unsigned __int16 v12; // r0@23
__int16 v14; // [sp+10h] [bp-1Ch]@17
int v15; // [sp+28h] [bp-4h]@23
v2 = a2;
if ( v202EA28 )
v3 = v202EA2C;
else
v3 = v3005AAA | (v3005AAB << 8) | (v3005AAC << 16) | (v3005AAD << 24);
v4 = sub_3A28();
v5 = (v4 << 16) | sub_3A28();
for ( i = v5 >> 16; (i ^ (v3 >> 16) ^ (unsigned __int16)v3 ^ (unsigned __int16)v5) <= 7; i = (v5 & 0xFFFF0000) >> 16 )
++v5;
sub_3C18(v2);
if ( v202EA50 )
v5 = (v5 & 0xFFFF0000 | ((v3 & 0xFFFF0000) >> 16) ^ (unsigned __int16)v3 ^ ((v5 & 0xFFFF0000) >> 16)) & 0xFFFFFFF8 | sub_3A28() & 7;
sub_3C98(v2, 0x199u, v202EA3C, 0x20u, 1, v5, 1, v3);
if ( v202EA28 )
{
sub_51F0(v2, 7, v202EA28);
sub_51F0(v2, 49, 33745456);
}
v7 = 0;
do
{
if ( *(_WORD *)(2 * v7 + 0x202EA40) )
sub_4434(v2, *(_WORD *)(2 * v7 + 0x202EA40));
v7 = (v7 + 1) & 0xFF;
}
while ( v7 <= 3 );
sub_61E4();
v202EA48 = 169;
v14 = v202EA48;
sub_51F0(v2, 12, &v14);
if ( v202EA4C )
{
v14 = 1;
v9 = (int *)v202EA4C;
if ( *v202EA4C )
{
do
{
v10 = *v9;
++v9;
sub_51F0(v2, v10, &v14);
sub_2F0C(0x2Au);
++HIBYTE(v14);
}
while ( *v9 );
}
if ( HIBYTE(v14) )
v30030A7 |= 8u;
}
v11 = sub_5D50(0x199u);
sub_3A78(v11, 2u);
v12 = sub_5D50(0x199u);
sub_3A78(v12, 3u);
return v15;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment