diff --git a/Makefile b/Makefile
index 0f5ca2b..78077a5 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ else
endif
BOOT?=new
-APP?=2
+APP?=1
SPI_SPEED?=40
SPI_MODE?=QIO
SPI_SIZE_MAP?=2
diff --git a/app/user/user_key.c b/app/user/user_key.c
index 8c07784..8207f18 100644
--- a/app/user/user_key.c
+++ b/app/user/user_key.c
@@ -99,7 +99,7 @@ LOCAL void key_intr_handler(void *arg) {
void ICACHE_FLASH_ATTR
user_key_init(void) {
-// PIN_FUNC_SELECT(GPIO_RELAY_IO_MUX, GPIO_RELAY_IO_FUNC);
+ PIN_FUNC_SELECT(GPIO_RELAY_IO_MUX, GPIO_RELAY_IO_FUNC);
// single_key[0] = key_init_single(GPIO_KEY_0_IO_NUM, GPIO_KEY_0_IO_MUX,
// GPIO_KEY_0_IO_FUNC, user_key_long_press, user_key_short_press);
//
diff --git a/app/user/web/wififail.html b/app/user/web/wififail.html
new file mode 100644
index 0000000..144afc1
--- /dev/null
+++ b/app/user/web/wififail.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+上网设置
+
+
+
+
+
+
+
+
diff --git a/app/user/web/wifisetting.html b/app/user/web/wifisetting.html
new file mode 100644
index 0000000..aeb52fb
--- /dev/null
+++ b/app/user/web/wifisetting.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+上网设置
+
+
+
+
+
+
+
+
diff --git a/app/user/web/wifisuccess.html b/app/user/web/wifisuccess.html
new file mode 100644
index 0000000..6617a79
--- /dev/null
+++ b/app/user/web/wifisuccess.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+上网设置
+
+
+
+
+
+
+
diff --git a/app/user/web2c.py b/app/user/web2c.py
new file mode 100644
index 0000000..4de1019
--- /dev/null
+++ b/app/user/web2c.py
@@ -0,0 +1,50 @@
+#! /bin/env python3
+
+import os
+import glob
+import binascii
+import gzip
+import re
+
+try:
+ io = __import__("io").BytesIO
+except:
+ io = __import__("StringIO").StringIO
+
+def gen(dat, fn):
+ try:
+ s = ','.join(["0x%02x" % c for c in dat])
+ except:
+ s = ','.join(["0x"+binascii.hexlify(c) for c in dat])
+
+ s = re.sub("((?:0x.+?,){16})", "\\1\n", s)
+
+ fn = re.sub(r"[^\w]", "_", fn)
+ return ("const unsigned char %s[0x%x] = {\n%s,0};\n\n" % (fn, len(dat)+1, s))
+ #print("const unsigned char %s[0x%x] = {\n%s};" % (fn, len(dat), s))
+
+
+outCfile = open("web_data.c","w")
+outHfile = open("web_data.h","w")
+
+outHfile.write("#ifndef __WEB_DATA_H__\n")
+outHfile.write("#define __WEB_DATA_H__\n")
+
+for fn in glob.glob('web/*.html'):
+ dat=open(fn, 'rb').read();
+ #ss=gen(open(fn, 'rb').read(), fn)
+ try:
+ s = ','.join(["0x%02x" % c for c in dat])
+ except:
+ s = ','.join(["0x"+binascii.hexlify(c) for c in dat])
+
+ s = re.sub("((?:0x.+?,){16})", "\\1\n", s)
+
+ fn = re.sub(r"[^\w]", "_", fn)
+
+ outCfile.write("const unsigned char %s[0x%x] = {\n%s,0};\n\n" % (fn, len(dat)+1, s))
+ outHfile.write("extern const unsigned char %s[0x%x];\n" % (fn, len(dat)+1))
+
+outHfile.write("#endif\n")
+outCfile.close()
+outHfile.close()
diff --git a/app/user/web_data.h b/app/user/web_data.h
new file mode 100644
index 0000000..4341baf
--- /dev/null
+++ b/app/user/web_data.h
@@ -0,0 +1,6 @@
+#ifndef __WEB_DATA_H__
+#define __WEB_DATA_H__
+extern const unsigned char web_wififail_html[0xabe];
+extern const unsigned char web_wifisetting_html[0xb8f];
+extern const unsigned char web_wifisuccess_html[0x9c5];
+#endif
diff --git a/bin/upgrade/user1.1024.new.2.S b/bin/upgrade/user1.1024.new.2.S
index 009d8d3..e70afcd 100644
--- a/bin/upgrade/user1.1024.new.2.S
+++ b/bin/upgrade/user1.1024.new.2.S
@@ -490,7 +490,7 @@ Disassembly of section .irom0.text:
40201516: 0e4ba2 s8i a10, a11, 14
40201519: 20c112 addi a1, a1, 32
4020151c: f00d ret.n
-4020151e: 000000 ill
+4020151e: 200000 or a0, a0, a0
40201521: 24b8 l32i.n a11, a4, 8
40201523: 0c0440 excw
40201526: 744010 extui a4, a1, 0, 8
@@ -932,7 +932,7 @@ Disassembly of section .irom0.text:
40201987: ffed21 l32r a2, 4020193c
4020198a: 0239 s32i.n a3, a2, 0
4020198c: 020c movi.n a2, 0
-4020198e: 3e9b05 call0 40240340
+4020198e: 3e9cc5 call0 4024035c
40201991: 000786 j 402019b3
40201994: 353000 extui a3, a0, 16, 4
40201997: 232080 excw
@@ -944,7 +944,7 @@ Disassembly of section .irom0.text:
402019a7: 74e0e0 extui a14, a14, 0, 8
402019aa: fb2e56 bnez a14, 40201960
402019ad: 004cf2 s8i a15, a12, 0
-402019b0: 3ea145 call0 402403c8
+402019b0: 3ea305 call0 402403e4
402019b3: 072102 l32i a0, a1, 28
402019b6: 61c8 l32i.n a12, a1, 24
402019b8: 51d8 l32i.n a13, a1, 20
@@ -956,7 +956,7 @@ Disassembly of section .irom0.text:
402019c6: 3109f0 srai a0, a15, 25
402019c9: 032d mov.n a2, a3
402019cb: 005316 beqz a3, 402019d4
-402019ce: 3e9045 call0 402402d4
+402019ce: 3e9205 call0 402402f0
402019d1: 000146 j 402019da
402019d4: 00a022 movi a2, 0
402019d7: fff705 call0 40201948
@@ -966,7 +966,7 @@ Disassembly of section .irom0.text:
402019e3: 303000 xor a3, a0, a0
402019e6: ff .byte 0xff
402019e7: 3f .byte 0x3f
-402019e8: 24b644 excw
+402019e8: 24b664 excw
402019eb: 11e040 slli a14, a0, 12
402019ee: 214010 srai a4, a1, 0
@@ -997,8 +997,8 @@ Disassembly of section .irom0.text:
40201a23: 006122 s32i a2, a1, 0
40201a26: 202110 or a2, a1, a1
40201a29: 076102 s32i a0, a1, 28
-40201a2c: 3ee485 call0 40240878
-40201a2f: 3f0305 call0 40240a60
+40201a2c: 3ee645 call0 40240894
+40201a2f: 3f04c5 call0 40240a7c
40201a32: 7108 l32i.n a0, a1, 28
40201a34: 20c112 addi a1, a1, 32
40201a37: f00d ret.n
@@ -1016,7 +1016,7 @@ Disassembly of section .irom0.text:
40201a4a: bc0000 excw
40201a4d: fe89 s32i.n a8, a14, 60
40201a4f: 3f .byte 0x3f
-40201a50: 24b660 extui a11, a6, 6, 3
+40201a50: 24b680 extui a11, a8, 6, 3
40201a53: e26840 excw
40201a56: 124000 excw
40201a59: c9f0c1 l32r a12, 401f421c <_lit4_end+0xec370>
@@ -1095,9 +1095,9 @@ Disassembly of section .irom0.text:
40201b06: 172c22 l32i a2, a12, 92
40201b09: 04cc52 addi a5, a12, 4
40201b0c: 0c4d mov.n a4, a12
-40201b0e: 416145 call0 40243124
+40201b0e: 416305 call0 40243140
40201b11: 0c2d mov.n a2, a12
-40201b13: 3f3945 call0 40240ea8
+40201b13: 3f3b05 call0 40240ec4
40201b16: ffe831 l32r a3, 40201ab8
40201b19: 0328 l32i.n a2, a3, 0
40201b1b: 059c27 bne a12, a2, 40201b24
@@ -1126,7 +1126,7 @@ Disassembly of section .irom0.text:
40201b52: 002232 l32i a3, a2, 0
40201b55: 02c9 s32i.n a12, a2, 0
40201b57: 3c39 s32i.n a3, a12, 12
-40201b59: 41fa05 call0 40243afc
+40201b59: 41fbc5 call0 40243b18
40201b5c: 020c movi.n a2, 0
40201b5e: 002d46 j 40201c17
40201b61: 0282b6 bltui a2, 8, 40201b67
@@ -1164,7 +1164,7 @@ Disassembly of section .irom0.text:
40201baf: 0002c6 j 40201bbe
40201bb2: ffc721 l32r a2, 40201ad0
40201bb5: 203cc0 or a3, a12, a12
-40201bb8: 3f3405 call0 40240efc
+40201bb8: 3f35c5 call0 40240f18
40201bbb: c8a042 movi a4, 200
40201bbe: ffc331 l32r a3, 40201acc
40201bc1: 202cc0 or a2, a12, a12
@@ -1175,17 +1175,17 @@ Disassembly of section .irom0.text:
40201bcf: 000d86 j 40201c09
40201bd2: ffb921 l32r a2, 40201ab8
40201bd5: 0c3d mov.n a3, a12
-40201bd7: 3f3245 call0 40240efc
+40201bd7: 3f3405 call0 40240f18
40201bda: cea042 movi a4, 206
40201bdd: fff746 j 40201bbe
40201be0: 202cc0 or a2, a12, a12
-40201be3: 414f85 call0 402430dc
+40201be3: 415145 call0 402430f8
40201be6: 20d220 or a13, a2, a2
40201be9: 05a022 movi a2, 5
40201bec: 0d9c beqz.n a13, 40201c00
40201bee: 0005c6 j 40201c09
40201bf1: 2cc000 excw
-40201bf4: 4e4520 excw
+40201bf4: 500520 excw
40201bf7: d22041 l32r a4, 401f6478 <_lit4_end+0xee5cc>
40201bfa: a25620 excw
40201bfd: 920c00 excw
@@ -1196,7 +1196,7 @@ Disassembly of section .irom0.text:
40201c09: 008c16 beqz a12, 40201c15
40201c0c: 005d56 bnez a13, 40201c15
40201c0f: 202cc0 or a2, a12, a12
-40201c12: 417e05 call0 402433f4
+40201c12: 417fc5 call0 40243410
40201c15: 0d2d mov.n a2, a13
40201c17: 3108 l32i.n a0, a1, 12
40201c19: 21c8 l32i.n a12, a1, 8
@@ -1207,12 +1207,12 @@ Disassembly of section .irom0.text:
40201c25: 201c movi.n a0, 18
40201c27: c11240 mul16u a1, a2, a4
40201c2a: 6102f0 excw
-40201c2d: e14503 excw
+40201c2d: e30503 excw
40201c30: 3138 l32i.n a3, a1, 12
40201c32: fffc bnez.n a15, 40201c75
40201c34: 00a042 movi a4, 0
40201c37: e8a322 movi a2, 0x3e8
-40201c3a: 41c6c5 call0 402438a8
+40201c3a: 41c885 call0 402438c4
40201c3d: 032102 l32i a0, a1, 12
40201c40: 10c112 addi a1, a1, 16
40201c43: f00d ret.n
@@ -1220,12 +1220,12 @@ Disassembly of section .irom0.text:
40201c48: 1c4c movi.n a12, 65
40201c4a: 124020 excw
40201c4d: 02f0c1 l32r a12, 401c2810 <_lit4_end+0xba964>
-40201c50: c50361 l32r a6, 401f305c <_lit4_end+0xeb1b0>
-40201c53: 3c4a add.n a3, a12, a4
+40201c50: 850361 l32r a6, 401e305c <_lit4_end+0xdb1b0>
+40201c53: 3c4c movi.n a12, 67
40201c55: fffc31 l32r a3, 40201c48
40201c58: 00a042 movi a4, 0
40201c5b: 64a022 movi a2, 100
-40201c5e: 41c485 call0 402438a8
+40201c5e: 41c645 call0 402438c4
40201c61: 032102 l32i a0, a1, 12
40201c64: 10c112 addi a1, a1, 16
40201c67: f00d ret.n
@@ -1233,12 +1233,12 @@ Disassembly of section .irom0.text:
40201c6c: 201c70 or a1, a12, a7
40201c6f: c11240 mul16u a1, a2, a4
40201c72: 6102f0 excw
-40201c75: 980503 excw
+40201c75: 99c503 excw
40201c78: fc3137 bltu a1, a3, 40201c78
40201c7b: ff .byte 0xff
40201c7c: 00a042 movi a4, 0
40201c7f: f4a122 movi a2, 0x1f4
-40201c82: 41c245 call0 402438a8
+40201c82: 41c405 call0 402438c4
40201c85: 032102 l32i a0, a1, 12
40201c88: 10c112 addi a1, a1, 16
40201c8b: f00d ret.n
@@ -1248,13 +1248,13 @@ Disassembly of section .irom0.text:
40201c95: 00ea add.n a0, a0, a14
40201c97: c11200 mul16u a1, a2, a0
40201c9a: 6102f0 excw
-40201c9d: 7a8503 excw
-40201ca0: 0c0537 bnone a5, a3, 40201cb0
+40201c9d: 7c4503 excw
+40201ca0: 0dc537 bnall a5, a3, 40201cb1
40201ca3: 3138 l32i.n a3, a1, 12
40201ca5: fffb addi.n a15, a15, 15
40201ca7: fffb21 l32r a2, 40201c94
40201caa: 00a042 movi a4, 0
-40201cad: 41bf85 call0 402438a8
+40201cad: 41c145 call0 402438c4
40201cb0: 3108 l32i.n a0, a1, 12
40201cb2: 10c112 addi a1, a1, 16
40201cb5: f00d ret.n
@@ -1361,7 +1361,7 @@ Disassembly of section .irom0.text:
40201da6: 1d6202 s32i a0, a2, 116
40201da9: 830c movi.n a3, 8
40201dab: fff921 l32r a2, 40201d90
-40201dae: 338445 call0 402355f4
+40201dae: 338605 call0 40235610
40201db1: 0108 l32i.n a0, a1, 0
40201db3: 10c112 addi a1, a1, 16
40201db6: f00d ret.n
@@ -1518,26 +1518,26 @@ Disassembly of section .irom0.text:
40201f1f: 112222 l32i a2, a2, 68
40201f22: 302230 xor a2, a2, a3
40201f25: f00d ret.n
-40201f27: a98800 excw
-40201f2a: 704024 excw
+40201f27: a9a800 excw
+40201f2a: 904024 excw
40201f2d: 24a9 s32i.n a10, a4, 8
-40201f2f: a99840 excw
+40201f2f: a9b840 excw
40201f32: 244024 excw
40201f35: fec9 s32i.n a12, a14, 60
40201f37: 3f .byte 0x3f
-40201f38: 24a9a0 extui a10, a10, 9, 3
+40201f38: 24a9c0 extui a10, a12, 9, 3
40201f3b: 186840 excw
40201f3e: ff .byte 0xff
40201f3f: 3f .byte 0x3f
40201f40: c17b addi.n a12, a1, 7
40201f42: fe .byte 0xfe
40201f43: 3f .byte 0x3f
-40201f44: 24a990 extui a10, a9, 9, 3
-40201f47: a9f040 excw
-40201f4a: c84024 excw
+40201f44: 24a9b0 extui a10, a11, 9, 3
+40201f47: aa1040 excw
+40201f4a: e84024 excw
40201f4d: 24a9 s32i.n a10, a4, 8
-40201f4f: a9d040 excw
-40201f52: c04024 excw
+40201f4f: a9f040 excw
+40201f52: e04024 excw
40201f55: 24a9 s32i.n a10, a4, 8
40201f57: c11240 mul16u a1, a2, a4
@@ -1828,7 +1828,7 @@ Disassembly of section .irom0.text:
40202230: 02b427 bgeu a4, a2, 40202236
40202233: 05a032 movi a3, 5
40202236: 020c movi.n a2, 0
-40202238: 35aa05 call0 40237cdc
+40202238: 35abc5 call0 40237cf8
4020223b: 1108 l32i.n a0, a1, 4
4020223d: 828c beqz.n a2, 40202249
4020223f: 1238 l32i.n a3, a2, 4
@@ -2007,7 +2007,7 @@ Disassembly of section .irom0.text:
402023f2: fb0801 l32r a0, 40201014 <_irom0_text_start+0x4>
402023f5: 0000c0 callx0 a0
402023f8: ff9f21 l32r a2, 40202274
-402023fb: 34dd45 call0 402371d0
+402023fb: 34df05 call0 402371ec
402023fe: 2ca102 movi a0, 0x12c
40202401: 3c5e02 s16i a0, a14, 120
40202404: 4b2d22 l32i a2, a13, 0x12c
@@ -2065,7 +2065,7 @@ Disassembly of section .irom0.text:
40202490: 001185 call0 402025ac
40202493: 000686 j 402024b1
40202496: 012c22 l32i a2, a12, 4
-40202499: 32fd05 call0 4023546c
+40202499: 32fec5 call0 40235488
4020249c: 880f42 l8ui a4, a15, 136
4020249f: 0e1466 bnei a4, 1, 402024b1
402024a2: 890f02 l8ui a0, a15, 137
@@ -2085,7 +2085,7 @@ Disassembly of section .irom0.text:
402024ca: fad201 l32r a0, 40201014 <_irom0_text_start+0x4>
402024cd: 0000c0 callx0 a0
402024d0: ff6e21 l32r a2, 40202288
-402024d3: 34cfc5 call0 402371d0
+402024d3: 34d185 call0 402371ec
402024d6: 64a002 movi a0, 100
402024d9: ffc906 j 40202401
402024dc: 000000 ill
@@ -2093,7 +2093,7 @@ Disassembly of section .irom0.text:
402024e2: 670c movi.n a7, 6
402024e4: 935780 movnez a5, a7, a8
402024e7: 053d mov.n a3, a5
-402024e9: 35b745 call0 40238060
+402024e9: 35b905 call0 4023807c
402024ec: 5d28 l32i.n a2, a13, 20
402024ee: 013d mov.n a3, a1
402024f0: 051d05 call0 402076c4
@@ -2109,7 +2109,7 @@ Disassembly of section .irom0.text:
40202509: e8cbb2 addi a11, a11, -24
4020250c: 0c4cb2 s8i a11, a12, 12
4020250f: 022926 beqi a9, 2, 40202515
-40202512: 34cc45 call0 402371d8
+40202512: 34ce05 call0 402371f4
40202515: 1e8ac5 call0 40220dc4
40202518: fdc222 addi a2, a2, -3
4020251b: dc6256 bnez a2, 402022e5
@@ -2132,7 +2132,7 @@ Disassembly of section .irom0.text:
4020254b: 0000c0 callx0 a0
4020254e: 5e0f42 l8ui a4, a15, 94
40202551: 0b2426 beqi a4, 2, 40202560
-40202554: 34cb05 call0 40237208
+40202554: 34ccc5 call0 40237224
40202557: 203220 or a3, a2, a2
4020255a: 096c22 s32i a2, a12, 36
4020255d: 000046 j 40202562
@@ -2145,17 +2145,17 @@ Disassembly of section .irom0.text:
4020256f: 5e0f52 l8ui a5, a15, 94
40202572: fec552 addi a5, a5, -2
40202575: f38556 bnez a5, 402024b1
-40202578: 31e3c5 call0 402343b8
+40202578: 31e585 call0 402343d4
4020257b: f32216 beqz a2, 402024b1
4020257e: 120c movi.n a2, 1
40202580: 130c movi.n a3, 1
-40202582: 2a1dc5 call0 4022c760
+40202582: 2a1f85 call0 4022c77c
40202585: ff4231 l32r a3, 40202290
40202588: 9c28 l32i.n a2, a12, 36
4020258a: e8a342 movi a4, 0x3e8
4020258d: 822240 mull a2, a2, a4
40202590: 223a add.n a2, a2, a3
-40202592: 326c45 call0 40234c58
+40202592: 326e05 call0 40234c74
40202595: ffc606 j 402024b1
40202598: 100c movi.n a0, 1
4020259a: ff5286 j 402022e8
@@ -2182,7 +2182,7 @@ Disassembly of section .irom0.text:
402025cd: 096256 bnez a2, 40202667
402025d0: 5e0032 l8ui a3, a0, 94
402025d3: 052326 beqi a3, 2, 402025dc
-402025d6: 34c305 call0 40237208
+402025d6: 34c4c5 call0 40237224
402025d9: 096c22 s32i a2, a12, 36
402025dc: ff2c21 l32r a2, 4020228c
402025df: ff3001 l32r a0, 402022a0
@@ -2201,12 +2201,12 @@ Disassembly of section .irom0.text:
40202604: 0e4c52 s8i a5, a12, 14
40202607: 0425b6 bltui a5, 2, 4020260f
4020260a: 020c movi.n a2, 0
-4020260c: 32d845 call0 40235394
+4020260c: 32da05 call0 402353b0
4020260f: ff1161 l32r a6, 40202254
40202612: 5e0662 l8ui a6, a6, 94
40202615: 022626 beqi a6, 2, 4020261b
40202618: 001ec6 j 40202697
-4020261b: 31d9c5 call0 402343b8
+4020261b: 31db85 call0 402343d4
4020261e: 075216 beqz a2, 40202697
40202621: ffe081 l32r a8, 402025a4
40202624: 120c movi.n a2, 1
@@ -2214,7 +2214,7 @@ Disassembly of section .irom0.text:
40202628: 130c movi.n a3, 1
4020262a: 771b addi.n a7, a7, 1
4020262c: 0879 s32i.n a7, a8, 0
-4020262e: 2a1305 call0 4022c760
+4020262e: 2a14c5 call0 4022c77c
40202631: ffdd21 l32r a2, 402025a8
40202634: 9c38 l32i.n a3, a12, 36
40202636: 2139 s32i.n a3, a1, 8
@@ -2225,7 +2225,7 @@ Disassembly of section .irom0.text:
40202643: 2108 l32i.n a0, a1, 8
40202645: 0d3827 bltu a8, a2, 40202656
40202648: 020c movi.n a2, 0
-4020264a: 2b8205 call0 4022de6c
+4020264a: 2b83c5 call0 4022de88
4020264d: 9c08 l32i.n a0, a12, 36
4020264f: ffd5a1 l32r a10, 402025a4
40202652: 090c movi.n a9, 0
@@ -2234,11 +2234,11 @@ Disassembly of section .irom0.text:
40202659: e8a322 movi a2, 0x3e8
4020265c: 822020 mull a2, a0, a2
4020265f: 223a add.n a2, a2, a3
-40202661: 325f45 call0 40234c58
+40202661: 326105 call0 40234c74
40202664: 000bc6 j 40202697
40202667: 01a022 movi a2, 1
4020266a: 284c22 s8i a2, a12, 40
-4020266d: 32d245 call0 40235394
+4020266d: 32d405 call0 402353b0
40202670: 0f0c02 l8ui a0, a12, 15
40202673: fda042 movi a4, 253
40202676: 1d6017 bbci a0, 1, 40202697
@@ -2256,7 +2256,7 @@ Disassembly of section .irom0.text:
4020269a: 002102 l32i a0, a1, 0
4020269d: 10c112 addi a1, a1, 16
402026a0: f00d ret.n
-402026a2: 000000 ill
+402026a2: 200000 or a0, a0, a0
402026a5: 24aa add.n a2, a4, a10
402026a7: 167840 excw
402026aa: ff .byte 0xff
@@ -2516,14 +2516,14 @@ Disassembly of section .irom0.text:
40202922: 013d mov.n a3, a1
40202924: 240c movi.n a4, 2
40202926: 64a052 movi a5, 100
-40202929: 2fc705 call0 4023259c
+40202929: 2fc8c5 call0 402325b8
4020292c: 520c movi.n a2, 5
4020292e: 030c movi.n a3, 0
40202930: ed5c32 s16i a3, a12, 0x1da
40202933: 116d22 s32i a2, a13, 68
40202936: 430c movi.n a3, 4
40202938: ffed21 l32r a2, 402028ec
-4020293b: 32cb85 call0 402355f4
+4020293b: 32cd45 call0 40235610
4020293e: 0d2d mov.n a2, a13
40202940: 318b addi.n a3, a1, 8
40202942: 04d805 call0 402076c4
@@ -2565,8 +2565,8 @@ Disassembly of section .irom0.text:
402029a2: f108 l32i.n a0, a1, 60
402029a4: 50c112 addi a1, a1, 80
402029a7: f00d ret.n
-402029a9: 3482c5 call0 402371d8
-402029ac: 348585 call0 40237208
+402029a9: 348485 call0 402371f4
+402029ac: 348745 call0 40237224
402029af: 023d mov.n a3, a2
402029b1: fff586 j 4020298b
402029b4: 000e24 excw
@@ -2578,7 +2578,7 @@ Disassembly of section .irom0.text:
402029c6: 320c movi.n a2, 3
402029c8: 0b1332 l16ui a3, a3, 22
402029cb: 240c movi.n a4, 2
-402029cd: 3d0f05 call0 4023fac0
+402029cd: 3d10c5 call0 4023fadc
402029d0: 030c movi.n a3, 0
402029d2: 1c08 l32i.n a0, a12, 4
402029d4: 024d mov.n a4, a2
@@ -2732,7 +2732,7 @@ Disassembly of section .irom0.text:
40202b48: ffa0f2 movi a15, 255
40202b4b: 3d8c beqz.n a13, 40202b52
40202b4d: 0d2d mov.n a2, a13
-40202b4f: 32b005 call0 40235650
+40202b4f: 32b1c5 call0 4023566c
40202b52: 0f2d mov.n a2, a15
40202b54: c1c8 l32i.n a12, a1, 48
40202b56: d1d8 l32i.n a13, a1, 52
@@ -3089,7 +3089,7 @@ Disassembly of section .irom0.text:
40202f18: 320c movi.n a2, 3
40202f1a: 0b1c32 l16ui a3, a12, 22
40202f1d: 040c movi.n a4, 0
-40202f1f: 3cba05 call0 4023fac0
+40202f1f: 3cbbc5 call0 4023fadc
40202f22: 4129 s32i.n a2, a1, 16
40202f24: c2ac beqz.n a2, 40202f54
40202f26: 1228 l32i.n a2, a2, 4
@@ -3109,7 +3109,7 @@ Disassembly of section .irom0.text:
40202f49: 071252 l16ui a5, a2, 14
40202f4c: 551b addi.n a5, a5, 1
40202f4e: 075252 s16i a5, a2, 14
-40202f51: 3caf45 call0 4023fa48
+40202f51: 3cb105 call0 4023fa64
40202f54: 6168 l32i.n a6, a1, 24
40202f56: 000662 l8ui a6, a6, 0
40202f59: 11e607 bbsi a6, 0, 40202f6e
@@ -3856,7 +3856,7 @@ Disassembly of section .irom0.text:
4020373d: 06d905 call0 4020a4d0
40203740: 628c beqz.n a2, 4020374a
40203742: 0d2d mov.n a2, a13
-40203744: 31d245 call0 4023546c
+40203744: 31d405 call0 40235488
40203747: 000446 j 4020375c
4020374a: f99ba1 l32r a10, 40201db8
4020374d: 0d0c movi.n a13, 0
@@ -3908,7 +3908,7 @@ Disassembly of section .irom0.text:
402037ab: 3f .byte 0x3f
402037ac: fe88d0 excw
402037af: 3f .byte 0x3f
-402037b0: 24aa40 extui a10, a4, 10, 3
+402037b0: 24aa60 extui a10, a6, 10, 3
402037b3: 0e0040 excw
402037b6: b06000 addx8 a6, a0, a0
402037b9: ff1a add.n a15, a15, a1
@@ -3917,7 +3917,7 @@ Disassembly of section .irom0.text:
402037be: fe .byte 0xfe
402037bf: 3f .byte 0x3f
402037c0: 001000 excw
-402037c3: aa2000 excw
+402037c3: aa4000 excw
402037c6: 744024 excw
402037c9: 402037 blt a0, a3, 4020380d
402037cc: 742c movi.n a4, 39
@@ -4007,7 +4007,7 @@ Disassembly of section .irom0.text:
402038ba: 1128 l32i.n a2, a1, 4
402038bc: 009d32 l16si a3, a13, 0
402038bf: 060222 l8ui a2, a2, 6
-402038c2: 26f405 call0 4022a804
+402038c2: 26f5c5 call0 4022a820
402038c5: ffb361 l32r a6, 40203794
402038c8: 009d52 l16si a5, a13, 0
402038cb: ffb881 l32r a8, 402037ac
@@ -4119,7 +4119,7 @@ Disassembly of section .irom0.text:
402039f9: 012122 l32i a2, a1, 4
402039fc: 009d32 l16si a3, a13, 0
402039ff: 060222 l8ui a2, a2, 6
-40203a02: 26e005 call0 4022a804
+40203a02: 26e1c5 call0 4022a820
40203a05: 009d32 l16si a3, a13, 0
40203a08: ff6961 l32r a6, 402037ac
40203a0b: 01a052 movi a5, 1
@@ -4168,7 +4168,7 @@ Disassembly of section .irom0.text:
40203a84: 004532 s8i a3, a5, 0
40203a87: 060222 l8ui a2, a2, 6
40203a8a: 030c movi.n a3, 0
-40203a8c: 26d745 call0 4022a804
+40203a8c: 26d905 call0 4022a820
40203a8f: ff47b1 l32r a11, 402037ac
40203a92: ff4091 l32r a9, 40203794
40203a95: 1a0c movi.n a10, 1
@@ -4195,7 +4195,7 @@ Disassembly of section .irom0.text:
40203ad1: 0044c2 s8i a12, a4, 0
40203ad4: 009d32 l16si a3, a13, 0
40203ad7: 060222 l8ui a2, a2, 6
-40203ada: 26d285 call0 4022a804
+40203ada: 26d445 call0 4022a820
40203add: ff2d71 l32r a7, 40203794
40203ae0: 009d62 l16si a6, a13, 0
40203ae3: ff3291 l32r a9, 402037ac
@@ -4224,7 +4224,7 @@ Disassembly of section .irom0.text:
40203b27: 004652 s8i a5, a6, 0
40203b2a: 38af32 movi a3, -200
40203b2d: 060222 l8ui a2, a2, 6
-40203b30: 26cd05 call0 4022a804
+40203b30: 26cec5 call0 4022a820
40203b33: ff1e21 l32r a2, 402037ac
40203b36: 100c movi.n a0, 1
40203b38: ff17b1 l32r a11, 40203794
@@ -4260,7 +4260,7 @@ Disassembly of section .irom0.text:
40203b90: 0043c2 s8i a12, a3, 0
40203b93: 060222 l8ui a2, a2, 6
40203b96: 009d32 l16si a3, a13, 0
-40203b99: 26c685 call0 4022a804
+40203b99: 26c845 call0 4022a820
40203b9c: fefe71 l32r a7, 40203794
40203b9f: 009d62 l16si a6, a13, 0
40203ba2: ff0291 l32r a9, 402037ac
@@ -4358,7 +4358,7 @@ Disassembly of section .irom0.text:
40203c92: f98401 l32r a0, 402022a4
40203c95: 0000c0 callx0 a0
40203c98: 120c movi.n a2, 1
-40203c9a: 339645 call0 40237600
+40203c9a: 339805 call0 4023761c
40203c9d: f84621 l32r a2, 40201db8
40203ca0: fec545 call0 402028f8
40203ca3: ffc791 l32r a9, 40203bc0
@@ -4379,7 +4379,7 @@ Disassembly of section .irom0.text:
40203cca: 060c movi.n a6, 0
40203ccc: ffbe41 l32r a4, 40203bc4
40203ccf: 2149 s32i.n a4, a1, 8
-40203cd1: 2e70c5 call0 402323e0
+40203cd1: 2e7285 call0 402323fc
40203cd4: 3108 l32i.n a0, a1, 12
40203cd6: b0dc bnez.n a0, 40203cf5
40203cd8: 0c28 l32i.n a2, a12, 0
@@ -4389,9 +4389,9 @@ Disassembly of section .irom0.text:
40203ce0: f89541 l32r a4, 40201f34
40203ce3: 202c05 call0 40223fa4
40203ce6: 0c29 s32i.n a2, a12, 0
-40203ce8: 3bbb85 call0 4023f8a4
+40203ce8: 3bbd45 call0 4023f8c0
40203ceb: 0c28 l32i.n a2, a12, 0
-40203ced: 3ba885 call0 4023f778
+40203ced: 3baa45 call0 4023f794
40203cf0: 000c06 j 40203d24
40203cf3: 010000 slli a0, a0, 32
40203cf6: c0ffb5 excw
@@ -4407,10 +4407,10 @@ Disassembly of section .irom0.text:
40203d10: 102240 and a2, a2, a4
40203d13: 0020c0 memw
40203d16: a56322 s32i a2, a3, 0x294
-40203d19: 3069c5 call0 402343b8
+40203d19: 306b85 call0 402343d4
40203d1c: 12cc bnez.n a2, 40203d21
-40203d1e: 307445 call0 40234464
-40203d21: 311385 call0 40234e5c
+40203d1e: 307605 call0 40234480
+40203d21: 311545 call0 40234e78
40203d24: 1d09c5 call0 40220dc4
40203d27: fdc252 addi a5, a2, -3
40203d2a: ede556 bnez a5, 40203c0c
@@ -4486,7 +4486,7 @@ Disassembly of section .irom0.text:
40203dd4: f7f9f1 l32r a15, 40201db8
40203dd7: 01a0d2 movi a13, 1
40203dda: 0c28 l32i.n a2, a12, 0
-40203ddc: 3bb005 call0 4023f8e0
+40203ddc: 3bb1c5 call0 4023f8fc
40203ddf: 0c2d mov.n a2, a12
40203de1: 203885 call0 4022416c
40203de4: 000c86 j 40203e1a
@@ -4501,12 +4501,12 @@ Disassembly of section .irom0.text:
40203dff: 2000d0 or a0, a0, a13
40203e02: 0020c0 memw
40203e05: a56202 s32i a0, a2, 0x294
-40203e08: 305ac5 call0 402343b8
+40203e08: 305c85 call0 402343d4
40203e0b: 002216 beqz a2, 40203e11
-40203e0e: 305d85 call0 402343e8
+40203e0e: 305f45 call0 40234404
40203e11: ffcd21 l32r a2, 40203d48
40203e14: 001222 l16ui a2, a2, 0
-40203e17: 311845 call0 40234f9c
+40203e17: 311a05 call0 40234fb8
40203e1a: f9e131 l32r a3, 402025a0
40203e1d: f91b21 l32r a2, 4020228c
40203e20: 0043d2 s8i a13, a3, 0
@@ -4516,9 +4516,9 @@ Disassembly of section .irom0.text:
40203e2c: ff6631 l32r a3, 40203bc4
40203e2f: 02a042 movi a4, 2
40203e32: 050c movi.n a5, 0
-40203e34: 2e7645 call0 4023259c
+40203e34: 2e7805 call0 402325b8
40203e37: 120c movi.n a2, 1
-40203e39: 33b4c5 call0 40237988
+40203e39: 33b685 call0 402379a4
40203e3c: fa1a01 l32r a0, 402026a4
40203e3f: 652f22 l32i a2, a15, 0x194
40203e42: 0d0c movi.n a13, 0
@@ -4541,13 +4541,13 @@ Disassembly of section .irom0.text:
40203e6e: 040c movi.n a4, 0
40203e70: 150c movi.n a5, 1
40203e72: 060c movi.n a6, 0
-40203e74: 2e5685 call0 402323e0
+40203e74: 2e5845 call0 402323fc
40203e77: 020c movi.n a2, 0
40203e79: 130c movi.n a3, 1
40203e7b: 040c movi.n a4, 0
-40203e7d: 3372c5 call0 402375ac
+40203e7d: 337485 call0 402375c8
40203e80: 120c movi.n a2, 1
-40203e82: 337a85 call0 4023762c
+40203e82: 337c45 call0 40237648
40203e85: 5eec bnez.n a14, 40203eae
40203e87: f8f341 l32r a4, 40202254
40203e8a: 5f0442 l8ui a4, a4, 95
@@ -4577,7 +4577,7 @@ Disassembly of section .irom0.text:
40203ecd: 640c movi.n a4, 6
40203ecf: 93d450 movnez a13, a4, a5
40203ed2: 0d3d mov.n a3, a13
-40203ed4: 341885 call0 40238060
+40203ed4: 341a45 call0 4023807c
40203ed7: ff9f71 l32r a7, 40203d54
40203eda: 342c62 l32i a6, a12, 208
40203edd: 120c movi.n a2, 1
@@ -5533,7 +5533,7 @@ Disassembly of section .irom0.text:
40204869: ff .byte 0xff
4020486a: 8f .byte 0x8f
4020486b: ff .byte 0xff
-4020486c: 24aa50 extui a10, a5, 10, 3
+4020486c: 24aa70 extui a10, a7, 10, 3
4020486f: c11240 mul16u a1, a2, a4
40204872: 6102e0 excw
40204875: 61e203 excw
@@ -5662,7 +5662,7 @@ Disassembly of section .irom0.text:
402049a9: 0488 l32i.n a8, a4, 0
402049ab: 1109 s32i.n a0, a1, 4
402049ad: 0be877 bbsi a8, 7, 402049bc
-402049b0: 326945 call0 40237048
+402049b0: 326b05 call0 40237064
402049b3: 1148 l32i.n a4, a1, 4
402049b5: 7429 s32i.n a2, a4, 28
402049b7: 9448 l32i.n a4, a4, 36
@@ -5697,12 +5697,12 @@ Disassembly of section .irom0.text:
402049ff: 09e047 bbsi a0, 4, 40204a0c
40204a02: b3ac beqz.n a3, 40204a31
40204a04: 032d mov.n a2, a3
-40204a06: 30c485 call0 40235650
+40204a06: 30c645 call0 4023566c
40204a09: 000906 j 40204a31
40204a0c: 03a022 movi a2, 3
40204a0f: 0b1332 l16ui a3, a3, 22
40204a12: 02a042 movi a4, 2
-40204a15: 3b0a85 call0 4023fac0
+40204a15: 3b0c45 call0 4023fadc
40204a18: 002152 l32i a5, a1, 0
40204a1b: 030c movi.n a3, 0
40204a1d: 1568 l32i.n a6, a5, 4
@@ -5730,7 +5730,7 @@ Disassembly of section .irom0.text:
40204a4d: 20c220 or a12, a2, a2
40204a50: 05eb addi.n a0, a5, 14
40204a52: 07b407 bgeu a4, a0, 40204a5d
-40204a55: 30bf85 call0 40235650
+40204a55: 30c145 call0 4023566c
40204a58: 0c0c movi.n a12, 0
40204a5a: 003006 j 40204b1e
40204a5d: 054d mov.n a4, a5
@@ -5942,7 +5942,7 @@ Disassembly of section .irom0.text:
40204c4e: 030c movi.n a3, 0
40204c50: 350c movi.n a5, 3
40204c52: 040042 l8ui a4, a0, 4
-40204c55: 31d605 call0 402369b8