Created
September 22, 2014 17:44
-
-
Save volpino/5750c9c89970a5245b77 to your computer and use it in GitHub Desktop.
wololo.lst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
__text:00000A80 ; =========================================================================== | |
__text:00000A80 | |
__text:00000A80 ; Segment type: Pure code | |
__text:00000A80 AREA __text, CODE, READWRITE | |
__text:00000A80 ; ORG 0xA80 | |
__text:00000A80 CODE16 | |
__text:00000A80 | |
__text:00000A80 ; =============== S U B R O U T I N E ======================================= | |
__text:00000A80 | |
__text:00000A80 | |
__text:00000A80 EXPORT _col_size | |
__text:00000A80 _col_size ; CODE XREF: _validate_database+DEp | |
__text:00000A80 ; _check_login+48p ... | |
__text:00000A80 | |
__text:00000A80 var_C = -0xC | |
__text:00000A80 var_8 = -8 | |
__text:00000A80 var_4 = -4 | |
__text:00000A80 | |
__text:00000A80 SUB SP, SP, #0xC | |
__text:00000A82 STR R0, [SP,#0xC+var_8] | |
__text:00000A84 LDRB R0, [R0] | |
__text:00000A86 CMP R0, #7 | |
__text:00000A88 STR R0, [SP,#0xC+var_C] | |
__text:00000A8A BHI loc_AEA | |
__text:00000A8C LDR R1, [SP,#0xC+var_C] | |
__text:00000A8E TBB.W [PC,R1] ; switch 8 cases | |
__text:00000A8E ; --------------------------------------------------------------------------- | |
__text:00000A92 jpt_A8E DCB 4 ; jump table for switch statement | |
__text:00000A93 DCB 9 | |
__text:00000A94 DCB 0xE | |
__text:00000A95 DCB 0x13 | |
__text:00000A96 DCB 0x18 | |
__text:00000A97 DCB 0x1D | |
__text:00000A98 DCB 0x22 | |
__text:00000A99 DCB 0x27 | |
__text:00000A9A ; --------------------------------------------------------------------------- | |
__text:00000A9A | |
__text:00000A9A loc_A9A ; CODE XREF: _col_size+Ej | |
__text:00000A9A MOVS R0, #1 ; jumptable 00000A8E case 0 | |
__text:00000AA0 STR R0, [SP,#0xC+var_4] | |
__text:00000AA2 B loc_AF2 | |
__text:00000AA4 ; --------------------------------------------------------------------------- | |
__text:00000AA4 | |
__text:00000AA4 loc_AA4 ; CODE XREF: _col_size+Ej | |
__text:00000AA4 MOVS R0, #2 ; jumptable 00000A8E case 1 | |
__text:00000AAA STR R0, [SP,#0xC+var_4] | |
__text:00000AAC B loc_AF2 | |
__text:00000AAE ; --------------------------------------------------------------------------- | |
__text:00000AAE | |
__text:00000AAE loc_AAE ; CODE XREF: _col_size+Ej | |
__text:00000AAE MOVS R0, #4 ; jumptable 00000A8E case 2 | |
__text:00000AB4 STR R0, [SP,#0xC+var_4] | |
__text:00000AB6 B loc_AF2 | |
__text:00000AB8 ; --------------------------------------------------------------------------- | |
__text:00000AB8 | |
__text:00000AB8 loc_AB8 ; CODE XREF: _col_size+Ej | |
__text:00000AB8 MOVS R0, #8 ; jumptable 00000A8E case 3 | |
__text:00000ABE STR R0, [SP,#0xC+var_4] | |
__text:00000AC0 B loc_AF2 | |
__text:00000AC2 ; --------------------------------------------------------------------------- | |
__text:00000AC2 | |
__text:00000AC2 loc_AC2 ; CODE XREF: _col_size+Ej | |
__text:00000AC2 MOVS R0, #8 ; jumptable 00000A8E case 4 | |
__text:00000AC8 STR R0, [SP,#0xC+var_4] | |
__text:00000ACA B loc_AF2 | |
__text:00000ACC ; --------------------------------------------------------------------------- | |
__text:00000ACC | |
__text:00000ACC loc_ACC ; CODE XREF: _col_size+Ej | |
__text:00000ACC MOVS R0, #0x10 ; jumptable 00000A8E case 5 | |
__text:00000AD2 STR R0, [SP,#0xC+var_4] | |
__text:00000AD4 B loc_AF2 | |
__text:00000AD6 ; --------------------------------------------------------------------------- | |
__text:00000AD6 | |
__text:00000AD6 loc_AD6 ; CODE XREF: _col_size+Ej | |
__text:00000AD6 MOVS R0, #0x20 ; ' ' ; jumptable 00000A8E case 6 | |
__text:00000ADC STR R0, [SP,#0xC+var_4] | |
__text:00000ADE B loc_AF2 | |
__text:00000AE0 ; --------------------------------------------------------------------------- | |
__text:00000AE0 | |
__text:00000AE0 loc_AE0 ; CODE XREF: _col_size+Ej | |
__text:00000AE0 MOVS R0, #4 ; jumptable 00000A8E case 7 | |
__text:00000AE6 STR R0, [SP,#0xC+var_4] | |
__text:00000AE8 B loc_AF2 | |
__text:00000AEA ; --------------------------------------------------------------------------- | |
__text:00000AEA | |
__text:00000AEA loc_AEA ; CODE XREF: _col_size+Aj | |
__text:00000AEA MOVS R0, #0 | |
__text:00000AF0 STR R0, [SP,#0xC+var_4] | |
__text:00000AF2 | |
__text:00000AF2 loc_AF2 ; CODE XREF: _col_size+22j | |
__text:00000AF2 ; _col_size+2Cj ... | |
__text:00000AF2 LDR R0, [SP,#0xC+var_4] | |
__text:00000AF4 ADD SP, SP, #0xC | |
__text:00000AF6 BX LR | |
__text:00000AF6 ; End of function _col_size | |
__text:00000AF6 | |
__text:00000AF8 | |
__text:00000AF8 ; =============== S U B R O U T I N E ======================================= | |
__text:00000AF8 | |
__text:00000AF8 | |
__text:00000AF8 EXPORT _validate_database | |
__text:00000AF8 _validate_database | |
__text:00000AF8 | |
__text:00000AF8 var_2C = -0x2C | |
__text:00000AF8 var_28 = -0x28 | |
__text:00000AF8 var_24 = -0x24 | |
__text:00000AF8 var_20 = -0x20 | |
__text:00000AF8 var_1C = -0x1C | |
__text:00000AF8 var_18 = -0x18 | |
__text:00000AF8 var_14 = -0x14 | |
__text:00000AF8 var_10 = -0x10 | |
__text:00000AF8 var_C = -0xC | |
__text:00000AF8 | |
__text:00000AF8 PUSH {R7,LR} | |
__text:00000AFA MOV R7, SP | |
__text:00000AFC SUB SP, SP, #0x24 | |
__text:00000AFE MOVS R2, #0xC | |
__text:00000B04 STR R0, [SP,#0x2C+var_10] | |
__text:00000B06 STR R1, [SP,#0x2C+var_14] | |
__text:00000B08 LDR R0, [SP,#0x2C+var_10] | |
__text:00000B0A STR R0, [SP,#0x2C+var_18] | |
__text:00000B0C STR R2, [SP,#0x2C+var_1C] | |
__text:00000B0E LDR R0, [SP,#0x2C+var_14] | |
__text:00000B10 LDR R1, [SP,#0x2C+var_1C] | |
__text:00000B12 CMP R0, R1 | |
__text:00000B14 BCS loc_B20 | |
__text:00000B16 MOVS R0, #0 | |
__text:00000B1C STR R0, [SP,#0x2C+var_C] | |
__text:00000B1E B loc_C2A | |
__text:00000B20 ; --------------------------------------------------------------------------- | |
__text:00000B20 | |
__text:00000B20 loc_B20 ; CODE XREF: _validate_database+1Cj | |
__text:00000B20 MOV R0, #0x4F4C4F57 | |
__text:00000B28 LDR R1, [SP,#0x2C+var_18] | |
__text:00000B2A LDR R1, [R1] | |
__text:00000B2C CMP R1, R0 | |
__text:00000B2E BEQ loc_B3A | |
__text:00000B30 MOVS R0, #0 | |
__text:00000B36 STR R0, [SP,#0x2C+var_C] | |
__text:00000B38 B loc_C2A | |
__text:00000B3A ; --------------------------------------------------------------------------- | |
__text:00000B3A | |
__text:00000B3A loc_B3A ; CODE XREF: _validate_database+36j | |
__text:00000B3A LDR R0, [SP,#0x2C+var_18] | |
__text:00000B3C LDR R0, [R0,#4] | |
__text:00000B3E CMP R0, #1 | |
__text:00000B40 BEQ loc_B4C | |
__text:00000B42 MOVS R0, #0 | |
__text:00000B48 STR R0, [SP,#0x2C+var_C] | |
__text:00000B4A B loc_C2A | |
__text:00000B4C ; --------------------------------------------------------------------------- | |
__text:00000B4C | |
__text:00000B4C loc_B4C ; CODE XREF: _validate_database+48j | |
__text:00000B4C LDR R0, [SP,#0x2C+var_18] | |
__text:00000B4E LDRH R0, [R0,#0xA] | |
__text:00000B50 CMP R0, #4 | |
__text:00000B52 BGE loc_B5E | |
__text:00000B54 MOVS R0, #0 | |
__text:00000B5A STR R0, [SP,#0x2C+var_C] | |
__text:00000B5C B loc_C2A | |
__text:00000B5E ; --------------------------------------------------------------------------- | |
__text:00000B5E | |
__text:00000B5E loc_B5E ; CODE XREF: _validate_database+5Aj | |
__text:00000B5E LDR R0, [SP,#0x2C+var_18] | |
__text:00000B60 LDRH R0, [R0,#0xA] | |
__text:00000B62 CMP.W R0, #0x1000 | |
__text:00000B66 BLE loc_B72 | |
__text:00000B68 MOVS R0, #0 | |
__text:00000B6E STR R0, [SP,#0x2C+var_C] | |
__text:00000B70 B loc_C2A | |
__text:00000B72 ; --------------------------------------------------------------------------- | |
__text:00000B72 | |
__text:00000B72 loc_B72 ; CODE XREF: _validate_database+6Ej | |
__text:00000B72 LDR R0, [SP,#0x2C+var_18] | |
__text:00000B74 LDRH R0, [R0,#8] | |
__text:00000B76 CMP R0, #4 | |
__text:00000B78 BGE loc_B84 | |
__text:00000B7A MOVS R0, #0 | |
__text:00000B80 STR R0, [SP,#0x2C+var_C] | |
__text:00000B82 B loc_C2A | |
__text:00000B84 ; --------------------------------------------------------------------------- | |
__text:00000B84 | |
__text:00000B84 loc_B84 ; CODE XREF: _validate_database+80j | |
__text:00000B84 LDR R0, [SP,#0x2C+var_18] | |
__text:00000B86 LDRH R0, [R0,#8] | |
__text:00000B88 CMP R0, #0x10 | |
__text:00000B8A BLE loc_B96 | |
__text:00000B8C MOVS R0, #0 | |
__text:00000B92 STR R0, [SP,#0x2C+var_C] | |
__text:00000B94 B loc_C2A | |
__text:00000B96 ; --------------------------------------------------------------------------- | |
__text:00000B96 | |
__text:00000B96 loc_B96 ; CODE XREF: _validate_database+92j | |
__text:00000B96 LDR R0, [SP,#0x2C+var_18] | |
__text:00000B98 LDRH R0, [R0,#8] | |
__text:00000B9A MOVS R1, #0x11 ; multiply number of cols * 0x11, every col is 16 chars + type -> 0x11=17 bytes | |
__text:00000BA0 MULS R0, R1 | |
__text:00000BA2 LDR R1, [SP,#0x2C+var_1C] | |
__text:00000BA4 ADD R0, R1 | |
__text:00000BA6 STR R0, [SP,#0x2C+var_1C] | |
__text:00000BA8 LDR R0, [SP,#0x2C+var_14] | |
__text:00000BAA LDR R1, [SP,#0x2C+var_1C] | |
__text:00000BAC CMP R0, R1 | |
__text:00000BAE BCS loc_BBA | |
__text:00000BB0 MOVS R0, #0 | |
__text:00000BB6 STR R0, [SP,#0x2C+var_C] | |
__text:00000BB8 B loc_C2A | |
__text:00000BBA ; --------------------------------------------------------------------------- | |
__text:00000BBA | |
__text:00000BBA loc_BBA ; CODE XREF: _validate_database+B6j | |
__text:00000BBA MOVS R0, #0 | |
__text:00000BC0 STR R0, [SP,#0x2C+var_20] | |
__text:00000BC2 LDR R1, [SP,#0x2C+var_10] | |
__text:00000BC4 ADDS R1, #0xC | |
__text:00000BC6 STR R1, [SP,#0x2C+var_24] | |
__text:00000BC8 STR R0, [SP,#0x2C+var_28] | |
__text:00000BCA ; CHECK COLUMNS | |
__text:00000BCA loc_BCA ; CODE XREF: _validate_database+108j | |
__text:00000BCA LDR R0, [SP,#0x2C+var_28] | |
__text:00000BCC LDR R1, [SP,#0x2C+var_18] | |
__text:00000BCE LDRH R1, [R1,#8] | |
__text:00000BD0 CMP R0, R1 | |
__text:00000BD2 BCS loc_C02 | |
__text:00000BD4 LDR R0, [SP,#0x2C+var_24] | |
__text:00000BD6 BL _col_size | |
__text:00000BDA STR R0, [SP,#0x2C+var_2C] | |
__text:00000BDC LDR R0, [SP,#0x2C+var_2C] | |
__text:00000BDE CMP R0, #0 | |
__text:00000BE0 BNE loc_BEC | |
__text:00000BE2 MOVS R0, #0 | |
__text:00000BE8 STR R0, [SP,#0x2C+var_C] | |
__text:00000BEA B loc_C2A | |
__text:00000BEC ; --------------------------------------------------------------------------- | |
__text:00000BEC | |
__text:00000BEC loc_BEC ; CODE XREF: _validate_database+E8j | |
__text:00000BEC LDR R0, [SP,#0x2C+var_2C] | |
__text:00000BEE LDR R1, [SP,#0x2C+var_20] | |
__text:00000BF0 ADD R0, R1 | |
__text:00000BF2 STR R0, [SP,#0x2C+var_20] | |
__text:00000BF4 LDR R0, [SP,#0x2C+var_24] | |
__text:00000BF6 ADDS R0, #0x11 | |
__text:00000BF8 STR R0, [SP,#0x2C+var_24] | |
__text:00000BFA LDR R0, [SP,#0x2C+var_28] | |
__text:00000BFC ADDS R0, #1 | |
__text:00000BFE STR R0, [SP,#0x2C+var_28] | |
__text:00000C00 B loc_BCA ; LOOP! Check all the columns | |
__text:00000C02 ; --------------------------------------------------------------------------- | |
__text:00000C02 ; CHECK ROWS | |
__text:00000C02 loc_C02 ; CODE XREF: _validate_database+DAj | |
__text:00000C02 LDR R0, [SP,#0x2C+var_20] | |
__text:00000C04 LDR R1, [SP,#0x2C+var_18] | |
__text:00000C06 LDRH R1, [R1,#0xA] | |
__text:00000C08 MULS R0, R1 | |
__text:00000C0A LDR R1, [SP,#0x2C+var_1C] | |
__text:00000C0C ADD R0, R1 | |
__text:00000C0E STR R0, [SP,#0x2C+var_1C] | |
__text:00000C10 LDR R0, [SP,#0x2C+var_14] | |
__text:00000C12 LDR R1, [SP,#0x2C+var_1C] | |
__text:00000C14 CMP R0, R1 | |
__text:00000C16 BCS loc_C22 | |
__text:00000C18 MOVS R0, #0 | |
__text:00000C1E STR R0, [SP,#0x2C+var_C] | |
__text:00000C20 B loc_C2A | |
__text:00000C22 ; --------------------------------------------------------------------------- | |
__text:00000C22 | |
__text:00000C22 loc_C22 ; CODE XREF: _validate_database+11Ej | |
__text:00000C22 MOVS R0, #1 | |
__text:00000C28 STR R0, [SP,#0x2C+var_C] | |
__text:00000C2A | |
__text:00000C2A loc_C2A ; CODE XREF: _validate_database+26j | |
__text:00000C2A ; _validate_database+40j ... | |
__text:00000C2A LDR R0, [SP,#0x2C+var_C] | |
__text:00000C2C ADD SP, SP, #0x24 | |
__text:00000C2E POP {R7,PC} | |
__text:00000C2E ; End of function _validate_database | |
__text:00000C2E | |
__text:00000C30 | |
__text:00000C30 ; =============== S U B R O U T I N E ======================================= | |
__text:00000C30 | |
__text:00000C30 | |
__text:00000C30 EXPORT _check_login | |
__text:00000C30 _check_login | |
__text:00000C30 | |
__text:00000C30 var_6C = -0x6C | |
__text:00000C30 var_68 = -0x68 | |
__text:00000C30 var_64 = -0x64 | |
__text:00000C30 var_60 = -0x60 | |
__text:00000C30 var_5C = -0x5C | |
__text:00000C30 var_58 = -0x58 | |
__text:00000C30 var_54 = -0x54 | |
__text:00000C30 var_50 = -0x50 | |
__text:00000C30 var_4C = -0x4C | |
__text:00000C30 var_48 = -0x48 | |
__text:00000C30 var_44 = -0x44 | |
__text:00000C30 var_40 = -0x40 | |
__text:00000C30 var_3C = -0x3C | |
__text:00000C30 var_38 = -0x38 | |
__text:00000C30 var_34 = -0x34 | |
__text:00000C30 var_30 = -0x30 | |
__text:00000C30 var_2C = -0x2C | |
__text:00000C30 var_28 = -0x28 | |
__text:00000C30 var_24 = -0x24 | |
__text:00000C30 var_20 = -0x20 | |
__text:00000C30 var_1C = -0x1C | |
__text:00000C30 var_18 = -0x18 | |
__text:00000C30 var_14 = -0x14 | |
__text:00000C30 var_10 = -0x10 | |
__text:00000C30 var_C = -0xC | |
__text:00000C30 | |
__text:00000C30 PUSH {R7,LR} | |
__text:00000C32 MOV R7, SP | |
__text:00000C34 SUB SP, SP, #0x64 | |
__text:00000C36 MOVS R2, #0 | |
__text:00000C3C STR R0, [SP,#0x6C+var_10] | |
__text:00000C3E STR R1, [SP,#0x6C+var_14] | |
__text:00000C40 LDR R0, [SP,#0x6C+var_10] | |
__text:00000C42 STR R0, [SP,#0x6C+var_18] | |
__text:00000C44 LDR R0, [SP,#0x6C+var_10] | |
__text:00000C46 ADDS R0, #0xC | |
__text:00000C48 STR R0, [SP,#0x6C+var_1C] | |
__text:00000C4A LDR R0, [SP,#0x6C+var_10] | |
__text:00000C4C ADDS R0, #0xC | |
__text:00000C4E STR R0, [SP,#0x6C+var_20] | |
__text:00000C50 LDR R0, [SP,#0x6C+var_18] | |
__text:00000C52 LDRH R0, [R0,#8] | |
__text:00000C54 MOVS R1, #0x11 | |
__text:00000C5A MULS R0, R1 | |
__text:00000C5C LDR R1, [SP,#0x6C+var_20] | |
__text:00000C5E ADD R0, R1 | |
__text:00000C60 STR R0, [SP,#0x6C+var_20] | |
__text:00000C62 STR R2, [SP,#0x6C+var_24] | |
__text:00000C64 LDR R0, [SP,#0x6C+var_10] | |
__text:00000C66 ADDS R0, #0xC | |
__text:00000C68 STR R0, [SP,#0x6C+var_28] | |
__text:00000C6A STR R2, [SP,#0x6C+var_2C] | |
__text:00000C6C | |
__text:00000C6C loc_C6C ; CODE XREF: _check_login+72j | |
__text:00000C6C LDR R0, [SP,#0x6C+var_2C] | |
__text:00000C6E LDR R1, [SP,#0x6C+var_18] | |
__text:00000C70 LDRH R1, [R1,#8] | |
__text:00000C72 CMP R0, R1 | |
__text:00000C74 BCS loc_CA4 | |
__text:00000C76 LDR R0, [SP,#0x6C+var_28] | |
__text:00000C78 BL _col_size | |
__text:00000C7C STR R0, [SP,#0x6C+var_30] | |
__text:00000C7E LDR R0, [SP,#0x6C+var_30] | |
__text:00000C80 CMP R0, #0 | |
__text:00000C82 BNE loc_C8E | |
__text:00000C84 MOVS R0, #0 | |
__text:00000C8A STR R0, [SP,#0x6C+var_C] | |
__text:00000C8C B loc_F1C | |
__text:00000C8E ; --------------------------------------------------------------------------- | |
__text:00000C8E | |
__text:00000C8E loc_C8E ; CODE XREF: _check_login+52j | |
__text:00000C8E LDR R0, [SP,#0x6C+var_30] | |
__text:00000C90 LDR R1, [SP,#0x6C+var_24] | |
__text:00000C92 ADD R0, R1 | |
__text:00000C94 STR R0, [SP,#0x6C+var_24] | |
__text:00000C96 LDR R0, [SP,#0x6C+var_28] | |
__text:00000C98 ADDS R0, #0x11 | |
__text:00000C9A STR R0, [SP,#0x6C+var_28] | |
__text:00000C9C LDR R0, [SP,#0x6C+var_2C] | |
__text:00000C9E ADDS R0, #1 | |
__text:00000CA0 STR R0, [SP,#0x6C+var_2C] | |
__text:00000CA2 B loc_C6C | |
__text:00000CA4 ; --------------------------------------------------------------------------- | |
__text:00000CA4 | |
__text:00000CA4 loc_CA4 ; CODE XREF: _check_login+44j | |
__text:00000CA4 LDR R0, [SP,#0x6C+var_20] | |
__text:00000CA6 STR R0, [SP,#0x6C+var_28] | |
__text:00000CA8 LDR R0, [SP,#0x6C+var_10] | |
__text:00000CAA LDR R1, [SP,#0x6C+var_14] | |
__text:00000CAC ADD R0, R1 | |
__text:00000CAE STR R0, [SP,#0x6C+var_34] | |
__text:00000CB0 | |
__text:00000CB0 loc_CB0 ; CODE XREF: _check_login+2E2j | |
__text:00000CB0 LDR R0, [SP,#0x6C+var_28] | |
__text:00000CB2 LDR R1, [SP,#0x6C+var_34] | |
__text:00000CB4 CMP R0, R1 | |
__text:00000CB6 BCS.W loc_F14 | |
__text:00000CBA MOVS R0, #0 | |
__text:00000CC0 LDR R1, [SP,#0x6C+var_28] | |
__text:00000CC2 STR R1, [SP,#0x6C+var_38] | |
__text:00000CC4 STR R0, [SP,#0x6C+var_3C] | |
__text:00000CC6 STR R0, [SP,#0x6C+var_40] | |
__text:00000CC8 STR R0, [SP,#0x6C+var_44] | |
__text:00000CCA STR R0, [SP,#0x6C+var_48] | |
__text:00000CCC STR R0, [SP,#0x6C+var_4C] | |
__text:00000CCE | |
__text:00000CCE loc_CCE ; CODE XREF: _check_login+296j | |
__text:00000CCE LDR R0, [SP,#0x6C+var_4C] | |
__text:00000CD0 LDR R1, [SP,#0x6C+var_18] | |
__text:00000CD2 LDRH R1, [R1,#8] | |
__text:00000CD4 CMP R0, R1 | |
__text:00000CD6 BCS.W loc_EC8 | |
__text:00000CDA MOV R1, #(aUsername - 0xCE6) ; "USERNAME" | |
__text:00000CE2 ADD R1, PC ; "USERNAME" | |
__text:00000CE4 MOVS R2, #8 ; size_t | |
__text:00000CEA LDR R0, [SP,#0x6C+var_4C] | |
__text:00000CEC LDR R3, [SP,#0x6C+var_1C] | |
__text:00000CEE MOV R9, #0x11 | |
__text:00000CF6 MUL.W R0, R0, R9 | |
__text:00000CFA ADD R0, R3 | |
__text:00000CFC ADDS R0, #1 ; char * | |
__text:00000CFE BLX _strncmp | |
__text:00000D02 CMP R0, #0 | |
__text:00000D04 BNE loc_D3E | |
__text:00000D06 LDR R0, [SP,#0x6C+var_4C] | |
__text:00000D08 LDR R1, [SP,#0x6C+var_1C] | |
__text:00000D0A MOVS R2, #0x11 | |
__text:00000D10 MULS R0, R2 | |
__text:00000D12 ADD R0, R1 | |
__text:00000D14 LDRB R0, [R0] | |
__text:00000D16 CMP R0, #5 | |
__text:00000D18 BNE loc_D3E | |
__text:00000D1A MOV R1, #(aCaptainfalcon - 0xD26) ; "captainfalcon" | |
__text:00000D22 ADD R1, PC ; "captainfalcon" | |
__text:00000D24 MOVS R2, #0xE ; size_t | |
__text:00000D2A LDR R0, [SP,#0x6C+var_38] ; char * | |
__text:00000D2C BLX _strncmp | |
__text:00000D30 CMP R0, #0 | |
__text:00000D32 BNE loc_D3C | |
__text:00000D34 MOVS R0, #1 | |
__text:00000D3A STR R0, [SP,#0x6C+var_3C] | |
__text:00000D3C | |
__text:00000D3C loc_D3C ; CODE XREF: _check_login+102j | |
__text:00000D3C B loc_D3E | |
__text:00000D3E ; --------------------------------------------------------------------------- | |
__text:00000D3E | |
__text:00000D3E loc_D3E ; CODE XREF: _check_login+D4j | |
__text:00000D3E ; _check_login+E8j ... | |
__text:00000D3E MOV R1, #(aPassword - 0xD4A) ; "PASSWORD" | |
__text:00000D46 ADD R1, PC ; "PASSWORD" | |
__text:00000D48 MOVS R2, #8 ; size_t | |
__text:00000D4E LDR R0, [SP,#0x6C+var_4C] | |
__text:00000D50 LDR R3, [SP,#0x6C+var_1C] | |
__text:00000D52 MOV R9, #0x11 | |
__text:00000D5A MUL.W R0, R0, R9 | |
__text:00000D5E ADD R0, R3 | |
__text:00000D60 ADDS R0, #1 ; char * | |
__text:00000D62 BLX _strncmp | |
__text:00000D66 CMP R0, #0 | |
__text:00000D68 BNE loc_DA2 | |
__text:00000D6A LDR R0, [SP,#0x6C+var_4C] | |
__text:00000D6C LDR R1, [SP,#0x6C+var_1C] | |
__text:00000D6E MOVS R2, #0x11 | |
__text:00000D74 MULS R0, R2 | |
__text:00000D76 ADD R0, R1 | |
__text:00000D78 LDRB R0, [R0] | |
__text:00000D7A CMP R0, #6 | |
__text:00000D7C BNE loc_DA2 | |
__text:00000D7E MOV R1, #(aFc03329505475d - 0xD8A) ; "fc03329505475dd4be51627cc7f0b1f1" | |
__text:00000D86 ADD R1, PC ; "fc03329505475dd4be51627cc7f0b1f1" | |
__text:00000D88 MOVS R2, #0x20 ; ' ' ; size_t | |
__text:00000D8E LDR R0, [SP,#0x6C+var_38] ; char * | |
__text:00000D90 BLX _strncmp | |
__text:00000D94 CMP R0, #0 | |
__text:00000D96 BNE loc_DA0 | |
__text:00000D98 MOVS R0, #1 | |
__text:00000D9E STR R0, [SP,#0x6C+var_40] | |
__text:00000DA0 | |
__text:00000DA0 loc_DA0 ; CODE XREF: _check_login+166j | |
__text:00000DA0 B loc_DA2 | |
__text:00000DA2 ; --------------------------------------------------------------------------- | |
__text:00000DA2 | |
__text:00000DA2 loc_DA2 ; CODE XREF: _check_login+138j | |
__text:00000DA2 ; _check_login+14Cj ... | |
__text:00000DA2 MOV R1, #(aAdmin - 0xDAE) ; "ADMIN" | |
__text:00000DAA ADD R1, PC ; "ADMIN" | |
__text:00000DAC MOVS R2, #5 ; size_t | |
__text:00000DB2 LDR R0, [SP,#0x6C+var_4C] | |
__text:00000DB4 LDR R3, [SP,#0x6C+var_1C] | |
__text:00000DB6 MOV R9, #0x11 | |
__text:00000DBE MUL.W R0, R0, R9 | |
__text:00000DC2 ADD R0, R3 | |
__text:00000DC4 ADDS R0, #1 ; char * | |
__text:00000DC6 BLX _strncmp | |
__text:00000DCA CMP R0, #0 | |
__text:00000DCC BNE loc_E0C | |
__text:00000DCE LDR R0, [SP,#0x6C+var_4C] | |
__text:00000DD0 LDR R1, [SP,#0x6C+var_1C] | |
__text:00000DD2 MOVS R2, #0x11 | |
__text:00000DD8 MULS R0, R2 | |
__text:00000DDA ADD R0, R1 | |
__text:00000DDC LDRB R0, [R0] | |
__text:00000DDE CMP R0, #0 | |
__text:00000DE0 BNE loc_E0C | |
__text:00000DE2 LDR R0, [SP,#0x6C+var_38] | |
__text:00000DE4 LDRB R0, [R0] | |
__text:00000DE6 STRB.W R0, [SP,#0x6C+var_50] | |
__text:00000DEA LDRB.W R0, [SP,#0x6C+var_50] | |
__text:00000DEE CMP R0, #1 | |
__text:00000DF0 BNE loc_DFA | |
__text:00000DF2 MOVS R0, #1 | |
__text:00000DF8 STR R0, [SP,#0x6C+var_44] | |
__text:00000DFA | |
__text:00000DFA loc_DFA ; CODE XREF: _check_login+1C0j | |
__text:00000DFA MOV R0, #(aU - 0xE06) ; "%u\n" | |
__text:00000E02 ADD R0, PC ; "%u\n" | |
__text:00000E04 LDR R1, [SP,#0x6C+var_44] | |
__text:00000E06 BLX _printf | |
__text:00000E0A STR R0, [SP,#0x6C+var_58] | |
__text:00000E0C | |
__text:00000E0C loc_E0C ; CODE XREF: _check_login+19Cj | |
__text:00000E0C ; _check_login+1B0j | |
__text:00000E0C MOV R1, #(aIsawesome - 0xE18) ; "ISAWESOME" | |
__text:00000E14 ADD R1, PC ; "ISAWESOME" | |
__text:00000E16 MOVS R2, #9 ; size_t | |
__text:00000E1C LDR R0, [SP,#0x6C+var_4C] | |
__text:00000E1E LDR R3, [SP,#0x6C+var_1C] | |
__text:00000E20 MOV R9, #0x11 | |
__text:00000E28 MUL.W R0, R0, R9 | |
__text:00000E2C ADD R0, R3 | |
__text:00000E2E ADDS R0, #1 ; char * | |
__text:00000E30 BLX _strncmp | |
__text:00000E34 CMP R0, #0 | |
__text:00000E36 BNE loc_E68 | |
__text:00000E38 LDR R0, [SP,#0x6C+var_4C] | |
__text:00000E3A LDR R1, [SP,#0x6C+var_1C] | |
__text:00000E3C MOVS R2, #0x11 | |
__text:00000E42 MULS R0, R2 | |
__text:00000E44 ADD R0, R1 | |
__text:00000E46 LDRB R0, [R0] | |
__text:00000E48 CMP R0, #0 | |
__text:00000E4A BNE loc_E68 | |
__text:00000E4C LDR R0, [SP,#0x6C+var_38] | |
__text:00000E4E LDRB R0, [R0] | |
__text:00000E50 STRB.W R0, [SP,#0x6C+var_54] | |
__text:00000E54 LDRB.W R0, [SP,#0x6C+var_54] | |
__text:00000E58 CMP R0, #1 | |
__text:00000E5A MOVW R0, #0 | |
__text:00000E5E IT EQ | |
__text:00000E60 MOVEQ R0, #1 | |
__text:00000E62 AND.W R0, R0, #1 | |
__text:00000E66 STR R0, [SP,#0x6C+var_48] | |
__text:00000E68 | |
__text:00000E68 loc_E68 ; CODE XREF: _check_login+206j | |
__text:00000E68 ; _check_login+21Aj | |
__text:00000E68 LDR R0, [SP,#0x6C+var_4C] | |
__text:00000E6A LDR R1, [SP,#0x6C+var_1C] | |
__text:00000E6C MOVS R2, #0x11 | |
__text:00000E72 MULS R0, R2 | |
__text:00000E74 ADD R0, R1 | |
__text:00000E76 ADDS R1, R0, #1 | |
__text:00000E78 LDR R0, [SP,#0x6C+var_4C] | |
__text:00000E7A LDR R2, [SP,#0x6C+var_1C] | |
__text:00000E7C MOVS R3, #0x11 | |
__text:00000E82 MULS R0, R3 | |
__text:00000E84 ADD R0, R2 | |
__text:00000E86 STR R1, [SP,#0x6C+var_5C] | |
__text:00000E88 BL _col_size | |
__text:00000E8C MOV R1, #(a_16sUP - 0xE98) ; "%.16s %u\t%p\n" | |
__text:00000E94 ADD R1, PC ; "%.16s %u\t%p\n" | |
__text:00000E96 LDR R3, [SP,#0x6C+var_38] | |
__text:00000E98 STR R0, [SP,#0x6C+var_60] | |
__text:00000E9A MOV R0, R1 ; char * | |
__text:00000E9C LDR R1, [SP,#0x6C+var_5C] | |
__text:00000E9E LDR R2, [SP,#0x6C+var_60] | |
__text:00000EA0 BLX _printf | |
__text:00000EA4 LDR R1, [SP,#0x6C+var_4C] | |
__text:00000EA6 LDR R2, [SP,#0x6C+var_1C] | |
__text:00000EA8 MOVS R3, #0x11 | |
__text:00000EAE MULS R1, R3 | |
__text:00000EB0 ADD R1, R2 | |
__text:00000EB2 STR R0, [SP,#0x6C+var_64] | |
__text:00000EB4 MOV R0, R1 | |
__text:00000EB6 BL _col_size | |
__text:00000EBA LDR R1, [SP,#0x6C+var_38] | |
__text:00000EBC ADD R0, R1 | |
__text:00000EBE STR R0, [SP,#0x6C+var_38] | |
__text:00000EC0 LDR R0, [SP,#0x6C+var_4C] | |
__text:00000EC2 ADDS R0, #1 | |
__text:00000EC4 STR R0, [SP,#0x6C+var_4C] | |
__text:00000EC6 B loc_CCE | |
__text:00000EC8 ; --------------------------------------------------------------------------- | |
__text:00000EC8 | |
__text:00000EC8 loc_EC8 ; CODE XREF: _check_login+A6j | |
__text:00000EC8 MOV R0, #(aUsernameUPassw - 0xED4) ; "username: %u\tpassword: %u\tadmin: %u\t"... | |
__text:00000ED0 ADD R0, PC ; "username: %u\tpassword: %u\tadmin: %u\t"... | |
__text:00000ED2 LDR R1, [SP,#0x6C+var_3C] | |
__text:00000ED4 LDR R2, [SP,#0x6C+var_40] | |
__text:00000ED6 LDR R3, [SP,#0x6C+var_44] | |
__text:00000ED8 LDR.W R9, [SP,#0x6C+var_48] | |
__text:00000EDC STR.W R9, [SP,#0x6C+var_6C] | |
__text:00000EE0 BLX _printf | |
__text:00000EE4 LDR R1, [SP,#0x6C+var_3C] | |
__text:00000EE6 CMP R1, #0 | |
__text:00000EE8 STR R0, [SP,#0x6C+var_68] | |
__text:00000EEA BEQ loc_F08 | |
__text:00000EEC LDR R0, [SP,#0x6C+var_40] | |
__text:00000EEE CMP R0, #0 | |
__text:00000EF0 BEQ loc_F08 | |
__text:00000EF2 LDR R0, [SP,#0x6C+var_44] | |
__text:00000EF4 CMP R0, #0 | |
__text:00000EF6 BEQ loc_F08 | |
__text:00000EF8 LDR R0, [SP,#0x6C+var_48] | |
__text:00000EFA CMP R0, #0 | |
__text:00000EFC BEQ loc_F08 | |
__text:00000EFE MOVS R0, #1 | |
__text:00000F04 STR R0, [SP,#0x6C+var_C] | |
__text:00000F06 B loc_F1C | |
__text:00000F08 ; --------------------------------------------------------------------------- | |
__text:00000F08 | |
__text:00000F08 loc_F08 ; CODE XREF: _check_login+2BAj | |
__text:00000F08 ; _check_login+2C0j ... | |
__text:00000F08 B loc_F0A | |
__text:00000F0A ; --------------------------------------------------------------------------- | |
__text:00000F0A | |
__text:00000F0A loc_F0A ; CODE XREF: _check_login:loc_F08j | |
__text:00000F0A LDR R0, [SP,#0x6C+var_24] | |
__text:00000F0C LDR R1, [SP,#0x6C+var_28] | |
__text:00000F0E ADD R0, R1 | |
__text:00000F10 STR R0, [SP,#0x6C+var_28] | |
__text:00000F12 B loc_CB0 | |
__text:00000F14 ; --------------------------------------------------------------------------- | |
__text:00000F14 | |
__text:00000F14 loc_F14 ; CODE XREF: _check_login+86j | |
__text:00000F14 MOVS R0, #0 | |
__text:00000F1A STR R0, [SP,#0x6C+var_C] | |
__text:00000F1C | |
__text:00000F1C loc_F1C ; CODE XREF: _check_login+5Cj | |
__text:00000F1C ; _check_login+2D6j | |
__text:00000F1C LDR R0, [SP,#0x6C+var_C] | |
__text:00000F1E ADD SP, SP, #0x64 | |
__text:00000F20 POP {R7,PC} | |
__text:00000F20 ; End of function _check_login | |
__text:00000F20 | |
__text:00000F20 ; __text ends | |
__text:00000F20 | |
__stub_helper:00000F24 ; =========================================================================== | |
__stub_helper:00000F24 | |
__stub_helper:00000F24 ; Segment type: Pure code | |
__stub_helper:00000F24 AREA __stub_helper, CODE, READWRITE | |
__stub_helper:00000F24 ; ORG 0xF24 | |
__stub_helper:00000F24 CODE32 | |
__stub_helper:00000F24 | |
__stub_helper:00000F24 ; =============== S U B R O U T I N E ======================================= | |
__stub_helper:00000F24 | |
__stub_helper:00000F24 | |
__stub_helper:00000F24 _stub_helpers ; CODE XREF: _printf_0+4j | |
__stub_helper:00000F24 ; _strncmp_0+4j | |
__stub_helper:00000F24 | |
__stub_helper:00000F24 var_8 = -8 | |
__stub_helper:00000F24 var_4 = -4 | |
__stub_helper:00000F24 | |
__stub_helper:00000F24 STR R12, [SP,#var_4]! | |
__stub_helper:00000F28 LDR R12, =(off_100C - 0xF34) | |
__stub_helper:00000F2C ADD R12, PC, R12 ; off_100C | |
__stub_helper:00000F30 STR R12, [SP,#4+var_8]! | |
__stub_helper:00000F34 LDR R12, =(dyld_stub_binder_ptr - 0xF40) | |
__stub_helper:00000F38 ADD R12, PC, R12 ; dyld_stub_binder_ptr | |
__stub_helper:00000F3C LDR PC, [R12] ; dyld_stub_binder | |
__stub_helper:00000F3C ; End of function _stub_helpers | |
__stub_helper:00000F3C | |
__stub_helper:00000F3C ; --------------------------------------------------------------------------- | |
__stub_helper:00000F40 off_F40 DCD off_100C - 0xF34 ; DATA XREF: _stub_helpers+4r | |
__stub_helper:00000F44 off_F44 DCD dyld_stub_binder_ptr - 0xF40 | |
__stub_helper:00000F44 ; DATA XREF: _stub_helpers+10r | |
__stub_helper:00000F48 | |
__stub_helper:00000F48 ; =============== S U B R O U T I N E ======================================= | |
__stub_helper:00000F48 | |
__stub_helper:00000F48 | |
__stub_helper:00000F48 ; int printf_0(const char *, ...) | |
__stub_helper:00000F48 _printf_0 | |
__stub_helper:00000F48 LDR R12, =0 | |
__stub_helper:00000F4C B _stub_helpers | |
__stub_helper:00000F4C ; End of function _printf_0 | |
__stub_helper:00000F4C | |
__stub_helper:00000F4C ; --------------------------------------------------------------------------- | |
__stub_helper:00000F50 dword_F50 DCD 0 ; DATA XREF: _printf_0r | |
__stub_helper:00000F54 | |
__stub_helper:00000F54 ; =============== S U B R O U T I N E ======================================= | |
__stub_helper:00000F54 | |
__stub_helper:00000F54 | |
__stub_helper:00000F54 ; int strncmp_0(const char *, const char *, size_t) | |
__stub_helper:00000F54 _strncmp_0 | |
__stub_helper:00000F54 LDR R12, =0xE | |
__stub_helper:00000F58 B _stub_helpers | |
__stub_helper:00000F58 ; End of function _strncmp_0 | |
__stub_helper:00000F58 | |
__stub_helper:00000F58 ; --------------------------------------------------------------------------- | |
__stub_helper:00000F5C dword_F5C DCD 0xE ; DATA XREF: _strncmp_0r | |
__stub_helper:00000F5C ; __stub_helper ends | |
__stub_helper:00000F5C | |
__cstring:00000F60 ; =========================================================================== | |
__cstring:00000F60 | |
__cstring:00000F60 ; Segment type: Pure data | |
__cstring:00000F60 AREA __cstring, DATA, ALIGN=0 | |
__cstring:00000F60 ; ORG 0xF60 | |
__cstring:00000F60 aUsername DCB "USERNAME",0 ; DATA XREF: _check_login+AAo | |
__cstring:00000F60 ; _check_login+B2o | |
__cstring:00000F69 aCaptainfalcon DCB "captainfalcon",0 ; DATA XREF: _check_login+EAo | |
__cstring:00000F69 ; _check_login+F2o | |
__cstring:00000F77 aPassword DCB "PASSWORD",0 ; DATA XREF: _check_login:loc_D3Eo | |
__cstring:00000F77 ; _check_login+116o | |
__cstring:00000F80 aFc03329505475d DCB "fc03329505475dd4be51627cc7f0b1f1",0 | |
__cstring:00000F80 ; DATA XREF: _check_login+14Eo | |
__cstring:00000F80 ; _check_login+156o | |
__cstring:00000FA1 aAdmin DCB "ADMIN",0 ; DATA XREF: _check_login:loc_DA2o | |
__cstring:00000FA1 ; _check_login+17Ao | |
__cstring:00000FA7 aU DCB "%u",0xA,0 ; DATA XREF: _check_login:loc_DFAo | |
__cstring:00000FA7 ; _check_login+1D2o | |
__cstring:00000FAB aIsawesome DCB "ISAWESOME",0 ; DATA XREF: _check_login:loc_E0Co | |
__cstring:00000FAB ; _check_login+1E4o | |
__cstring:00000FB5 a_16sUP DCB "%.16s %u",9,"%p",0xA,0 | |
__cstring:00000FB5 ; DATA XREF: _check_login+25Co | |
__cstring:00000FB5 ; _check_login+264o | |
__cstring:00000FC2 aUsernameUPassw DCB "username: %u",9,"password: %u",9,"admin: %u",9,"isawesome: %u",0xA,0 | |
__cstring:00000FC2 ; DATA XREF: _check_login:loc_EC8o | |
__cstring:00000FC2 ; _check_login+2A0o | |
__cstring:00000FC2 ; __cstring ends | |
__cstring:00000FC2 | |
__symbolstub1:00000FF8 ; =========================================================================== | |
__symbolstub1:00000FF8 | |
__symbolstub1:00000FF8 ; Segment type: Pure code | |
__symbolstub1:00000FF8 AREA __symbolstub1, CODE, READWRITE | |
__symbolstub1:00000FF8 ; ORG 0xFF8 | |
__symbolstub1:00000FF8 CODE32 | |
__symbolstub1:00000FF8 ; [00000004 BYTES: COLLAPSED FUNCTION _printf. PRESS KEYPAD CTRL-"+" TO EXPAND] | |
__symbolstub1:00000FFC ; [00000004 BYTES: COLLAPSED FUNCTION _strncmp. PRESS KEYPAD CTRL-"+" TO EXPAND] | |
__lazy_symbol:00001000 ; =========================================================================== | |
__lazy_symbol:00001000 | |
__lazy_symbol:00001000 ; Segment type: Pure data | |
__lazy_symbol:00001000 AREA __lazy_symbol, DATA | |
__lazy_symbol:00001000 ; ORG 0x1000 | |
__lazy_symbol:00001000 _printf_ptr DCD __imp__printf ; DATA XREF: _printfr | |
__lazy_symbol:00001004 _strncmp_ptr DCD __imp__strncmp ; DATA XREF: _strncmpr | |
__lazy_symbol:00001004 ; __lazy_symbol ends | |
__lazy_symbol:00001004 | |
__nl_symbol_ptr:00001008 ; =========================================================================== | |
__nl_symbol_ptr:00001008 | |
__nl_symbol_ptr:00001008 ; Segment type: Pure data | |
__nl_symbol_ptr:00001008 AREA __nl_symbol_ptr, DATA | |
__nl_symbol_ptr:00001008 ; ORG 0x1008 | |
__nl_symbol_ptr:00001008 dyld_stub_binder_ptr DCD dyld_stub_binder | |
__nl_symbol_ptr:00001008 ; DATA XREF: _stub_helpers+14o | |
__nl_symbol_ptr:00001008 ; __stub_helper:off_F44o | |
__nl_symbol_ptr:0000100C off_100C DCD dword_0 ; DATA XREF: _stub_helpers+8o | |
__nl_symbol_ptr:0000100C ; __stub_helper:off_F40o | |
__nl_symbol_ptr:0000100C ; __nl_symbol_ptr ends | |
__nl_symbol_ptr:0000100C | |
__LINKEDIT_hidden:00002000 ; =========================================================================== | |
__LINKEDIT_hidden:00002000 | |
__LINKEDIT_hidden:00002000 ; [00000194 BYTES: COLLAPSED SEGMENT __LINKEDIT_hidden. PRESS KEYPAD CTRL-"+" TO EXPAND] | |
UNDEF:000021A0 ; | |
UNDEF:000021A0 ; Imports from /usr/lib/libSystem.B.dylib | |
UNDEF:000021A0 ; | |
UNDEF:000021A0 ; =========================================================================== | |
UNDEF:000021A0 | |
UNDEF:000021A0 ; Segment type: Externs | |
UNDEF:000021A0 ; int _printf(const char *, ...) | |
UNDEF:000021A0 IMPORT __imp__printf ; CODE XREF: _printfj | |
UNDEF:000021A0 ; DATA XREF: _printfo ... | |
UNDEF:000021A4 ; int _strncmp(const char *, const char *, size_t) | |
UNDEF:000021A4 IMPORT __imp__strncmp ; CODE XREF: _strncmpj | |
UNDEF:000021A4 ; DATA XREF: _strncmpo ... | |
UNDEF:000021A8 IMPORT dyld_stub_binder ; CODE XREF: _stub_helpers+18j | |
UNDEF:000021A8 ; DATA XREF: __nl_symbol_ptr:dyld_stub_binder_ptro | |
UNDEF:000021A8 | |
UNDEF:000021A8 END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment