.text:00001820
.text:00001820 ; =============== S U B R O U T I N E =======================================
.text:00001820
.text:00001820
.text:00001820 sub_1820 ; CODE XREF: sub_1B10+64Ep
.text:00001820
.text:00001820 s = -0xE8
.text:00001820 fd = -0xE4
.text:00001820 var_E0 = -0xE0
.text:00001820 var_DC = -0xDC
.text:00001820 var_D4 = -0xD4
.text:00001820 var_3C = -0x3C
.text:00001820 var_3B = -0x3B
.text:00001820 var_3A = -0x3A
.text:00001820 var_39 = -0x39
.text:00001820 var_38 = -0x38
.text:00001820 var_37 = -0x37
.text:00001820 var_36 = -0x36
.text:00001820 var_35 = -0x35
.text:00001820 var_34 = -0x34
.text:00001820 var_33 = -0x33
.text:00001820 var_32 = -0x32
.text:00001820 var_31 = -0x31
.text:00001820 var_30 = -0x30
.text:00001820 var_2F = -0x2F
.text:00001820 var_2E = -0x2E
.text:00001820 var_2D = -0x2D
.text:00001820 var_2C = -0x2C
.text:00001820
.text:00001820 LDR R3, =(__stack_chk_guard_ptr - 0x182A)
.text:00001822 PUSH.W {R4-R11,LR}
.text:00001826 ADD R3, PC ; __stack_chk_guard_ptr
.text:00001828 LDR R3, [R3] ; __stack_chk_guard
.text:0000182A SUB SP, SP, #0xC4
.text:0000182C MOV R11, R1
.text:0000182E MOVS R1, #0x20 ; c
.text:00001830 STR R2, [SP,#0xE8+fd]
.text:00001832 LDR R2, [R3]
.text:00001834 STR R3, [SP,#0xE8+var_E0]
.text:00001836 STR R2, [SP,#0xE8+var_2C]
.text:00001838 BLX strchr
.text:0000183C LDR R2, =(dword_6B00 - 0x1842)
.text:0000183E ADD R2, PC ; dword_6B00
.text:00001840 LDRB.W R1, [R2,#(dword_6C90 - 0x6B00)]
.text:00001844 MOV R8, R0
.text:00001846 ADDS R4, R0, #1
.text:00001848 CMP R1, #0
.text:0000184A BEQ.W loc_1A6A
.text:0000184E
.text:0000184E loc_184E ; CODE XREF: sub_1820+27Ej
.text:0000184E LDR R6, =(dword_6B00 - 0x1858)
.text:00001850 MOVW R7, #0x539
.text:00001854 ADD R6, PC ; dword_6B00
.text:00001856 ADD.W R0, R6, #0x190 ; s
.text:0000185A BLX strlen
.text:0000185E CMP R11, R7
.text:00001860 MOV R10, R0
.text:00001862 BEQ loc_18A8
.text:00001864
.text:00001864 loc_1864 ; CODE XREF: sub_1820+A4j
.text:00001864 ; sub_1820+284j
.text:00001864 LDR R7, =(dword_6B00 - 0x186A)
.text:00001866 ADD R7, PC ; dword_6B00
.text:00001868 SUBS R5, R7, #4
.text:0000186A ADD.W R7, R7, #0x18C
.text:0000186E B loc_1874
.text:00001870 ; ---------------------------------------------------------------------------
.text:00001870
.text:00001870 loc_1870 ; CODE XREF: sub_1820+5Aj
.text:00001870 ; sub_1820+60j
.text:00001870 CMP R5, R7
.text:00001872 BEQ loc_1896
.text:00001874
.text:00001874 loc_1874 ; CODE XREF: sub_1820+4Ej
.text:00001874 ; sub_1820+74j
.text:00001874 LDR.W R6, [R5,#(dword_6B00 - 0x6AFC)]!
.text:00001878 CMP R6, #0
.text:0000187A BEQ loc_1870
.text:0000187C LDR R3, [R6,#0x14]
.text:0000187E CMP R3, R11
.text:00001880 BNE loc_1870
.text:00001882 MOV R0, R4 ; s
.text:00001884 BLX strlen
.text:00001888 MOV R1, R4 ; buf
.text:0000188A MOV R2, R0 ; n
.text:0000188C LDR R0, [R6,#0x10] ; fd
.text:0000188E BLX write
.text:00001892 CMP R5, R7
.text:00001894 BNE loc_1874
.text:00001896
.text:00001896 loc_1896 ; CODE XREF: sub_1820+52j
.text:00001896 LDR R3, [SP,#0xE8+var_E0]
.text:00001898 LDR R2, [SP,#0xE8+var_2C]
.text:0000189A LDR R3, [R3]
.text:0000189C CMP R2, R3
.text:0000189E BNE.W loc_1ADE
.text:000018A2 ADD SP, SP, #0xC4
.text:000018A4 POP.W {R4-R11,PC}
.text:000018A8 ; ---------------------------------------------------------------------------
.text:000018A8
.text:000018A8 loc_18A8 ; CODE XREF: sub_1820+42j
.text:000018A8 LDRB.W R2, [R6,#(dword_6CA0 - 0x6B00)]
.text:000018AC CMP R2, #0
.text:000018AE BEQ.W loc_1AA6
.text:000018B2
.text:000018B2 loc_18B2 ; CODE XREF: sub_1820+2BCj
.text:000018B2 LDR R1, =(dword_6B00 - 0x18BC)
.text:000018B4 MOV R0, R4 ; s1
.text:000018B6 MOV R2, R10 ; n
.text:000018B8 ADD R1, PC ; dword_6B00
.text:000018BA ADD.W R1, R1, #0x1A0 ; s2
.text:000018BE BLX strncmp
.text:000018C2 CMP R0, #0
.text:000018C4 BNE loc_1864
.text:000018C6 LDR.W R12, =(aNlGMfgl - 0x18D8)
.text:000018CA ADD.W R2, R10, #2
.text:000018CE LDR R3, =(dword_6B00 - 0x18DE)
.text:000018D0 MOV R5, R0
.text:000018D2 LDR R7, =(dword_6B00 - 0x18F0)
.text:000018D4 ADD R12, PC ; "NL]]@G\t@]\tMFGL"
.text:000018D6 LDR.W R9, =(aNlGMfgl - 0x18F2)
.text:000018DA ADD R3, PC ; dword_6B00
.text:000018DC ADD.W R3, R3, #0x1B0
.text:000018E0 STR.W R11, [SP,#0xE8+var_DC]
.text:000018E4 ADD.W R10, R12, #0x20
.text:000018E8 ADD R6, SP, #0xE8+var_D4
.text:000018EA STR R3, [SP,#0xE8+s]
.text:000018EC ADD R7, PC ; dword_6B00
.text:000018EE ADD R9, PC ; "NL]]@G\t@]\tMFGL"
.text:000018F0 MOV R11, R2
.text:000018F2 B loc_190A
.text:000018F4 ; ---------------------------------------------------------------------------
.text:000018F4
.text:000018F4 loc_18F4 ; CODE XREF: sub_1820+1D8j
.text:000018F4 ; sub_1820+248j
.text:000018F4 LDR R0, [SP,#0xE8+s] ; s
.text:000018F6 BLX strlen
.text:000018FA LDR R1, [SP,#0xE8+s] ; buf
.text:000018FC MOV R2, R0 ; n
.text:000018FE LDR R0, [SP,#0xE8+fd] ; fd
.text:00001900 BLX write
.text:00001904
.text:00001904 loc_1904 ; CODE XREF: sub_1820+11Cj
.text:00001904 ; sub_1820+128j ...
.text:00001904 ADDS R5, #1
.text:00001906 ADD.W R10, R10, #0x40
.text:0000190A
.text:0000190A loc_190A ; CODE XREF: sub_1820+D2j
.text:0000190A MOV R0, R4 ; s
.text:0000190C BLX strlen
.text:00001910 CMP R5, R0
.text:00001912 BCS.W loc_1AA0
.text:00001916 MOV R0, R6
.text:00001918 BL sub_15A0
.text:0000191C ADD.W R1, R5, R11
.text:00001920 MOVS R2, #1
.text:00001922 ADD R1, R8
.text:00001924 MOV R0, R6
.text:00001926 BL sub_15D8
.text:0000192A MOV R1, R6
.text:0000192C ADD R0, SP, #0xE8+var_3C
.text:0000192E BL sub_1668
.text:00001932 LDRB.W R2, [SP,#0xE8+var_3C]
.text:00001936 LDR.W R1, [R10]
.text:0000193A CMP R1, R2
.text:0000193C BNE loc_1904
.text:0000193E LDRB.W R2, [SP,#0xE8+var_3B]
.text:00001942 LDR.W R1, [R10,#(dword_6024 - 0x6020)]
.text:00001946 CMP R1, R2
.text:00001948 BNE loc_1904
.text:0000194A LDRB.W R2, [SP,#0xE8+var_3A]
.text:0000194E LDR.W R1, [R10,#(dword_6028 - 0x6020)]
.text:00001952 CMP R1, R2
.text:00001954 BNE loc_1904
.text:00001956 LDRB.W R2, [SP,#0xE8+var_39]
.text:0000195A LDR.W R1, [R10,#(dword_602C - 0x6020)]
.text:0000195E CMP R1, R2
.text:00001960 BNE loc_1904
.text:00001962 LDRB.W R2, [SP,#0xE8+var_38]
.text:00001966 LDR.W R1, [R10,#(dword_6030 - 0x6020)]
.text:0000196A CMP R1, R2
.text:0000196C BNE loc_1904
.text:0000196E LDRB.W R2, [SP,#0xE8+var_37]
.text:00001972 LDR.W R1, [R10,#(dword_6034 - 0x6020)]
.text:00001976 CMP R1, R2
.text:00001978 BNE loc_1904
.text:0000197A LDRB.W R2, [SP,#0xE8+var_36]
.text:0000197E LDR.W R1, [R10,#(dword_6038 - 0x6020)]
.text:00001982 CMP R1, R2
.text:00001984 BNE loc_1904
.text:00001986 LDRB.W R2, [SP,#0xE8+var_35]
.text:0000198A LDR.W R1, [R10,#(dword_603C - 0x6020)]
.text:0000198E CMP R1, R2
.text:00001990 BNE loc_1904
.text:00001992 LDRB.W R2, [SP,#0xE8+var_34]
.text:00001996 LDR.W R1, [R10,#(dword_6040 - 0x6020)]
.text:0000199A CMP R1, R2
.text:0000199C BNE loc_1904
.text:0000199E LDRB.W R2, [SP,#0xE8+var_33]
.text:000019A2 LDR.W R1, [R10,#(dword_6044 - 0x6020)]
.text:000019A6 CMP R1, R2
.text:000019A8 BNE loc_1904
.text:000019AA LDRB.W R2, [SP,#0xE8+var_32]
.text:000019AE LDR.W R1, [R10,#(dword_6048 - 0x6020)]
.text:000019B2 CMP R1, R2
.text:000019B4 BNE loc_1904
.text:000019B6 LDRB.W R2, [SP,#0xE8+var_31]
.text:000019BA LDR.W R1, [R10,#(dword_604C - 0x6020)]
.text:000019BE CMP R1, R2
.text:000019C0 BNE loc_1904
.text:000019C2 LDRB.W R2, [SP,#0xE8+var_30]
.text:000019C6 LDR.W R1, [R10,#(dword_6050 - 0x6020)]
.text:000019CA CMP R1, R2
.text:000019CC BNE loc_1904
.text:000019CE LDRB.W R2, [SP,#0xE8+var_2F]
.text:000019D2 LDR.W R1, [R10,#(dword_6054 - 0x6020)]
.text:000019D6 CMP R1, R2
.text:000019D8 BNE loc_1904
.text:000019DA LDRB.W R2, [SP,#0xE8+var_2E]
.text:000019DE LDR.W R1, [R10,#(dword_6058 - 0x6020)]
.text:000019E2 CMP R1, R2
.text:000019E4 BNE loc_1904
.text:000019E6 LDRB.W R2, [SP,#0xE8+var_2D]
.text:000019EA LDR.W R1, [R10,#(dword_605C - 0x6020)]
.text:000019EE CMP R1, R2
.text:000019F0 BNE loc_1904
.text:000019F2 LDRB.W R2, [R7,#0x1B0]
.text:000019F6 CMP R2, #0
.text:000019F8 BNE.W loc_18F4
.text:000019FC LDRB.W R1, [R9,#0x8E1]
.text:00001A00 LDRB.W R2, [R9,#0x8E2]
.text:00001A04 EOR.W R1, R1, #0x26
.text:00001A08 STRB.W R1, [R7,#0x1B1]
.text:00001A0C EOR.W R2, R2, #0x26
.text:00001A10 LDRB.W R1, [R9,#0x8E3]
.text:00001A14 STRB.W R2, [R7,#0x1B2]
.text:00001A18 LDRB.W R2, [R9,#0x8E4]
.text:00001A1C EOR.W R1, R1, #0x26
.text:00001A20 STRB.W R1, [R7,#0x1B3]
.text:00001A24 EOR.W R2, R2, #0x26
.text:00001A28 LDRB.W R1, [R9,#0x8E5]
.text:00001A2C STRB.W R2, [R7,#0x1B4]
.text:00001A30 LDRB.W R2, [R9,#0x8E6]
.text:00001A34 EOR.W R1, R1, #0x26
.text:00001A38 LDRB.W R0, [R9,#0x8E0]
.text:00001A3C EOR.W R2, R2, #0x26
.text:00001A40 STRB.W R1, [R7,#0x1B5]
.text:00001A44 STRB.W R2, [R7,#0x1B6]
.text:00001A48 EOR.W R0, R0, #0x26
.text:00001A4C LDRB.W R1, [R9,#0x8E7]
.text:00001A50 LDRB.W R2, [R9,#0x8E8]
.text:00001A54 EOR.W R1, R1, #0x26
.text:00001A58 STRB.W R0, [R7,#0x1B0]
.text:00001A5C EOR.W R2, R2, #0x26
.text:00001A60 STRB.W R1, [R7,#0x1B7]
.text:00001A64 STRB.W R2, [R7,#0x1B8]
.text:00001A68 B loc_18F4
.text:00001A6A ; ---------------------------------------------------------------------------
.text:00001A6A
.text:00001A6A loc_1A6A ; CODE XREF: sub_1820+2Aj
.text:00001A6A LDR R5, =(aNlGMfgl - 0x1A70)
.text:00001A6C ADD R5, PC ; "NL]]@G\t@]\tMFGL"
.text:00001A6E LDMIA.W R5, {R0,R1,R6} ; "NL]]@G\t@]\tMFGL"
.text:00001A72 EOR.W R7, R0, #0x29292929
.text:00001A76 LDRB R0, [R5,#(aNlGMfgl+0xC - 0x6000)] ; "GL"
.text:00001A78 LDRB R5, [R5,#(aNlGMfgl+0xD - 0x6000)] ; "L"
.text:00001A7A EOR.W R1, R1, #0x29292929
.text:00001A7E EOR.W R6, R6, #0x29292929
.text:00001A82 EOR.W R0, R0, #0x29
.text:00001A86 STR.W R1, [R2,#(dword_6C94 - 0x6B00)]
.text:00001A8A EOR.W R1, R5, #0x29
.text:00001A8E STR.W R7, [R2,#(dword_6C90 - 0x6B00)]
.text:00001A92 STR.W R6, [R2,#(dword_6C98 - 0x6B00)]
.text:00001A96 STRB.W R0, [R2,#(byte_6C9C - 0x6B00)]
.text:00001A9A STRB.W R1, [R2,#(byte_6C9D - 0x6B00)]
.text:00001A9E B loc_184E
.text:00001AA0 ; ---------------------------------------------------------------------------
.text:00001AA0
.text:00001AA0 loc_1AA0 ; CODE XREF: sub_1820+F2j
.text:00001AA0 LDR.W R11, [SP,#0xE8+var_DC]
.text:00001AA4 B loc_1864
.text:00001AA6 ; ---------------------------------------------------------------------------
.text:00001AA6
.text:00001AA6 loc_1AA6 ; CODE XREF: sub_1820+8Ej
.text:00001AA6 LDR R0, =(aNlGMfgl - 0x1AAC)
.text:00001AA8 ADD R0, PC ; "NL]]@G\t@]\tMFGL"
.text:00001AAA ADD.W R1, R0, #0x10
.text:00001AAE LDMIA R1, {R1,R2,R5}
.text:00001AB0 EOR.W R7, R1, #0x2E2E2E2E
.text:00001AB4 LDRB R1, [R0,#(byte_601C - 0x6000)]
.text:00001AB6 LDRB R0, [R0,#(byte_601D - 0x6000)]
.text:00001AB8 EOR.W R2, R2, #0x2E2E2E2E
.text:00001ABC EOR.W R5, R5, #0x2E2E2E2E
.text:00001AC0 EOR.W R1, R1, #0x2E
.text:00001AC4 STR.W R2, [R6,#(dword_6CA4 - 0x6B00)]
.text:00001AC8 EOR.W R2, R0, #0x2E
.text:00001ACC STR.W R7, [R6,#(dword_6CA0 - 0x6B00)]
.text:00001AD0 STR.W R5, [R6,#(dword_6CA8 - 0x6B00)]
.text:00001AD4 STRB.W R1, [R6,#(byte_6CAC - 0x6B00)]
.text:00001AD8 STRB.W R2, [R6,#(byte_6CAD - 0x6B00)]
.text:00001ADC B loc_18B2
.text:00001ADE ; ---------------------------------------------------------------------------
.text:00001ADE
.text:00001ADE loc_1ADE ; CODE XREF: sub_1820+7Ej
.text:00001ADE BLX __stack_chk_fail
.text:00001ADE ; End of function sub_1820
.text:00001ADE
.text:00001ADE ; ---------------------------------------------------------------------------