[*] Binary protection state of httpd
Full RELRO Canary found NX disabled PIE enabled No RPATH No RUNPATH No Symbols
[*] Function sprintf tear down of httpd
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x59ebc */
| #include <stdint.h>
|
; (fcn) fcn.00059ebc () | void fcn_00059ebc () {
0x00059ebc lui gp, 5 |
0x00059ec0 addiu gp, gp, -0x6f9c |
0x00059ec4 addu gp, gp, t9 | gp += t9;
0x00059ec8 addiu sp, sp, -0x40 |
0x00059ecc lw v0, 0xc(a1) | v0 = *((a1 + 3));
0x00059ed0 sw gp, 0x20(sp) | *(var_20h) = gp;
0x00059ed4 sw s2, 0x38(sp) | *(var_38h) = s2;
0x00059ed8 sw s1, 0x34(sp) | *(var_34h) = s1;
0x00059edc sw s0, 0x30(sp) | *(var_30h) = s0;
0x00059ee0 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x00059ee4 move s1, a1 | s1 = a1;
0x00059ee8 move s0, a0 | s0 = a0;
0x00059eec move s2, a2 | s2 = a2;
| if (v0 == 0) {
0x00059ef0 beqz v0, 0x59f5c | goto label_1;
| }
0x00059ef4 lw v0, -0x7fac(gp) | v0 = *(gp);
0x00059ef8 lw a1, 0x14(s1) | a1 = *((s1 + 5));
0x00059efc addiu v0, v0, 0x47dc | v0 += 0x47dc;
| if (a3 == 0) {
0x00059f00 beqz a3, 0x59f94 | goto label_2;
| }
| do {
0x00059f04 lw v1, -0x7fac(gp) | v1 = *(gp);
0x00059f08 addiu v1, v1, -0x7d4 | v1 += -aav.0x000007d4;
| label_0:
0x00059f0c lw a2, -0x7fac(gp) | a2 = *(gp);
0x00059f10 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00059f14 move a0, s0 | a0 = s0;
0x00059f18 sw a3, 0x14(sp) | *(var_14h) = a3;
0x00059f1c sw zero, 0x1c(sp) | *(var_1ch) = 0;
0x00059f20 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00059f24 sw v1, 0x10(sp) | *(var_10h) = v1;
0x00059f28 move a3, s2 | a3 = s2;
0x00059f2c addiu a2, a2, -0x6a2c | a2 += -0x6a2c;
0x00059f30 jalr t9 | t9 ();
0x00059f34 lw gp, 0x20(sp) | gp = *(var_20h);
0x00059f38 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x00059f3c lw s2, 0x38(sp) | s2 = *(var_38h);
0x00059f40 lw s1, 0x34(sp) | s1 = *(var_34h);
0x00059f44 move a0, s0 | a0 = s0;
0x00059f48 lw t9, -0x7e50(gp) | t9 = sym.ap_server_root_relative;
0x00059f4c lw s0, 0x30(sp) | s0 = *(var_30h);
0x00059f50 move a1, v0 | a1 = v0;
0x00059f54 addiu sp, sp, 0x40 |
0x00059f58 b 0x4d3e0 | void (*0x4d3e0)() ();
| label_1:
0x00059f5c lw t9, -0x7224(gp) | t9 = sym.imp.getpid;
0x00059f60 sw a3, 0x2c(sp) | *(var_2ch) = a3;
0x00059f64 jalr t9 | t9 ();
0x00059f68 lw gp, 0x20(sp) | gp = *(var_20h);
0x00059f6c move a2, v0 | a2 = v0;
0x00059f70 move a0, s0 | a0 = s0;
0x00059f74 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00059f78 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
| /* esilref: '.&d' */
0x00059f7c addiu a1, a1, 0x202c | a1 += aav.0x0000202c;
0x00059f80 jalr t9 | t9 ();
0x00059f84 lw a3, 0x2c(sp) | a3 = *(var_2ch);
0x00059f88 lw gp, 0x20(sp) | gp = *(var_20h);
0x00059f8c lw a1, 0x14(s1) | a1 = *((s1 + 5));
0x00059f90 bnez a3, 0x59f04 |
| } while (a3 != 0);
| label_2:
0x00059f94 lw a3, -0x7fac(gp) | a3 = *(gp);
0x00059f98 addiu a3, a3, 0x47dc | a3 += 0x47dc;
0x00059f9c move v1, a3 | v1 = a3;
0x00059fa0 b 0x59f0c | goto label_0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x62c50 */
| #include <stdint.h>
|
; (fcn) fcn.00062c50 () | void fcn_00062c50 () {
0x00062c50 lui gp, 4 |
0x00062c54 addiu gp, gp, 0x2d0 |
0x00062c58 addu gp, gp, t9 | gp += t9;
0x00062c5c addiu sp, sp, -0x148 |
0x00062c60 lw t9, -0x7e50(gp) | t9 = sym.ap_server_root_relative;
0x00062c64 sw s3, 0x138(sp) | *(var_138h) = s3;
0x00062c68 lw s3, -0x7534(gp) | s3 = *(gp);
0x00062c6c sw s1, 0x130(sp) | *(var_130h) = s1;
0x00062c70 move s1, a0 | s1 = a0;
0x00062c74 lw v0, (s3) | v0 = *(s3);
0x00062c78 lw a0, 0x2c(a0) | a0 = *((a0 + 11));
0x00062c7c sw gp, 0x18(sp) | *(var_18h) = gp;
0x00062c80 sw s5, 0x140(sp) | *(var_140h) = s5;
0x00062c84 sw s4, 0x13c(sp) | *(var_13ch) = s4;
0x00062c88 sw s2, 0x134(sp) | *(var_134h) = s2;
0x00062c8c sw s0, 0x12c(sp) | *(var_12ch) = s0;
0x00062c90 sw ra, 0x144(sp) | *(var_144h) = ra;
0x00062c94 move s4, a1 | s4 = a1;
0x00062c98 sw v0, 0x124(sp) | *(var_124h) = v0;
0x00062c9c move a1, a2 | a1 = a2;
0x00062ca0 move s0, a2 | s0 = a2;
0x00062ca4 move s5, a3 | s5 = a3;
0x00062ca8 bal 0x4d3e0 | sym_ap_server_root_relative ();
0x00062cac move s2, v0 | s2 = v0;
0x00062cb0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s0 != 0) {
0x00062cb4 beqz s0, 0x62cd0 |
0x00062cb8 lw t9, -0x72b8(gp) | t9 = sym.imp.strchr;
0x00062cbc addiu a1, zero, 0x2f | a1 = 0x2f;
0x00062cc0 move a0, s0 | a0 = s0;
0x00062cc4 jalr t9 | t9 ();
0x00062cc8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00062ccc beqz v0, 0x62d6c | goto label_2;
| }
| }
0x00062cd0 lw t9, -0x7750(gp) | t9 = sym.imp.apr_dso_load;
| if (s2 == 0) {
0x00062cd4 beqz s2, 0x62d9c | goto label_3;
| }
0x00062cd8 lw a2, 0x28(s1) | a2 = *((s1 + 10));
0x00062cdc move a1, s2 | a1 = s2;
0x00062ce0 sw s2, (s5) | *(s5) = s2;
0x00062ce4 move a0, s4 | a0 = s4;
0x00062ce8 jalr t9 | t9 ();
0x00062cec lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00062cf0 beqz v0, 0x62d94 | goto label_4;
| }
| do {
0x00062cf4 lw t9, -0x77a4(gp) | t9 = *(gp);
0x00062cf8 lw a0, (s4) | a0 = *(s4);
0x00062cfc addiu a2, zero, 0x100 | a2 = aav.0x00000100;
0x00062d00 addiu a1, sp, 0x24 | a1 = sp + 0x24;
0x00062d04 lw s1, 0x2c(s1) | s1 = *((s1 + 11));
0x00062d08 jalr t9 | t9 ();
0x00062d0c lw gp, 0x18(sp) | gp = *(var_18h);
0x00062d10 sw zero, 0x14(sp) | *(var_14h) = 0;
0x00062d14 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00062d18 lw a3, -0x7fac(gp) | a3 = *(gp);
0x00062d1c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00062d20 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
| /* str._into_server:_ */
0x00062d24 addiu a3, a3, 0x4428 | a3 += 0x4428;
0x00062d28 move a2, s0 | a2 = s0;
| /* str.Cannot_load_ */
0x00062d2c addiu a1, a1, 0x4438 | a1 += 0x4438;
0x00062d30 move a0, s1 | a0 = s1;
0x00062d34 jalr t9 | t9 ();
0x00062d38 lw gp, 0x18(sp) | gp = *(var_18h);
| label_0:
0x00062d3c lw a0, 0x124(sp) | a0 = *(var_124h);
0x00062d40 lw v1, (s3) | v1 = *(s3);
0x00062d44 lw ra, 0x144(sp) | ra = *(var_144h);
| if (a0 != v1) {
0x00062d48 bne a0, v1, 0x62dc4 | goto label_5;
| }
0x00062d4c lw s5, 0x140(sp) | s5 = *(var_140h);
0x00062d50 lw s4, 0x13c(sp) | s4 = *(var_13ch);
0x00062d54 lw s3, 0x138(sp) | s3 = *(var_138h);
0x00062d58 lw s2, 0x134(sp) | s2 = *(var_134h);
0x00062d5c lw s1, 0x130(sp) | s1 = *(var_130h);
0x00062d60 lw s0, 0x12c(sp) | s0 = *(var_12ch);
0x00062d64 addiu sp, sp, 0x148 |
0x00062d68 jr ra | return v0;
| label_2:
0x00062d6c sw s2, (s5) | *(s5) = s2;
0x00062d70 lw a2, 0x28(s1) | a2 = *((s1 + 10));
| if (s2 != 0) {
0x00062d74 bnez s2, 0x62dd0 | goto label_6;
| }
| label_1:
0x00062d78 lw t9, -0x7750(gp) | t9 = sym.imp.apr_dso_load;
0x00062d7c sw s0, (s5) | *(s5) = s0;
0x00062d80 move a1, s0 | a1 = s0;
0x00062d84 move a0, s4 | a0 = s4;
0x00062d88 jalr t9 | t9 ();
0x00062d8c lw gp, 0x18(sp) | gp = *(var_18h);
0x00062d90 bnez v0, 0x62cf4 |
| } while (v0 != 0);
| do {
| label_4:
0x00062d94 move v0, zero | v0 = 0;
0x00062d98 b 0x62d3c | goto label_0;
| label_3:
0x00062d9c lw v0, 0x38(s1) | v0 = *((s1 + 14));
0x00062da0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00062da4 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00062da8 lw a2, (v0) | a2 = *(v0);
0x00062dac lw a0, 0x2c(s1) | a0 = *((s1 + 11));
0x00062db0 move a3, s0 | a3 = s0;
| /* str.Invalid__s_path__s */
0x00062db4 addiu a1, a1, 0x4414 | a1 += 0x4414;
0x00062db8 jalr t9 | t9 ();
0x00062dbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00062dc0 b 0x62d3c | goto label_0;
| label_5:
0x00062dc4 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00062dc8 jalr t9 | t9 ();
0x00062dcc nop |
| label_6:
0x00062dd0 lw t9, -0x7750(gp) | t9 = sym.imp.apr_dso_load;
0x00062dd4 move a1, s2 | a1 = s2;
0x00062dd8 move a0, s4 | a0 = s4;
0x00062ddc jalr t9 | t9 ();
0x00062de0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00062de4 beqz v0, 0x62d94 |
| } while (v0 == 0);
0x00062de8 lw a2, 0x28(s1) | a2 = *((s1 + 10));
0x00062dec b 0x62d78 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x63cb8 */
| #include <stdint.h>
|
; (fcn) fcn.00063cb8 () | void fcn_00063cb8 () {
| label_5:
0x00063cb8 lui gp, 4 |
0x00063cbc addiu gp, gp, -0xd98 |
0x00063cc0 addu gp, gp, t9 | gp += t9;
0x00063cc4 addiu sp, sp, -0x50 |
0x00063cc8 lw t9, -0x78b8(gp) | t9 = sym.ap_get_output_filter_handle;
0x00063ccc sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00063cd0 lw s0, -0x7534(gp) | s0 = *(gp);
0x00063cd4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00063cd8 sw s7, 0x48(sp) | *(var_48h) = s7;
0x00063cdc lw v0, (s0) | v0 = *(s0);
0x00063ce0 sw s6, 0x44(sp) | *(var_44h) = s6;
0x00063ce4 sw s5, 0x40(sp) | *(var_40h) = s5;
0x00063ce8 sw s4, 0x3c(sp) | *(var_3ch) = s4;
0x00063cec sw s2, 0x34(sp) | *(var_34h) = s2;
0x00063cf0 sw s1, 0x30(sp) | *(var_30h) = s1;
0x00063cf4 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00063cf8 sw s3, 0x38(sp) | *(var_38h) = s3;
0x00063cfc move s1, a0 | s1 = a0;
0x00063d00 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00063d04 move a0, a3 | a0 = a3;
0x00063d08 sw zero, 0x20(sp) | *(var_20h) = 0;
0x00063d0c move s2, a3 | s2 = a3;
0x00063d10 move s7, a1 | s7 = a1;
0x00063d14 move s4, a2 | s4 = a2;
0x00063d18 lw s5, 0x60(sp) | s5 = *(arg_60h);
0x00063d1c lw s6, 0x64(sp) | s6 = *(arg_64h);
0x00063d20 jalr t9 | t9 ();
0x00063d24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00063d28 beqz v0, 0x63e14 | goto label_6;
| }
0x00063d2c lw t9, -0x7200(gp) | t9 = sym.imp.apr_hash_get;
0x00063d30 lw a0, (s7) | a0 = *(s7);
0x00063d34 addiu a2, zero, -1 | a2 = -1;
0x00063d38 move a1, s4 | a1 = s4;
0x00063d3c move s3, v0 | s3 = v0;
0x00063d40 jalr t9 | t9 ();
0x00063d44 move s2, v0 | s2 = v0;
0x00063d48 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00063d4c beqz v0, 0x63e40 | goto label_7;
| }
| label_2:
0x00063d50 lw t9, -0x7544(gp) | t9 = sym.imp.apr_palloc;
0x00063d54 lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x00063d58 addiu a1, zero, 0x10 | a1 = 0x10;
0x00063d5c jalr t9 | t9 ();
0x00063d60 move s4, v0 | s4 = v0;
0x00063d64 lw gp, 0x18(sp) | gp = *(var_18h);
| if (s5 == 0) {
0x00063d68 beqz s5, 0x63df4 | goto label_8;
| }
0x00063d6c lw v0, -0x78bc(gp) | v0 = *(gp);
0x00063d70 sw zero, 0x10(sp) | *(var_10h_2) = 0;
0x00063d74 lw t9, -0x7cbc(gp) | t9 = sym.ap_expr_parse_cmd_mi;
0x00063d78 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00063d7c move a2, zero | a2 = 0;
0x00063d80 addiu a3, sp, 0x20 | a3 = sp + 0x20;
0x00063d84 sw v0, 0x14(sp) | *(var_14h_3) = v0;
0x00063d88 move a1, s5 | a1 = s5;
0x00063d8c move a0, s1 | a0 = s1;
0x00063d90 bal 0x48300 | sym_ap_expr_parse_cmd_mi ();
0x00063d94 lw a2, 0x20(sp) | a2 = *(var_20h);
0x00063d98 lw gp, 0x18(sp) | gp = *(var_18h);
| if (a2 == 0) {
0x00063d9c beqz a2, 0x63e34 | goto label_9;
| }
0x00063da0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00063da4 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00063da8 lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x00063dac move a3, zero | a3 = 0;
| /* str.Error_parsing_FilterProvider_expression: */
0x00063db0 addiu a1, a1, 0x4828 | a1 += 0x4828;
0x00063db4 jalr t9 | t9 ();
0x00063db8 lw gp, 0x18(sp) | gp = *(var_18h);
| do {
| label_0:
0x00063dbc lw a0, 0x24(sp) | a0 = *(var_24h);
0x00063dc0 lw v1, (s0) | v1 = *(s0);
0x00063dc4 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (a0 != v1) {
0x00063dc8 bne a0, v1, 0x63e8c | goto label_10;
| }
0x00063dcc lw s7, 0x48(sp) | s7 = *(var_48h);
0x00063dd0 lw s6, 0x44(sp) | s6 = *(var_44h);
0x00063dd4 lw s5, 0x40(sp) | s5 = *(var_40h);
0x00063dd8 lw s4, 0x3c(sp) | s4 = *(var_3ch);
0x00063ddc lw s3, 0x38(sp) | s3 = *(var_38h);
0x00063de0 lw s2, 0x34(sp) | s2 = *(var_34h);
0x00063de4 lw s1, 0x30(sp) | s1 = *(var_30h);
0x00063de8 lw s0, 0x2c(sp) | s0 = *(var_2ch);
0x00063dec addiu sp, sp, 0x50 |
0x00063df0 jr ra | return v0;
| label_8:
0x00063df4 sw s6, 4(s4) | *((s4 + 1)) = s6;
0x00063df8 sw zero, (s4) | *(s4) = 0;
| label_1:
0x00063dfc lw v0, 0x10(s2) | v0 = *((s2 + 4));
0x00063e00 sw s3, 8(s4) | *((s4 + 2)) = s3;
0x00063e04 sw v0, 0xc(s4) | *((s4 + 3)) = v0;
0x00063e08 move v0, zero | v0 = 0;
0x00063e0c sw s4, 0x10(s2) | *((s2 + 4)) = s4;
0x00063e10 b 0x63dbc |
| } while (1);
| label_6:
0x00063e14 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00063e18 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00063e1c lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x00063e20 move a2, s2 | a2 = s2;
| /* str.Unknown_filter_provider__s */
0x00063e24 addiu a1, a1, 0x480c | a1 += 0x480c;
0x00063e28 jalr t9 | t9 ();
0x00063e2c lw gp, 0x18(sp) | gp = *(var_18h);
0x00063e30 b 0x63dbc | goto label_0;
| label_9:
0x00063e34 sw v0, (s4) | *(s4) = v0;
0x00063e38 sw zero, 4(s4) | *((s4 + 1)) = 0;
0x00063e3c b 0x63dfc | goto label_1;
| label_7:
0x00063e40 lw t9, -0x7944(gp) | t9 = *(gp);
0x00063e44 move a3, zero | a3 = 0;
0x00063e48 move a2, s4 | a2 = s4;
0x00063e4c move a1, s7 | a1 = s7;
| /* fcn.00063b34 */
0x00063e50 addiu t9, t9, 0x3b34 | t9 += 0x3b34;
0x00063e54 move a0, s1 | a0 = s1;
0x00063e58 bal 0x63b34 | fcn_00063b34 ();
0x00063e5c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00063e60 bnez v0, 0x63dbc | goto label_0;
| }
0x00063e64 lw t9, -0x7200(gp) | t9 = sym.imp.apr_hash_get;
0x00063e68 lw a0, (s7) | a0 = *(s7);
0x00063e6c addiu a2, zero, -1 | a2 = -1;
0x00063e70 move a1, s4 | a1 = s4;
0x00063e74 jalr t9 | t9 ();
0x00063e78 move s2, v0 | s2 = v0;
0x00063e7c lw v0, 0x14(s3) | v0 = *((s3 + 5));
0x00063e80 lw gp, 0x18(sp) | gp = *(var_18h);
0x00063e84 sw v0, 0x14(s2) | *((s2 + 5)) = v0;
0x00063e88 b 0x63d50 | goto label_2;
| label_10:
0x00063e8c lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00063e90 jalr t9 | t9 ();
0x00063e94 nop |
0x00063e98 lui gp, 4 |
0x00063e9c addiu gp, gp, -0xf78 |
0x00063ea0 addu gp, gp, t9 | gp += t9;
0x00063ea4 lw v0, -0x7534(gp) | v0 = *(gp);
0x00063ea8 addiu sp, sp, -0x60 |
0x00063eac move v1, v0 | v1 = v0;
0x00063eb0 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x00063eb4 lw v1, (v1) | v1 = *(v1);
0x00063eb8 sw v0, 0x24(sp) | *(var_24h_2) = v0;
0x00063ebc slti v0, a2, 2 | v0 = (a2 < 2) ? 1 : 0;
0x00063ec0 sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x00063ec4 sw fp, 0x58(sp) | *(var_58h) = fp;
0x00063ec8 sw s7, 0x54(sp) | *(var_54h) = s7;
0x00063ecc sw s6, 0x50(sp) | *(var_50h) = s6;
0x00063ed0 sw s5, 0x4c(sp) | *(var_4ch_2) = s5;
0x00063ed4 sw s4, 0x48(sp) | *(var_48h_2) = s4;
0x00063ed8 sw s3, 0x44(sp) | *(var_44h_2) = s3;
0x00063edc sw s2, 0x40(sp) | *(var_40h_2) = s2;
0x00063ee0 sw s1, 0x3c(sp) | *(var_3ch_2) = s1;
0x00063ee4 sw s0, 0x38(sp) | *(var_38h_2) = s0;
0x00063ee8 sw v1, 0x34(sp) | *(var_34h_2) = v1;
0x00063eec sw zero, 0x30(sp) | *(var_30h_2) = 0;
| if (v0 != 0) {
0x00063ef0 bnez v0, 0x64078 | goto label_11;
| }
0x00063ef4 lw t9, -0x7654(gp) | t9 = sym.imp.apr_pstrdup;
0x00063ef8 move s0, a0 | s0 = a0;
0x00063efc move s1, a1 | s1 = a1;
0x00063f00 lw a0, 0x2c(a0) | a0 = *((a0 + 11));
0x00063f04 lw a1, (a3) | a1 = *(a3);
0x00063f08 sll s5, a2, 2 | s5 = a2 << 2;
0x00063f0c move s4, a3 | s4 = a3;
0x00063f10 jalr t9 | t9 ();
0x00063f14 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00063f18 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x00063f1c move a1, s5 | a1 = s5;
0x00063f20 lw t9, -0x7544(gp) | t9 = sym.imp.apr_palloc;
0x00063f24 move s6, v0 | s6 = v0;
0x00063f28 jalr t9 | t9 ();
0x00063f2c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00063f30 addiu a2, s5, -4 | a2 = s5 + -4;
0x00063f34 addiu a1, s4, 4 | a1 = s4 + 4;
0x00063f38 lw t9, -0x74b4(gp) | t9 = sym.imp.memcpy;
0x00063f3c move a0, v0 | a0 = v0;
0x00063f40 move s2, v0 | s2 = v0;
0x00063f44 jalr t9 | t9 ();
0x00063f48 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00063f4c addu s3, s2, s5 | s3 = s2 + s5;
0x00063f50 addiu s5, sp, 0x30 | s5 = sp + 0x30;
0x00063f54 lw fp, -0x7fac(gp) | fp = *(gp);
0x00063f58 lw t9, -0x751c(gp) | t9 = sym.imp.apr_strtok;
0x00063f5c sw fp, 0x2c(sp) | *(var_2ch_2) = fp;
0x00063f60 sw zero, -4(s3) | *((s3 - 1)) = 0;
0x00063f64 move a2, s5 | a2 = s5;
0x00063f68 addiu a1, fp, -0x6a0c | a1 = fp + -aav.0x00006a0c;
0x00063f6c move a0, s6 | a0 = s6;
0x00063f70 jalr t9 | t9 ();
0x00063f74 move s7, v0 | s7 = v0;
0x00063f78 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00063f7c beqz v0, 0x640e4 | goto label_12;
| }
0x00063f80 lw s4, -0x7944(gp) | s4 = *(gp);
0x00063f84 lw s3, -0x7fac(gp) | s3 = *(gp);
| /* fcn.00063cb8 */
0x00063f88 addiu v0, s4, 0x3cb8 | v0 = s4 + 0x3cb8;
0x00063f8c sw v0, 0x20(sp) | *(var_20h_2) = v0;
0x00063f90 lw v0, -0x7944(gp) | v0 = *(gp);
| /* str.BYTYPE: */
0x00063f94 addiu s3, s3, 0x488c | s3 += 0x488c;
0x00063f98 addiu v0, v0, 0x3578 | v0 += 0x3578;
0x00063f9c sw v0, 0x28(sp) | *(var_28h) = v0;
0x00063fa0 addiu s6, fp, -0x6a0c | s6 = fp + -aav.0x00006a0c;
0x00063fa4 b 0x63ff4 |
| while (v0 != 0) {
0x00063fa8 sw s2, 0x14(sp) | *(var_14h_2) = s2;
0x00063fac sw zero, 0x10(sp) | *(var_38h_3) = 0;
0x00063fb0 move a3, s7 | a3 = s7;
0x00063fb4 move a2, s4 | a2 = s4;
0x00063fb8 move a1, s1 | a1 = s1;
0x00063fbc move a0, s0 | a0 = s0;
0x00063fc0 jalr t9 | t9 ();
0x00063fc4 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00063fc8 move fp, v0 | fp = v0;
| label_3:
0x00063fcc lw t9, -0x751c(gp) | t9 = sym.imp.apr_strtok;
0x00063fd0 move a2, s5 | a2 = s5;
0x00063fd4 move a1, s6 | a1 = s6;
0x00063fd8 move a0, zero | a0 = 0;
0x00063fdc jalr t9 | t9 ();
0x00063fe0 move s7, v0 | s7 = v0;
0x00063fe4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x00063fe8 beqz v0, 0x64080 | goto label_4;
| }
0x00063fec lw v0, 0x24(sp) | v0 = *(var_24h_2);
| if (fp != 0) {
0x00063ff0 bnez fp, 0x64084 | goto label_13;
| }
0x00063ff4 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00063ff8 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x00063ffc move a3, zero | a3 = 0;
0x00064000 move a2, s7 | a2 = s7;
0x00064004 move a1, s3 | a1 = s3;
0x00064008 jalr t9 | t9 ();
0x0006400c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00064010 lw a0, (s1) | a0 = *(s1);
0x00064014 addiu a2, zero, -1 | a2 = -1;
0x00064018 lw t9, -0x7200(gp) | t9 = sym.imp.apr_hash_get;
0x0006401c move a1, v0 | a1 = v0;
0x00064020 move s4, v0 | s4 = v0;
0x00064024 jalr t9 | t9 ();
0x00064028 lw t9, 0x20(sp) | t9 = *(var_20h_2);
0x0006402c bnez v0, 0x63fa8 |
| }
0x00064030 sw s2, 0x14(sp) | *(var_14h_2) = s2;
0x00064034 sw zero, 0x10(sp) | *(var_38h_3) = 0;
0x00064038 move a3, s7 | a3 = s7;
0x0006403c move a2, s4 | a2 = s4;
0x00064040 move a1, s1 | a1 = s1;
0x00064044 move a0, s0 | a0 = s0;
0x00064048 jalr t9 | t9 ();
0x0006404c move fp, v0 | fp = v0;
0x00064050 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00064054 bnez v0, 0x640c4 | goto label_14;
| }
0x00064058 lw t9, 0x28(sp) | t9 = *(var_28h);
0x0006405c move a2, s4 | a2 = s4;
0x00064060 move a1, s1 | a1 = s1;
0x00064064 move a0, s0 | a0 = s0;
0x00064068 jalr t9 | t9 ();
0x0006406c move fp, v0 | fp = v0;
0x00064070 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00064074 b 0x63fcc | goto label_3;
| label_11:
0x00064078 lw a3, -0x7fac(gp) | a3 = *(gp);
| /* str.AddOutputFilterByType_requires_at_least_two_arguments */
0x0006407c addiu fp, a3, 0x4854 | fp = a3 + aav.0x00004854;
| do {
| label_4:
0x00064080 lw v0, 0x24(sp) | v0 = *(var_24h_2);
| label_13:
0x00064084 lw a0, 0x34(sp) | a0 = *(var_34h_2);
0x00064088 lw v1, (v0) | v1 = *(v0);
0x0006408c move v0, fp | v0 = fp;
| if (a0 != v1) {
0x00064090 bne a0, v1, 0x640ec | goto label_15;
| }
0x00064094 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x00064098 lw fp, 0x58(sp) | fp = *(var_58h);
0x0006409c lw s7, 0x54(sp) | s7 = *(var_54h);
0x000640a0 lw s6, 0x50(sp) | s6 = *(var_50h);
0x000640a4 lw s5, 0x4c(sp) | s5 = *(var_4ch_2);
0x000640a8 lw s4, 0x48(sp) | s4 = *(var_48h_2);
0x000640ac lw s3, 0x44(sp) | s3 = *(var_44h_2);
0x000640b0 lw s2, 0x40(sp) | s2 = *(var_40h_2);
0x000640b4 lw s1, 0x3c(sp) | s1 = *(var_3ch_2);
0x000640b8 lw s0, 0x38(sp) | s0 = *(var_38h_2);
0x000640bc addiu sp, sp, 0x60 |
0x000640c0 jr ra | return v0;
| label_14:
0x000640c4 lw v0, 0x2c(sp) | v0 = *(var_2ch_2);
0x000640c8 lw t9, -0x751c(gp) | t9 = sym.imp.apr_strtok;
0x000640cc move a2, s5 | a2 = s5;
0x000640d0 addiu a1, v0, -0x6a0c | a1 = v0 + -aav.0x00006a0c;
0x000640d4 move a0, zero | a0 = 0;
0x000640d8 jalr t9 | t9 ();
0x000640dc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000640e0 b 0x64080 |
| } while (1);
| label_12:
0x000640e4 move fp, zero | fp = 0;
0x000640e8 b 0x64080 | goto label_4;
| label_15:
0x000640ec lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x000640f0 jalr t9 | t9 ();
0x000640f4 nop |
0x000640f8 lui gp, 4 |
0x000640fc addiu gp, gp, -0x11d8 |
0x00064100 addu gp, gp, t9 | gp += t9;
0x00064104 addiu sp, sp, -0x28 |
0x00064108 lw t9, -0x7944(gp) | t9 = *(gp);
0x0006410c lw v0, 0x38(sp) | v0 = *(var_38h_3);
0x00064110 sw ra, 0x24(sp) | *(var_24h_3) = ra;
0x00064114 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x00064118 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0006411c sw v0, 0x10(sp) | *(var_10h) = v0;
| /* fcn.00063cb8 */
0x00064120 addiu t9, t9, 0x3cb8 | t9 += 0x3cb8;
0x00064124 bal 0x63cb8 | fcn_00063cb8 ();
| goto label_5;
0x00064128 nop |
0x0006412c lw ra, 0x24(sp) | ra = *(var_24h_3);
0x00064130 addiu sp, sp, 0x28 |
0x00064134 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x546c8 */
| #include <stdint.h>
|
; (fcn) sym.ap_add_common_vars () | void ap_add_common_vars () {
0x000546c8 lui gp, 5 |
0x000546cc addiu gp, gp, -0x17a8 |
0x000546d0 addu gp, gp, t9 | gp += t9;
0x000546d4 addiu sp, sp, -0x50 |
0x000546d8 lw v0, 0x100(a0) | v0 = *((arg_4h + 4));
0x000546dc sw s0, 0x28(sp) | *(var_28h) = s0;
0x000546e0 move s0, a0 | s0 = a0;
0x000546e4 lw t9, -0x7254(gp) | t9 = sym.imp.apr_table_elts;
0x000546e8 lw v1, 8(s0) | v1 = *((s0 + 2));
0x000546ec lw a0, 0xb0(a0) | a0 = *((arg_4h + 2.75));
0x000546f0 sw v1, 0x18(sp) | *(var_18h) = v1;
0x000546f4 lw v1, 4(s0) | v1 = *((s0 + 1));
0x000546f8 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000546fc sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x00054700 sw fp, 0x48(sp) | *(var_48h) = fp;
0x00054704 sw s7, 0x44(sp) | *(var_44h) = s7;
0x00054708 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0005470c sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x00054710 sw s6, 0x40(sp) | *(var_40h) = s6;
0x00054714 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x00054718 sw s4, 0x38(sp) | *(var_38h) = s4;
0x0005471c sw s2, 0x30(sp) | *(var_30h) = s2;
0x00054720 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x00054724 lw s7, (v0) | s7 = *(v0);
0x00054728 jalr t9 | t9 ();
0x0005472c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054730 lw a0, 0xbc(s0) | a0 = *((s0 + 47));
0x00054734 move s3, v0 | s3 = v0;
0x00054738 lw t9, -0x7208(gp) | t9 = sym.imp.apr_is_empty_table;
0x0005473c lw fp, 0x10(v0) | fp = *((v0 + 4));
0x00054740 jalr t9 | t9 ();
0x00054744 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054748 beqz v0, 0x54e00 | goto label_14;
| }
0x0005474c lw s2, 0xbc(s0) | s2 = *((s0 + 47));
| label_8:
0x00054750 lw a1, 8(s3) | a1 = *((s3 + 2));
0x00054754 lw v0, -0x7fac(gp) | v0 = *(gp);
| if (a1 <= 0) {
0x00054758 blez a1, 0x5481c | goto label_15;
| }
0x0005475c lw s4, -0x7fac(gp) | s4 = *(gp);
0x00054760 sw v0, 0x20(sp) | *(var_20h) = v0;
0x00054764 lw v0, -0x7a1c(gp) | v0 = *(gp);
0x00054768 lw s5, -0x7fac(gp) | s5 = *(gp);
0x0005476c addiu v0, v0, 0x4104 | v0 += 0x4104;
0x00054770 lw s6, -0x7fac(gp) | s6 = *(gp);
0x00054774 move s1, zero | s1 = 0;
| /* str.Content_type */
0x00054778 addiu s4, s4, 0x1524 | s4 += 0x1524;
| /* esilref: 'Proxy' */
0x0005477c addiu s5, s5, 0x6910 | s5 += 0x6910;
0x00054780 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00054784 b 0x547b8 | goto label_1;
| label_0:
0x00054788 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005478c lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054790 lw a2, 4(fp) | a2 = *(arg_4h);
| /* str.CONTENT_TYPE */
0x00054794 addiu a1, a1, -0xf8 | a1 += -0xf8;
0x00054798 move a0, s2 | a0 = s2;
0x0005479c jalr t9 | t9 ();
0x000547a0 lw gp, 0x10(sp) | gp = *(var_10h);
0x000547a4 lw a1, 8(s3) | a1 = *((s3 + 2));
| do {
| label_2:
0x000547a8 addiu s1, s1, 1 | s1++;
0x000547ac slt v0, s1, a1 | v0 = (s1 < a1) ? 1 : 0;
0x000547b0 addiu fp, fp, 0xc | fp += 0xc;
| if (v0 == 0) {
0x000547b4 beqz v0, 0x5481c | goto label_15;
| }
| label_1:
0x000547b8 lw a0, (fp) | a0 = *(fp);
0x000547bc lw t9, -0x7e28(gp) | t9 = sym.ap_cstr_casecmp;
0x000547c0 beqz a0, 0x547a8 |
| } while (a0 == 0);
0x000547c4 move a1, s4 | a1 = s4;
0x000547c8 jalr t9 | t9 ();
0x000547cc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000547d0 beqz v0, 0x54788 | goto label_0;
| }
0x000547d4 lw t9, -0x7e28(gp) | t9 = sym.ap_cstr_casecmp;
0x000547d8 lw a0, (fp) | a0 = *(fp);
| /* str.Content_length */
0x000547dc addiu a1, s6, 0x1534 | a1 = s6 + 0x1534;
0x000547e0 jalr t9 | t9 ();
0x000547e4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000547e8 bnez v0, 0x54b28 | goto label_16;
| }
0x000547ec lw a1, -0x7fac(gp) | a1 = *(gp);
0x000547f0 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x000547f4 lw a2, 4(fp) | a2 = *(arg_4h);
| /* str.CONTENT_LENGTH */
0x000547f8 addiu a1, a1, -0x3b98 | a1 += -0x3b98;
0x000547fc move a0, s2 | a0 = s2;
0x00054800 jalr t9 | t9 ();
0x00054804 lw a1, 8(s3) | a1 = *((s3 + 2));
0x00054808 addiu s1, s1, 1 | s1++;
0x0005480c slt v0, s1, a1 | v0 = (s1 < a1) ? 1 : 0;
0x00054810 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054814 addiu fp, fp, 0xc | fp += 0xc;
| if (v0 != 0) {
0x00054818 bnez v0, 0x547b8 | goto label_1;
| }
| label_15:
0x0005481c lw s1, -0x7fac(gp) | s1 = *(gp);
0x00054820 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00054824 lw a0, 0xbc(s0) | a0 = *((s0 + 47));
| /* str.PATH */
0x00054828 addiu a1, s1, 0x151c | a1 = s1 + 0x151c;
0x0005482c jalr t9 | t9 ();
0x00054830 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054834 beqz v0, 0x54e20 | goto label_17;
| }
| label_9:
0x00054838 lw t9, -0x7654(gp) | t9 = sym.imp.apr_pstrdup;
0x0005483c lw a0, (s0) | a0 = *(s0);
0x00054840 move a1, v0 | a1 = v0;
0x00054844 jalr t9 | t9 ();
0x00054848 lw gp, 0x10(sp) | gp = *(var_10h);
| /* str.PATH */
0x0005484c addiu a1, s1, 0x151c | a1 = s1 + 0x151c;
0x00054850 move a2, v0 | a2 = v0;
0x00054854 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054858 lw s1, -0x7fac(gp) | s1 = *(gp);
0x0005485c move a0, s2 | a0 = s2;
0x00054860 jalr t9 | t9 ();
0x00054864 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054868 lw t9, -0x72bc(gp) | t9 = sym.imp.getenv;
| /* str.LD_LIBRARY_PATH */
0x0005486c addiu a0, s1, 0x1544 | a0 = s1 + 0x1544;
0x00054870 jalr t9 | t9 ();
0x00054874 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00054878 beqz v0, 0x54894 |
0x0005487c lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054880 move a2, v0 | a2 = v0;
| /* str.LD_LIBRARY_PATH */
0x00054884 addiu a1, s1, 0x1544 | a1 = s1 + 0x1544;
0x00054888 move a0, s2 | a0 = s2;
0x0005488c jalr t9 | t9 ();
0x00054890 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00054894 lw a0, -0x7fac(gp) | a0 = *(gp);
0x00054898 lw t9, -0x7994(gp) | t9 = sym.ap_psignature;
0x0005489c move a1, s0 | a1 = s0;
0x000548a0 addiu a0, a0, 0x47dc | a0 += 0x47dc;
0x000548a4 bal 0x3acac | sym_ap_psignature ();
0x000548a8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000548ac move a2, v0 | a2 = v0;
0x000548b0 move a0, s2 | a0 = s2;
0x000548b4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x000548b8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.SERVER_SIGNATURE */
0x000548bc addiu a1, a1, 0x1554 | a1 += 0x1554;
0x000548c0 jalr t9 | t9 ();
0x000548c4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000548c8 lw t9, -0x7a4c(gp) | t9 = sym.ap_get_server_banner;
0x000548cc lw s3, -0x7fac(gp) | s3 = *(gp);
0x000548d0 bal 0x3af88 | sym_ap_get_server_banner ();
0x000548d4 nop |
0x000548d8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000548dc move a2, v0 | a2 = v0;
0x000548e0 move a0, s2 | a0 = s2;
0x000548e4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x000548e8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.SERVER_SOFTWARE */
0x000548ec addiu a1, a1, -0x2a0 | a1 += -aav.0x000002a0;
0x000548f0 jalr t9 | t9 ();
0x000548f4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000548f8 move a0, s0 | a0 = s0;
0x000548fc lw t9, -0x7bcc(gp) | t9 = sym.ap_get_server_name_for_url;
0x00054900 lw s1, (s0) | s1 = *(s0);
0x00054904 bal 0x37344 | sym_ap_get_server_name_for_url ();
0x00054908 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005490c move a0, s1 | a0 = s1;
0x00054910 move a2, zero | a2 = 0;
0x00054914 lw t9, -0x7b94(gp) | t9 = sym.ap_escape_html2;
0x00054918 move a1, v0 | a1 = v0;
0x0005491c jalr t9 | t9 ();
0x00054920 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054924 move a2, v0 | a2 = v0;
0x00054928 move a0, s2 | a0 = s2;
0x0005492c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054930 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.SERVER_NAME */
0x00054934 addiu a1, a1, -0x170 | a1 += -aav.0x00000170;
0x00054938 jalr t9 | t9 ();
0x0005493c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054940 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00054944 move a0, s2 | a0 = s2;
0x00054948 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005494c lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054950 lw a2, 0x20(v0) | a2 = *((v0 + 8));
| /* str.SERVER_ADDR */
0x00054954 addiu a1, a1, 0x1568 | a1 += 0x1568;
0x00054958 jalr t9 | t9 ();
0x0005495c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054960 move a0, s0 | a0 = s0;
0x00054964 lw t9, -0x7bd0(gp) | t9 = sym.ap_get_server_port;
0x00054968 lw s1, (s0) | s1 = *(s0);
0x0005496c bal 0x373d0 | sym_ap_get_server_port ();
0x00054970 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054974 move a2, v0 | a2 = v0;
| /* esilref: '&u' */
0x00054978 addiu a1, s3, -0x3f20 | a1 = s3 + -0x3f20;
0x0005497c lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00054980 move a0, s1 | a0 = s1;
0x00054984 jalr t9 | t9 ();
0x00054988 lw gp, 0x10(sp) | gp = *(var_10h);
0x0005498c move a2, v0 | a2 = v0;
0x00054990 move a0, s2 | a0 = s2;
0x00054994 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054998 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.SERVER_PORT */
0x0005499c addiu a1, a1, -0x164 | a1 += -aav.0x00000164;
0x000549a0 jalr t9 | t9 ();
0x000549a4 lw gp, 0x10(sp) | gp = *(var_10h);
0x000549a8 move a2, zero | a2 = 0;
0x000549ac move a1, zero | a1 = 0;
0x000549b0 lw t9, -0x7e18(gp) | t9 = sym.ap_get_useragent_host;
0x000549b4 move a0, s0 | a0 = s0;
0x000549b8 bal 0x36e98 | sym_ap_get_useragent_host ();
0x000549bc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000549c0 beqz v0, 0x549e0 |
0x000549c4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x000549c8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x000549cc move a2, v0 | a2 = v0;
| /* str.REMOTE_HOST */
0x000549d0 addiu a1, a1, -0x1a8 | a1 += -aav.0x000001a8;
0x000549d4 move a0, s2 | a0 = s2;
0x000549d8 jalr t9 | t9 ();
0x000549dc lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000549e0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x000549e4 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x000549e8 lw a2, 0x1cc(s0) | a2 = *(s0);
| /* str.REMOTE_ADDR */
0x000549ec addiu a1, a1, -0x6c | a1 += -0x6c;
0x000549f0 move a0, s2 | a0 = s2;
0x000549f4 jalr t9 | t9 ();
0x000549f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000549fc lw t9, -0x7a50(gp) | t9 = sym.ap_document_root;
0x00054a00 move a0, s0 | a0 = s0;
0x00054a04 bal 0x36994 | sym_ap_document_root ();
0x00054a08 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a0c move a2, v0 | a2 = v0;
0x00054a10 move a0, s2 | a0 = s2;
0x00054a14 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054a18 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* esilref: 'DOCUMENT_ROOT' */
0x00054a1c addiu a1, a1, -0x8c | a1 += -0x8c;
0x00054a20 jalr t9 | t9 ();
0x00054a24 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a28 lw t9, -0x7d90(gp) | t9 = sym.ap_run_http_scheme;
0x00054a2c move a0, s0 | a0 = s0;
0x00054a30 jalr t9 | t9 ();
0x00054a34 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a38 move a2, v0 | a2 = v0;
0x00054a3c move a0, s2 | a0 = s2;
0x00054a40 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054a44 lw t9, -0x7590(gp) | t9 = sym.imp.apr_table_setn;
| /* str.REQUEST_SCHEME */
0x00054a48 addiu a1, a1, -0x1cc | a1 += -aav.0x000001cc;
0x00054a4c jalr t9 | t9 ();
0x00054a50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a54 lw t9, -0x7a58(gp) | t9 = sym.ap_context_prefix;
0x00054a58 move a0, s0 | a0 = s0;
0x00054a5c bal 0x369c0 | sym_ap_context_prefix ();
0x00054a60 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a64 move a2, v0 | a2 = v0;
0x00054a68 move a0, s2 | a0 = s2;
0x00054a6c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054a70 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.CONTEXT_PREFIX */
0x00054a74 addiu a1, a1, -0xa4 | a1 += -0xa4;
0x00054a78 jalr t9 | t9 ();
0x00054a7c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a80 lw t9, -0x7a5c(gp) | t9 = sym.ap_context_document_root;
0x00054a84 move a0, s0 | a0 = s0;
0x00054a88 bal 0x369f0 | sym_ap_context_document_root ();
0x00054a8c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054a90 move a2, v0 | a2 = v0;
0x00054a94 move a0, s2 | a0 = s2;
0x00054a98 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054a9c lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.CONTEXT_DOCUMENT_ROOT */
0x00054aa0 addiu a1, a1, -0x94 | a1 += -0x94;
0x00054aa4 jalr t9 | t9 ();
0x00054aa8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054aac lw v0, 0x18(sp) | v0 = *(var_18h);
0x00054ab0 move a0, s2 | a0 = s2;
0x00054ab4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054ab8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054abc lw a2, 0x30(v0) | a2 = *((v0 + 12));
| /* str.SERVER_ADMIN */
0x00054ac0 addiu a1, a1, -0x180 | a1 += -aav.0x00000180;
0x00054ac4 jalr t9 | t9 ();
0x00054ac8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054acc lw a0, 0xc0(s0) | a0 = *((s0 + 48));
0x00054ad0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054ad4 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
| /* str.proxy_noquery */
0x00054ad8 addiu a1, a1, 0x1574 | a1 += 0x1574;
0x00054adc jalr t9 | t9 ();
0x00054ae0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054ae4 lw s1, 0xe8(s0) | s1 = *((s0 + 58));
| if (v0 != 0) {
0x00054ae8 beqz v0, 0x54b48 |
0x00054aec lw t9, -0x72b8(gp) | t9 = sym.imp.strchr;
0x00054af0 addiu a1, zero, 0x3f | a1 = 0x3f;
0x00054af4 move a0, s1 | a0 = s1;
0x00054af8 jalr t9 | t9 ();
0x00054afc lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054b00 beqz v0, 0x54b48 | goto label_18;
| }
0x00054b04 lw t9, -0x7708(gp) | t9 = sym.imp.apr_pstrmemdup;
0x00054b08 lw a0, (s0) | a0 = *(s0);
0x00054b0c subu a2, v0, s1 | __asm ("subu a2, v0, s1");
0x00054b10 move a1, s1 | a1 = s1;
0x00054b14 jalr t9 | t9 ();
0x00054b18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054b1c move a2, v0 | a2 = v0;
0x00054b20 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054b24 b 0x54b50 | goto label_19;
| label_16:
0x00054b28 lw t9, -0x7e28(gp) | t9 = sym.ap_cstr_casecmp;
0x00054b2c lw a0, (fp) | a0 = *(fp);
0x00054b30 move a1, s5 | a1 = s5;
0x00054b34 jalr t9 | t9 ();
0x00054b38 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00054b3c bnez v0, 0x54cc4 | goto label_20;
| }
| label_3:
0x00054b40 lw a1, 8(s3) | a1 = *((s3 + 2));
0x00054b44 b 0x547a8 | goto label_2;
| }
| label_18:
0x00054b48 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054b4c move a2, s1 | a2 = s1;
| label_19:
0x00054b50 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054b54 move a0, s2 | a0 = s2;
| /* str.SCRIPT_FILENAME */
0x00054b58 addiu a1, a1, -0x148 | a1 += -aav.0x00000148;
0x00054b5c jalr t9 | t9 ();
0x00054b60 lw v0, 0x1c(sp) | v0 = *(var_1ch);
0x00054b64 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054b68 lw a0, (s0) | a0 = *(s0);
0x00054b6c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00054b70 lw t9, -0x72d8(gp) | t9 = sym.imp.apr_itoa;
0x00054b74 lhu a1, 0xc(v0) | a1 = *((v0 + 6));
0x00054b78 jalr t9 | t9 ();
0x00054b7c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054b80 move a2, v0 | a2 = v0;
0x00054b84 move a0, s2 | a0 = s2;
0x00054b88 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054b8c lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.REMOTE_PORT */
0x00054b90 addiu a1, a1, -0x60 | a1 += -0x60;
0x00054b94 jalr t9 | t9 ();
0x00054b98 lw a2, 0xd8(s0) | a2 = *((s0 + 54));
0x00054b9c lw gp, 0x10(sp) | gp = *(var_10h);
| if (a2 == 0) {
0x00054ba0 beqz a2, 0x54dbc | goto label_21;
| }
0x00054ba4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054ba8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.REMOTE_USER */
0x00054bac addiu a1, a1, -0x18c | a1 += -aav.0x0000018c;
0x00054bb0 move a0, s2 | a0 = s2;
0x00054bb4 jalr t9 | t9 ();
0x00054bb8 lw gp, 0x10(sp) | gp = *(var_10h);
| label_7:
0x00054bbc lw a2, 0xdc(s0) | a2 = *((s0 + 55));
| label_5:
0x00054bc0 lw a1, -0x7fac(gp) | a1 = *(gp);
| if (a2 != 0) {
0x00054bc4 beqz a2, 0x54bdc |
0x00054bc8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.AUTH_TYPE */
0x00054bcc addiu a1, a1, -0x110 | a1 += -aav.0x00000110;
0x00054bd0 move a0, s2 | a0 = s2;
0x00054bd4 jalr t9 | t9 ();
0x00054bd8 lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00054bdc lw t9, -0x7a54(gp) | t9 = sym.ap_get_remote_logname;
0x00054be0 move a0, s0 | a0 = s0;
0x00054be4 bal 0x371c8 | sym_ap_get_remote_logname ();
0x00054be8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00054bec beqz v0, 0x54c20 |
0x00054bf0 lw t9, -0x7654(gp) | t9 = sym.imp.apr_pstrdup;
0x00054bf4 lw a0, (s0) | a0 = *(s0);
0x00054bf8 move a1, v0 | a1 = v0;
0x00054bfc jalr t9 | t9 ();
0x00054c00 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054c04 move a2, v0 | a2 = v0;
0x00054c08 move a0, s2 | a0 = s2;
0x00054c0c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054c10 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.REMOTE_IDENT */
0x00054c14 addiu a1, a1, -0x19c | a1 += -aav.0x0000019c;
0x00054c18 jalr t9 | t9 ();
0x00054c1c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x00054c20 lw s1, 0x10(s0) | s1 = *((s0 + 4));
0x00054c24 addiu v1, zero, 4 | v1 = 4;
| if (s1 != 0) {
0x00054c28 beqz s1, 0x54c80 |
0x00054c2c lbu v0, 0x80(s7) | v0 = *((s7 + 128));
0x00054c30 andi v0, v0, 0xc | v0 &= 0xc;
| if (v0 == v1) {
0x00054c34 beql v0, v1, 0x54d30 | goto label_22;
| }
0x00054c38 lw v0, 0x130(s1) | v0 = *(s1);
0x00054c3c lw a2, 0xe4(s1) | a2 = *((s1 + 57));
0x00054c40 lw a1, -0x7fac(gp) | a1 = *(gp);
| if (a2 != 0) {
0x00054c44 beqz a2, 0x54c60 |
0x00054c48 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.REDIRECT_URL */
0x00054c4c addiu a1, a1, 0x159c | a1 += 0x159c;
0x00054c50 move a0, s2 | a0 = s2;
0x00054c54 jalr t9 | t9 ();
0x00054c58 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054c5c lw s1, 0x10(s0) | s1 = *((s0 + 4));
| }
| label_4:
0x00054c60 lw a2, 0xf4(s1) | a2 = *((s1 + 61));
0x00054c64 lw a1, -0x7fac(gp) | a1 = *(gp);
| if (a2 == 0) {
0x00054c68 beqz a2, 0x54c80 | goto label_23;
| }
0x00054c6c lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.REDIRECT_QUERY_STRING */
0x00054c70 addiu a1, a1, 0x15ac | a1 += 0x15ac;
0x00054c74 move a0, s2 | a0 = s2;
0x00054c78 jalr t9 | t9 ();
0x00054c7c lw gp, 0x10(sp) | gp = *(var_10h);
| }
| label_23:
0x00054c80 lw a0, 0xbc(s0) | a0 = *((s0 + 47));
0x00054c84 lw ra, 0x4c(sp) | ra = *(var_4ch);
| if (a0 == s2) {
0x00054c88 beq a0, s2, 0x54d90 | goto label_24;
| }
0x00054c8c lw fp, 0x48(sp) | fp = *(var_48h);
0x00054c90 lw s7, 0x44(sp) | s7 = *(var_44h);
0x00054c94 lw s6, 0x40(sp) | s6 = *(var_40h);
0x00054c98 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00054c9c lw s4, 0x38(sp) | s4 = *(var_38h);
0x00054ca0 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00054ca4 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00054ca8 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00054cac move a1, s2 | a1 = s2;
0x00054cb0 lw t9, -0x74ec(gp) | t9 = sym.imp.apr_table_overlap;
0x00054cb4 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00054cb8 move a2, zero | a2 = 0;
0x00054cbc addiu sp, sp, 0x50 |
0x00054cc0 jr t9 | t9 ();
| label_20:
0x00054cc4 lw v0, 0x20(sp) | v0 = *(var_20h);
0x00054cc8 lw t9, -0x7e28(gp) | t9 = sym.ap_cstr_casecmp;
0x00054ccc lw a0, (fp) | a0 = *(fp);
0x00054cd0 addiu a1, v0, -0x5894 | a1 = v0 + -0x5894;
0x00054cd4 jalr t9 | t9 ();
0x00054cd8 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00054cdc bnez v0, 0x54e78 | goto label_25;
| }
| label_11:
0x00054ce0 lbu v0, 0x80(s7) | v0 = *((s7 + 128));
0x00054ce4 addiu a0, zero, 1 | a0 = 1;
0x00054ce8 andi v0, v0, 3 | v0 &= 3;
0x00054cec lw a1, 8(s3) | a1 = *((s3 + 2));
| if (v0 == a0) {
0x00054cf0 bnel v0, a0, 0x547a8 | goto label_2;
| }
0x00054cf4 lw a1, (fp) | a1 = *(fp);
0x00054cf8 lw t9, 0x24(sp) | t9 = *(var_24h);
0x00054cfc move a0, s0 | a0 = s0;
0x00054d00 jalr t9 | t9 ();
0x00054d04 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054d08 beqz v0, 0x54b40 | goto label_3;
| }
0x00054d0c lw a2, 4(fp) | a2 = *(arg_4h);
0x00054d10 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| if (a2 == 0) {
0x00054d14 beqz a2, 0x54b40 | goto label_3;
| }
0x00054d18 move a1, v0 | a1 = v0;
0x00054d1c move a0, s2 | a0 = s2;
0x00054d20 jalr t9 | t9 ();
0x00054d24 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054d28 lw a1, 8(s3) | a1 = *((s3 + 2));
0x00054d2c b 0x547a8 | goto label_2;
| label_22:
0x00054d30 addiu s4, s1, 0x130 | s4 = s1 + aav.0x00000130;
| if (v0 == 0) {
0x00054d34 beqz v0, 0x54ed0 | goto label_26;
| }
| label_12:
0x00054d38 lhu v0, 0x158(s1) | v0 = *(s1);
0x00054d3c lw t9, -0x7bd0(gp) | t9 = sym.ap_get_server_port;
| if (v0 == 0) {
0x00054d40 beqz v0, 0x54e48 | goto label_27;
| }
| label_10:
0x00054d44 lw v0, 0x140(s1) | v0 = *(s1);
0x00054d48 lw t9, -0x7bcc(gp) | t9 = sym.ap_get_server_name_for_url;
| if (v0 == 0) {
0x00054d4c beqz v0, 0x54ee8 | goto label_28;
| }
| label_13:
0x00054d50 lw t9, -0x7794(gp) | t9 = sym.imp.apr_uri_unparse;
0x00054d54 lw a0, (s0) | a0 = *(s0);
0x00054d58 move a2, zero | a2 = 0;
0x00054d5c move a1, s4 | a1 = s4;
0x00054d60 jalr t9 | t9 ();
0x00054d64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054d68 beqz v0, 0x54e40 | goto label_29;
| }
0x00054d6c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054d70 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
0x00054d74 move a2, v0 | a2 = v0;
| /* str.REDIRECT_URL */
0x00054d78 addiu a1, a1, 0x159c | a1 += 0x159c;
0x00054d7c move a0, s2 | a0 = s2;
0x00054d80 jalr t9 | t9 ();
0x00054d84 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054d88 lw s1, 0x10(s0) | s1 = *((s0 + 4));
0x00054d8c b 0x54c60 | goto label_4;
| label_24:
0x00054d90 lw fp, 0x48(sp) | fp = *(var_48h);
0x00054d94 lw s7, 0x44(sp) | s7 = *(var_44h);
0x00054d98 lw s6, 0x40(sp) | s6 = *(var_40h);
0x00054d9c lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x00054da0 lw s4, 0x38(sp) | s4 = *(var_38h);
0x00054da4 lw s3, 0x34(sp) | s3 = *(var_34h);
0x00054da8 lw s2, 0x30(sp) | s2 = *(var_30h);
0x00054dac lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x00054db0 lw s0, 0x28(sp) | s0 = *(var_28h);
0x00054db4 addiu sp, sp, 0x50 |
0x00054db8 jr ra | return v0;
| label_21:
0x00054dbc lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x00054dc0 lw a2, 0xd8(v0) | a2 = *((v0 + 54));
| if (v0 == 0) {
0x00054dc4 bnel v0, zero, 0x54ddc | goto label_30;
| }
0x00054dc8 lw a2, 0xdc(s0) | a2 = *((s0 + 55));
0x00054dcc b 0x54bc0 | goto label_5;
| if (v0 == 0) {
| label_6:
0x00054dd0 beql v0, zero, 0x54bc0 | goto label_5;
| }
0x00054dd4 lw a2, 0xdc(s0) | a2 = *((s0 + 55));
0x00054dd8 lw a2, 0xd8(v0) | a2 = *((v0 + 54));
| if (a2 == 0) {
| label_30:
0x00054ddc beql a2, zero, 0x54dd0 | goto label_6;
| }
0x00054de0 lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00054de4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054de8 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| /* str.REDIRECT_REMOTE_USER */
0x00054dec addiu a1, a1, 0x1584 | a1 += 0x1584;
0x00054df0 move a0, s2 | a0 = s2;
0x00054df4 jalr t9 | t9 ();
0x00054df8 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054dfc b 0x54bbc | goto label_7;
| label_14:
0x00054e00 lw a1, 8(s3) | a1 = *((s3 + 2));
0x00054e04 lw t9, -0x7440(gp) | t9 = sym.imp.apr_table_make;
0x00054e08 lw a0, (s0) | a0 = *(s0);
0x00054e0c addiu a1, a1, 0x19 | a1 += 0x19;
0x00054e10 jalr t9 | t9 ();
0x00054e14 move s2, v0 | s2 = v0;
0x00054e18 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054e1c b 0x54750 | goto label_8;
| label_17:
0x00054e20 lw t9, -0x72bc(gp) | t9 = sym.imp.getenv;
| /* str.PATH */
0x00054e24 addiu a0, s1, 0x151c | a0 = s1 + 0x151c;
0x00054e28 jalr t9 | t9 ();
0x00054e2c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00054e30 bnez v0, 0x54838 | goto label_9;
| }
0x00054e34 lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str._bin:_usr_bin:_usr_ucb:_usr_bsd:_usr_local_bin */
0x00054e38 addiu v0, v0, 0x14ec | v0 += 0x14ec;
0x00054e3c b 0x54838 | goto label_9;
| label_29:
0x00054e40 lw s1, 0x10(s0) | s1 = *((s0 + 4));
0x00054e44 b 0x54c60 | goto label_4;
| label_27:
0x00054e48 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00054e4c bal 0x373d0 | sym_ap_get_server_port ();
0x00054e50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054e54 lw a0, (s0) | a0 = *(s0);
0x00054e58 move a2, v0 | a2 = v0;
0x00054e5c lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00054e60 sh v0, 0x158(s1) | *(s1) = v0;
| /* esilref: '&u' */
0x00054e64 addiu a1, s3, -0x3f20 | a1 = s3 + -0x3f20;
0x00054e68 jalr t9 | t9 ();
0x00054e6c lw gp, 0x10(sp) | gp = *(var_10h);
0x00054e70 sw v0, 0x144(s1) | *(s1) = v0;
0x00054e74 b 0x54d44 | goto label_10;
| label_25:
0x00054e78 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00054e7c lw t9, -0x7e28(gp) | t9 = sym.ap_cstr_casecmp;
0x00054e80 lw a0, (fp) | a0 = *(fp);
| /* str.Proxy_Authorization */
0x00054e84 addiu a1, a1, -0x58a8 | a1 += -0x58a8;
0x00054e88 jalr t9 | t9 ();
0x00054e8c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054e90 beqz v0, 0x54ce0 | goto label_11;
| }
0x00054e94 lw a1, (fp) | a1 = *(fp);
0x00054e98 lw t9, 0x24(sp) | t9 = *(var_24h);
0x00054e9c move a0, s0 | a0 = s0;
0x00054ea0 jalr t9 | t9 ();
0x00054ea4 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00054ea8 beqz v0, 0x54b40 | goto label_3;
| }
0x00054eac lw a2, 4(fp) | a2 = *(arg_4h);
0x00054eb0 lw t9, -0x777c(gp) | t9 = sym.imp.apr_table_addn;
| if (a2 == 0) {
0x00054eb4 beqz a2, 0x54b40 | goto label_3;
| }
0x00054eb8 move a1, v0 | a1 = v0;
0x00054ebc move a0, s2 | a0 = s2;
0x00054ec0 jalr t9 | t9 ();
0x00054ec4 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054ec8 lw a1, 8(s3) | a1 = *((s3 + 2));
0x00054ecc b 0x547a8 | goto label_2;
| label_26:
0x00054ed0 lw t9, -0x7d90(gp) | t9 = sym.ap_run_http_scheme;
0x00054ed4 move a0, s1 | a0 = s1;
0x00054ed8 jalr t9 | t9 ();
0x00054edc lw gp, 0x10(sp) | gp = *(var_10h);
0x00054ee0 sw v0, 0x130(s1) | *(s1) = v0;
0x00054ee4 b 0x54d38 | goto label_12;
| label_28:
0x00054ee8 lw a0, 0x10(s0) | a0 = *((s0 + 4));
0x00054eec bal 0x37344 | sym_ap_get_server_name_for_url ();
0x00054ef0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00054ef4 sw v0, 0x140(s1) | *(s1) = v0;
0x00054ef8 b 0x54d50 | goto label_13;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x4bd80 */
| #include <stdint.h>
|
; (fcn) sym.ap_add_module () | void ap_add_module () {
0x0004bd80 lui gp, 5 |
0x0004bd84 addiu gp, gp, 0x71a0 |
0x0004bd88 addu gp, gp, t9 | gp += t9;
0x0004bd8c addiu sp, sp, -0x40 |
0x0004bd90 lui v0, 0x133 | v0 = 0x1330000;
0x0004bd94 lw a3, (a0) | a3 = *(a0);
0x0004bd98 addiu v0, v0, 0x293 | v0 += 0x293;
0x0004bd9c sw gp, 0x18(sp) | *(var_18h) = gp;
0x0004bda0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x0004bda4 sw s0, 0x20(sp) | *(var_20h) = s0;
0x0004bda8 sw ra, 0x3c(sp) | *(var_3ch) = ra;
0x0004bdac sw s6, 0x38(sp) | *(var_38h) = s6;
0x0004bdb0 sw s5, 0x34(sp) | *(var_34h) = s5;
0x0004bdb4 sw s4, 0x30(sp) | *(var_30h) = s4;
0x0004bdb8 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0004bdbc sw s1, 0x24(sp) | *(var_24h) = s1;
0x0004bdc0 move s0, a0 | s0 = a0;
0x0004bdc4 move s2, a1 | s2 = a1;
| if (a3 != v0) {
0x0004bdc8 bne a3, v0, 0x4bfa0 | goto label_6;
| }
0x0004bdcc lw s4, 8(a0) | s4 = *((a0 + 2));
0x0004bdd0 addiu v0, zero, -1 | v0 = -1;
0x0004bdd4 move s3, a2 | s3 = a2;
| if (s4 == v0) {
0x0004bdd8 beq s4, v0, 0x4bf48 | goto label_7;
| }
0x0004bddc lw a0, 0x14(a0) | a0 = *((a0 + 5));
| if (a2 == 0) {
0x0004bde0 beqz a2, 0x4c02c | goto label_8;
| }
0x0004bde4 lw v0, -0x7bbc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0004bde8 beqz a0, 0x4c01c | goto label_9;
| }
| label_0:
0x0004bdec lw t9, -0x74c4(gp) | t9 = sym.imp.strlen;
0x0004bdf0 move a0, s3 | a0 = s3;
0x0004bdf4 jalr t9 | t9 ();
0x0004bdf8 move s5, v0 | s5 = v0;
0x0004bdfc sltiu v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
0x0004be00 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004be04 move s6, s5 | s6 = s5;
| if (v0 == 0) {
0x0004be08 bnez v0, 0x4be2c |
0x0004be0c lw a1, -0x7fd4(gp) | a1 = *(gp);
0x0004be10 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x0004be14 addiu s1, s5, -7 | s1 = s5 + -7;
| /* esilref: '_module' */
0x0004be18 addiu a1, a1, 0x7618 | a1 += 0x7618;
0x0004be1c addu a0, s3, s1 | a0 = s3 + s1;
0x0004be20 jalr t9 | t9 ();
0x0004be24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0004be28 beqz v0, 0x4c010 | goto label_10;
| }
| }
| label_1:
0x0004be2c lw s1, -0x7f14(gp) | s1 = *((gp - 8133));
0x0004be30 lw t9, -0x7a08(gp) | t9 = sym.ap_malloc;
0x0004be34 addiu a0, s6, 1 | a0 = s6 + 1;
0x0004be38 lw v0, -0x3c54(s1) | v0 = *((s1 - 3861));
0x0004be3c sll s4, s4, 2 | s4 <<= 2;
0x0004be40 addu s4, v0, s4 | s4 = v0 + s4;
0x0004be44 jalr t9 | t9 ();
0x0004be48 lw a0, 8(s0) | a0 = *((s0 + 2));
0x0004be4c lw gp, 0x18(sp) | gp = *(var_18h);
0x0004be50 lw s1, -0x3c54(s1) | s1 = *((s1 - 3861));
0x0004be54 sll a0, a0, 2 | a0 <<= 2;
0x0004be58 sw v0, (s4) | *(s4) = v0;
0x0004be5c lwx a0, a0(s1) | __asm ("lwx a0, a0(s1)");
0x0004be60 lw t9, -0x74b4(gp) | t9 = sym.imp.memcpy;
0x0004be64 move a2, s5 | a2 = s5;
0x0004be68 move a1, s3 | a1 = s3;
0x0004be6c jalr t9 | t9 ();
0x0004be70 lw v0, 8(s0) | v0 = *((s0 + 2));
0x0004be74 lw gp, 0x18(sp) | gp = *(var_18h);
0x0004be78 sll v0, v0, 2 | v0 <<= 2;
0x0004be7c lwx s1, v0(s1) | __asm ("lwx s1, v0(s1)");
0x0004be80 lw v0, -0x7f14(gp) | v0 = *((gp - 8133));
0x0004be84 addu s1, s1, s5 | s1 += s5;
0x0004be88 sb zero, (s1) | *(s1) = 0;
0x0004be8c lw v1, 8(s0) | v1 = *((s0 + 2));
0x0004be90 lw v0, -0x3c58(v0) | v0 = *((v0 - 3862));
0x0004be94 sll v1, v1, 2 | v1 <<= 2;
0x0004be98 lw a0, 0x24(s0) | a0 = *((s0 + 9));
0x0004be9c addu v0, v0, v1 | v0 += v1;
0x0004bea0 sw a0, (v0) | *(v0) = a0;
| label_5:
0x0004bea4 lw s1, 0xc(s0) | s1 = *((s0 + 3));
| do {
| label_4:
0x0004bea8 lw t9, -0x7358(gp) | t9 = sym.imp.strrchr;
0x0004beac addiu a1, zero, 0x2f | a1 = 0x2f;
0x0004beb0 move a0, s1 | a0 = s1;
0x0004beb4 jalr t9 | t9 ();
0x0004beb8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0004bebc beqz v0, 0x4bec8 |
0x0004bec0 addiu s1, v0, 1 | s1 = v0 + 1;
0x0004bec4 sw s1, 0xc(s0) | *((s0 + 3)) = s1;
| }
0x0004bec8 lw t9, -0x7358(gp) | t9 = sym.imp.strrchr;
0x0004becc addiu a1, zero, 0x5c | a1 = 0x5c;
0x0004bed0 move a0, s1 | a0 = s1;
0x0004bed4 jalr t9 | t9 ();
0x0004bed8 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0004bedc beqz v0, 0x4bee8 |
0x0004bee0 addiu v0, v0, 1 | v0++;
0x0004bee4 sw v0, 0xc(s0) | *((s0 + 3)) = v0;
| }
0x0004bee8 lw t9, -0x7a1c(gp) | t9 = *(gp);
0x0004beec move a1, s2 | a1 = s2;
| /* fcn.00049bc4 */
0x0004bef0 addiu t9, t9, -0x643c | t9 += -0x643c;
0x0004bef4 move a0, s0 | a0 = s0;
0x0004bef8 bal 0x49bc4 | fcn_00049bc4 ();
0x0004befc lw v0, 0x34(s0) | v0 = *((s0 + 13));
0x0004bf00 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0004bf04 beqz v0, 0x4bfe4 | goto label_11;
| }
0x0004bf08 lw t9, -0x7a1c(gp) | t9 = *(gp);
0x0004bf0c move a1, s2 | a1 = s2;
| /* fcn.00049d00 */
0x0004bf10 addiu t9, t9, -0x6300 | t9 += -0x6300;
0x0004bf14 move a0, s0 | a0 = s0;
0x0004bf18 bal 0x49d00 | fcn_00049d00 ();
0x0004bf1c lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0004bf20 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0004bf24 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0004bf28 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004bf2c lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004bf30 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0004bf34 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004bf38 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004bf3c move v0, zero | v0 = 0;
0x0004bf40 addiu sp, sp, 0x40 |
0x0004bf44 jr ra | return v1;
| label_7:
0x0004bf48 lw a1, -0x7f14(gp) | a1 = *((gp - 8133));
0x0004bf4c lw v0, -0x3c40(a1) | v0 = *((a1 - 3856));
0x0004bf50 slti v1, v0, 0x100 | v1 = (v0 < aav.0x00000100) ? 1 : 0;
0x0004bf54 lw a2, -0x7f14(gp) | a2 = *((gp - 8133));
| if (v1 == 0) {
0x0004bf58 beqz v1, 0x4c07c | goto label_12;
| }
0x0004bf5c lw a0, -0x7f14(gp) | a0 = *((gp - 8133));
0x0004bf60 lw v1, -0x3c3c(a2) | v1 = *((a2 - 3855));
0x0004bf64 lw a0, -0x3c48(a0) | a0 = *((a0 - 3858));
0x0004bf68 slt a0, v1, a0 | a0 = (v1 < a0) ? 1 : 0;
0x0004bf6c addiu v0, v0, 1 | v0++;
| if (a0 == 0) {
0x0004bf70 beqz a0, 0x4c0b8 | goto label_13;
| }
0x0004bf74 addiu a0, v1, 1 | a0 = v1 + 1;
0x0004bf78 sw a0, -0x3c3c(a2) | *((a2 - 3855)) = a0;
0x0004bf7c lw a0, 0x14(s0) | a0 = *((s0 + 5));
0x0004bf80 sw v1, 8(s0) | *((s0 + 2)) = v1;
0x0004bf84 sw v0, -0x3c40(a1) | *((a1 - 3856)) = v0;
| label_3:
0x0004bf88 lw v0, -0x7bbc(gp) | v0 = *(gp);
| if (a0 == 0) {
0x0004bf8c beqz a0, 0x4c01c | goto label_9;
| }
| label_2:
0x0004bf90 beql s3, zero, 0x4bea8 |
| } while (s3 == 0);
0x0004bf94 lw s1, 0xc(s0) | s1 = *((s0 + 3));
0x0004bf98 lw s4, 8(s0) | s4 = *((s0 + 2));
0x0004bf9c b 0x4bdec | goto label_0;
| label_6:
0x0004bfa0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004bfa4 lw a2, 0xc(a0) | a2 = *((a0 + 3));
0x0004bfa8 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0004bfac move a0, s2 | a0 = s2;
0x0004bfb0 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.Module___s__is_not_compatible_with_this_version_of_Apache__found__d__need__d_._Please_contact_the_vendor_for_the_correct_version. */
0x0004bfb4 addiu a1, a1, 0x5ac | a1 += aav.0x000005ac;
0x0004bfb8 jalr t9 | t9 ();
0x0004bfbc lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0004bfc0 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0004bfc4 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0004bfc8 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004bfcc lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004bfd0 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0004bfd4 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004bfd8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004bfdc addiu sp, sp, 0x40 |
0x0004bfe0 jr ra | return v1;
| label_11:
0x0004bfe4 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0004bfe8 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0004bfec lw s5, 0x34(sp) | s5 = *(var_34h);
0x0004bff0 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004bff4 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004bff8 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0004bffc lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004c000 lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004c004 move v0, zero | v0 = 0;
0x0004c008 addiu sp, sp, 0x40 |
0x0004c00c jr ra | return v1;
| label_10:
0x0004c010 move s6, s1 | s6 = s1;
0x0004c014 move s5, s1 | s5 = s1;
0x0004c018 b 0x4be2c | goto label_1;
| label_9:
0x0004c01c lw v1, (v0) | v1 = *(v0);
0x0004c020 sw s0, (v0) | *(v0) = s0;
0x0004c024 sw v1, 0x14(s0) | *((s0 + 5)) = v1;
0x0004c028 b 0x4bf90 | goto label_2;
| label_8:
0x0004c02c lw v0, -0x7c7c(gp) | v0 = *(gp);
0x0004c030 lw v1, 4(v0) | v1 = *((v0 + 1));
| if (v1 != 0) {
0x0004c034 bnez v1, 0x4c050 | goto label_14;
| }
0x0004c038 nop |
0x0004c03c b 0x4c060 | goto label_15;
0x0004c040 nop |
| do {
0x0004c044 lw v1, 4(v0) | v1 = *((v0 + 1));
| if (v1 == 0) {
0x0004c048 beqz v1, 0x4c060 | goto label_15;
| }
0x0004c04c nop |
| label_14:
0x0004c050 addiu v0, v0, 8 | v0 += 8;
0x0004c054 bnel s0, v1, 0x4c044 |
| } while (s0 == v1);
0x0004c058 lw s3, (v0) | s3 = *(v0);
0x0004c05c b 0x4bf88 | goto label_3;
| label_15:
0x0004c060 lw s1, 0xc(s0) | s1 = *((s0 + 3));
| if (a0 == 0) {
0x0004c064 bnel a0, zero, 0x4bea8 | goto label_4;
| }
0x0004c068 lw v0, -0x7bbc(gp) | v0 = *(gp);
0x0004c06c lw v1, (v0) | v1 = *(v0);
0x0004c070 sw s0, (v0) | *(v0) = s0;
0x0004c074 sw v1, 0x14(s0) | *((s0 + 5)) = v1;
0x0004c078 b 0x4bea4 | goto label_5;
| label_12:
0x0004c07c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004c080 lw a2, 0xc(a0) | a2 = *((a0 + 3));
0x0004c084 lw ra, 0x3c(sp) | ra = *(var_3ch);
0x0004c088 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0004c08c lw s5, 0x34(sp) | s5 = *(var_34h);
0x0004c090 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0004c094 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x0004c098 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0004c09c lw s0, 0x20(sp) | s0 = *(var_20h);
0x0004c0a0 move a0, s2 | a0 = s2;
0x0004c0a4 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0004c0a8 lw s2, 0x28(sp) | s2 = *(var_28h);
| /* str.Module___s__could_not_be_loaded__because_the_dynamic_module_limit_was_reached._Please_increase_DYNAMIC_MODULE_LIMIT_and_recompile. */
0x0004c0ac addiu a1, a1, 0x630 | a1 += aav.0x00000630;
0x0004c0b0 addiu sp, sp, 0x40 |
0x0004c0b4 jr t9 | t9 ();
| label_13:
0x0004c0b8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004c0bc lw a0, -0x7fac(gp) | a0 = *(gp);
0x0004c0c0 lw t9, -0x7ec0(gp) | t9 = sym.ap_log_assert;
0x0004c0c4 addiu a2, zero, 0x249 | a2 = 0x249;
| /* str._usr_src_debug_apache2_2.4.57_r0_httpd_2.4.57_server_config.c */
0x0004c0c8 addiu a1, a1, 0x1f0 | a1 += aav.0x000001f0;
| /* str.total_modules___conf_vector_length */
0x0004c0cc addiu a0, a0, 0x6b4 | a0 += aav.0x000006b4;
0x0004c0d0 bal 0x52654 | return sym_ap_log_assert ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x1f4b0 */
| #include <stdint.h>
|
; (fcn) sym.ap_append_pid () | void ap_append_pid () {
0x0001f4b0 lui gp, 8 |
0x0001f4b4 addiu gp, gp, 0x3a70 |
0x0001f4b8 addu gp, gp, t9 | gp += t9;
0x0001f4bc addiu sp, sp, -0x30 |
0x0001f4c0 lw t9, -0x7224(gp) | t9 = sym.imp.getpid;
0x0001f4c4 sw ra, 0x2c(sp) | *(var_2ch) = ra;
0x0001f4c8 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0001f4cc sw s0, 0x24(sp) | *(var_24h) = s0;
0x0001f4d0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001f4d4 sw a0, 0x30(sp) | *(arg_30h) = a0;
0x0001f4d8 move s0, a1 | s0 = a1;
0x0001f4dc move s1, a2 | s1 = a2;
0x0001f4e0 jalr t9 | t9 ();
0x0001f4e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x0001f4e8 lw a0, 0x30(sp) | a0 = *(arg_30h);
0x0001f4ec move a3, s1 | a3 = s1;
0x0001f4f0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0001f4f4 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0001f4f8 move a2, s0 | a2 = s0;
0x0001f4fc sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str._s_s_d */
0x0001f500 addiu a1, a1, -0x68a8 | a1 += -aav.0x000068a8;
0x0001f504 jalr t9 | t9 ();
0x0001f508 lw ra, 0x2c(sp) | ra = *(var_2ch);
0x0001f50c lw s1, 0x28(sp) | s1 = *(var_28h);
0x0001f510 lw s0, 0x24(sp) | s0 = *(var_24h);
0x0001f514 addiu sp, sp, 0x30 |
0x0001f518 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x4cce8 */
| #include <stdint.h>
|
; (fcn) sym.ap_build_config () | void ap_build_config () {
0x0004cce8 lui gp, 5 |
0x0004ccec addiu gp, gp, 0x6238 |
0x0004ccf0 addu gp, gp, t9 | gp += t9;
0x0004ccf4 lw v0, -0x7534(gp) | v0 = *(gp);
0x0004ccf8 addiu sp, sp, -0x78 |
0x0004ccfc lw t9, -0x79f4(gp) | t9 = sym.ap_varbuf_init;
0x0004cd00 lw v1, (v0) | v1 = *(v0);
0x0004cd04 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0004cd08 lw v0, (a3) | v0 = *(a3);
0x0004cd0c sw s6, 0x68(sp) | *(var_68h) = s6;
0x0004cd10 sw s3, 0x5c(sp) | *(var_5ch) = s3;
0x0004cd14 sw s2, 0x58(sp) | *(var_58h) = s2;
0x0004cd18 move s6, a2 | s6 = a2;
0x0004cd1c xor s2, a1, a2 | s2 = a1 ^ a2;
0x0004cd20 sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x0004cd24 sw v0, 0x30(sp) | *(var_30h) = v0;
0x0004cd28 lui v1, 0x100 | v1 = imp.apr_hook_global_pool;
0x0004cd2c addiu s3, sp, 0x38 | s3 = sp + 0x38;
0x0004cd30 addiu v0, zero, 0x2000 | v0 = aav.0x00002000;
0x0004cd34 sw gp, 0x20(sp) | *(var_20h) = gp;
0x0004cd38 sw s5, 0x64(sp) | *(var_64h) = s5;
0x0004cd3c sw s1, 0x54(sp) | *(var_54h) = s1;
0x0004cd40 sw s0, 0x50(sp) | *(var_50h) = s0;
| if (s2 == 0) {
0x0004cd44 movn v0, v1, s2 | v0 = v1;
| }
0x0004cd48 sw ra, 0x74(sp) | *(var_74h) = ra;
0x0004cd4c sw fp, 0x70(sp) | *(var_70h) = fp;
0x0004cd50 sw s7, 0x6c(sp) | *(var_6ch) = s7;
0x0004cd54 sw s4, 0x60(sp) | *(var_60h) = s4;
0x0004cd58 move s5, a1 | s5 = a1;
0x0004cd5c move s1, a0 | s1 = a0;
0x0004cd60 addiu a2, zero, 0xc8 | a2 = 0xc8;
0x0004cd64 move a0, s6 | a0 = s6;
0x0004cd68 move a1, s3 | a1 = s3;
0x0004cd6c sw zero, 0x34(sp) | *(var_34h) = 0;
0x0004cd70 move s0, a3 | s0 = a3;
0x0004cd74 move s2, v0 | s2 = v0;
0x0004cd78 jalr t9 | t9 ();
0x0004cd7c lw a0, 0x30(sp) | a0 = *(var_30h);
0x0004cd80 lw gp, 0x20(sp) | gp = *(var_20h);
| if (a0 == 0) {
0x0004cd84 beqz a0, 0x4cdc0 | goto label_4;
| }
0x0004cd88 lw v0, 0x20(a0) | v0 = *((a0 + 8));
| if (v0 != 0) {
0x0004cd8c beql v0, zero, 0x4cd98 |
0x0004cd90 move v0, a0 | v0 = a0;
0x0004cd94 sw v0, 0x30(sp) | *(var_30h) = v0;
| }
0x0004cd98 lw v1, 8(v0) | v1 = *((v0 + 2));
0x0004cd9c lw v0, 8(v1) | v0 = *((v1 + 2));
| if (v1 == 0) {
0x0004cda0 bnel v1, zero, 0x4cdb0 | goto label_5;
| }
0x0004cda4 move v1, v0 | v1 = v0;
0x0004cda8 b 0x4cf7c | goto label_6;
| do {
0x0004cdac lw v0, 8(v1) | v0 = *((v1 + 2));
| label_5:
0x0004cdb0 move v1, v0 | v1 = v0;
0x0004cdb4 bnel v0, zero, 0x4cdac |
| } while (v0 == 0);
0x0004cdb8 sw v1, 0x30(sp) | *(var_30h) = v1;
0x0004cdbc sw v1, 0x20(a0) | *((a0 + 8)) = v1;
| label_4:
0x0004cdc0 lw v0, -0x7a1c(gp) | v0 = *(gp);
0x0004cdc4 addiu s4, zero, 0x23 | s4 = 0x23;
0x0004cdc8 addiu v0, v0, -0x6270 | v0 += -0x6270;
0x0004cdcc addiu fp, sp, 0x34 | fp = sp + 0x34;
0x0004cdd0 addiu s7, sp, 0x30 | s7 = sp + 0x30;
0x0004cdd4 sw v0, 0x28(sp) | *(var_28h) = v0;
0x0004cdd8 lw t9, -0x79f0(gp) | t9 = *(gp);
| do {
| label_1:
0x0004cddc lw a1, 0x20(s1) | a1 = *((s1 + 8));
0x0004cde0 move a2, s2 | a2 = s2;
0x0004cde4 move a0, s3 | a0 = s3;
0x0004cde8 jalr t9 | t9 ();
0x0004cdec lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0004cdf0 bnez v0, 0x4ce68 | goto label_7;
| }
| label_0:
0x0004cdf4 lw a2, 0x38(sp) | a2 = *(var_38h);
0x0004cdf8 lb v0, (a2) | v0 = *(a2);
| if (v0 != s4) {
0x0004cdfc beql v0, s4, 0x4ce34 |
0x0004ce00 lw v0, (s0) | v0 = *(s0);
0x0004ce04 lw t9, 0x28(sp) | t9 = *(var_28h);
| if (v0 != 0) {
0x0004ce08 beqz v0, 0x4ce30 |
0x0004ce0c sw s0, 0x18(sp) | *(var_18h_2) = s0;
0x0004ce10 sw fp, 0x14(sp) | *(var_14h_2) = fp;
0x0004ce14 sw s7, 0x10(sp) | *(var_a8h) = s7;
0x0004ce18 move a3, s1 | a3 = s1;
0x0004ce1c move a1, s6 | a1 = s6;
0x0004ce20 move a0, s5 | a0 = s5;
0x0004ce24 jalr t9 | t9 ();
0x0004ce28 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0004ce2c bnez v0, 0x4cf10 | goto label_3;
| }
| }
0x0004ce30 lw v0, (s0) | v0 = *(s0);
| }
0x0004ce34 lw t9, -0x79f0(gp) | t9 = *(gp);
0x0004ce38 bnez v0, 0x4cddc |
| } while (v0 != 0);
0x0004ce3c lw v0, 0x34(sp) | v0 = *(var_34h);
| if (v0 == 0) {
0x0004ce40 beql v0, zero, 0x4cf50 | goto label_8;
| }
0x0004ce44 lw v0, 0x30(sp) | v0 = *(var_30h);
0x0004ce48 sw v0, (s0) | *(s0) = v0;
0x0004ce4c lw t9, -0x79f0(gp) | t9 = *(gp);
| label_2:
0x0004ce50 lw a1, 0x20(s1) | a1 = *((s1 + 8));
0x0004ce54 move a2, s2 | a2 = s2;
0x0004ce58 move a0, s3 | a0 = s3;
0x0004ce5c jalr t9 | t9 ();
0x0004ce60 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0004ce64 beqz v0, 0x4cdf4 | goto label_0;
| }
| label_7:
0x0004ce68 lw t9, -0x79ec(gp) | t9 = sym.ap_varbuf_free;
0x0004ce6c sw v0, 0x28(sp) | *(var_28h) = v0;
0x0004ce70 move a0, s3 | a0 = s3;
0x0004ce74 jalr t9 | t9 ();
0x0004ce78 lui v1, 1 | v1 = 0x10000;
0x0004ce7c lw v0, 0x28(sp) | v0 = *(var_28h);
| /* esilref: 'ack_ap_set_name_virtual_host' */
0x0004ce80 addiu v1, v1, 0x117e | v1 += 0x117e;
0x0004ce84 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != v1) {
0x0004ce88 bne v0, v1, 0x4cf60 | goto label_9;
| }
0x0004ce8c lw v1, 0x34(sp) | v1 = *(var_34h);
| if (v1 == 0) {
0x0004ce90 beql v1, zero, 0x4cf10 | goto label_3;
| }
0x0004ce94 move v0, zero | v0 = 0;
0x0004ce98 lw s0, -0x7fac(gp) | s0 = *(gp);
0x0004ce9c lw s2, -0x7fac(gp) | s2 = *(gp);
0x0004cea0 lw s3, -0x7fac(gp) | s3 = *(gp);
0x0004cea4 addiu s0, s0, 0x47dc | s0 += 0x47dc;
0x0004cea8 move v0, s0 | v0 = s0;
0x0004ceac move a3, s0 | a3 = s0;
| /* str._s_s_s:_u:__s__was_not_closed. */
0x0004ceb0 addiu s2, s2, 0x7c4 | s2 += aav.0x000007c4;
0x0004ceb4 addiu s3, s3, 0x783c | s3 += 0x783c;
0x0004ceb8 b 0x4cecc |
| while (v1 != 0) {
0x0004cebc lb a3, (v0) | a3 = *(v0);
0x0004cec0 move a0, s3 | a0 = s3;
| if (a3 != 0) {
0x0004cec4 movz a0, s0, a3 | a0 = s0;
| }
0x0004cec8 move a3, a0 | a3 = a0;
0x0004cecc lw a0, (v1) | a0 = *(v1);
0x0004ced0 move a2, v0 | a2 = v0;
0x0004ced4 sw a0, 0x18(sp) | *(var_18h_2) = a0;
0x0004ced8 lw a0, 0x1c(v1) | a0 = *((v1 + 7));
0x0004cedc lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0004cee0 sw a0, 0x14(sp) | *(var_14h_2) = a0;
0x0004cee4 lw v0, 0x18(v1) | v0 = *((v1 + 6));
0x0004cee8 move a1, s2 | a1 = s2;
0x0004ceec sw v0, 0x10(sp) | *(var_a8h) = v0;
0x0004cef0 move a0, s5 | a0 = s5;
0x0004cef4 jalr t9 | t9 ();
0x0004cef8 lw v1, 0x34(sp) | v1 = *(var_34h);
0x0004cefc lw gp, 0x20(sp) | gp = *(var_20h);
0x0004cf00 sw v1, 0x40(s1) | *((s1 + 16)) = v1;
0x0004cf04 lw v1, 0x10(v1) | v1 = *((v1 + 4));
0x0004cf08 sw v1, 0x34(sp) | *(var_34h) = v1;
0x0004cf0c bnez v1, 0x4cebc |
| }
| label_3:
0x0004cf10 lw v1, 0x2c(sp) | v1 = *(var_2ch);
0x0004cf14 lw a0, 0x4c(sp) | a0 = *(var_4ch);
0x0004cf18 lw v1, (v1) | v1 = *(v1);
0x0004cf1c lw ra, 0x74(sp) | ra = *(var_74h);
| if (a0 != v1) {
0x0004cf20 bne a0, v1, 0x4cf84 | goto label_10;
| }
0x0004cf24 lw fp, 0x70(sp) | fp = *(var_70h);
0x0004cf28 lw s7, 0x6c(sp) | s7 = *(var_6ch);
0x0004cf2c lw s6, 0x68(sp) | s6 = *(var_68h);
0x0004cf30 lw s5, 0x64(sp) | s5 = *(var_64h);
0x0004cf34 lw s4, 0x60(sp) | s4 = *(var_60h);
0x0004cf38 lw s3, 0x5c(sp) | s3 = *(var_5ch);
0x0004cf3c lw s2, 0x58(sp) | s2 = *(var_58h);
0x0004cf40 lw s1, 0x54(sp) | s1 = *(var_54h);
0x0004cf44 lw s0, 0x50(sp) | s0 = *(var_50h);
0x0004cf48 addiu sp, sp, 0x78 |
0x0004cf4c jr ra | return v1;
| label_8:
0x0004cf50 lw t9, -0x79f0(gp) | t9 = *(gp);
| if (v0 == 0) {
0x0004cf54 beqz v0, 0x4cddc | goto label_1;
| }
0x0004cf58 sw v0, (s0) | *(s0) = v0;
0x0004cf5c b 0x4ce50 | goto label_2;
| label_9:
0x0004cf60 lw t9, -0x79e8(gp) | t9 = *(gp);
0x0004cf64 lw a1, 0x20(s1) | a1 = *((s1 + 8));
0x0004cf68 move a2, v0 | a2 = v0;
0x0004cf6c move a0, s6 | a0 = s6;
0x0004cf70 jalr t9 | t9 ();
0x0004cf74 lw gp, 0x20(sp) | gp = *(var_20h);
0x0004cf78 b 0x4cf10 | goto label_3;
| label_6:
0x0004cf7c sw v1, 0x20(a0) | *((a0 + 8)) = v1;
0x0004cf80 b 0x4cdc0 | goto label_4;
| label_10:
0x0004cf84 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0004cf88 jalr t9 | t9 ();
0x0004cf8c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x70bbc */
| #include <stdint.h>
|
; (fcn) sym.ap_byterange_filter () | void ap_byterange_filter () {
0x00070bbc lui gp, 3 |
0x00070bc0 addiu gp, gp, 0x2364 |
0x00070bc4 addu gp, gp, t9 | gp += t9;
0x00070bc8 addiu sp, sp, -0x100 |
0x00070bcc lw v0, -0x7534(gp) | v0 = *(gp);
0x00070bd0 sw a0, 0x74(sp) | *(var_74h) = a0;
0x00070bd4 lw a0, 0xc(a0) | a0 = *((a0 + 3));
0x00070bd8 lw v1, (v0) | v1 = *(v0);
0x00070bdc sw v0, 0x78(sp) | *(var_78h) = v0;
0x00070be0 lw v0, 0x100(a0) | v0 = *(a0);
0x00070be4 sw gp, 0x38(sp) | *(var_38h) = gp;
0x00070be8 sw ra, 0xfc(sp) | *(var_fch) = ra;
0x00070bec lw v0, (v0) | v0 = *(v0);
0x00070bf0 sw fp, 0xf8(sp) | *(var_f8h) = fp;
0x00070bf4 sw s7, 0xf4(sp) | *(var_f4h) = s7;
0x00070bf8 lw t0, 0x6c(v0) | t0 = *((v0 + 27));
0x00070bfc sw s6, 0xf0(sp) | *(var_f0h) = s6;
0x00070c00 sw s5, 0xec(sp) | *(var_ech) = s5;
0x00070c04 sw s4, 0xe8(sp) | *(var_e8h) = s4;
0x00070c08 sw s3, 0xe4(sp) | *(var_e4h) = s3;
0x00070c0c sw s2, 0xe0(sp) | *(var_e0h) = s2;
0x00070c10 sw s1, 0xdc(sp) | *(var_dch) = s1;
0x00070c14 sw s0, 0xd8(sp) | *(var_d8h) = s0;
0x00070c18 sw a0, 0x44(sp) | *(var_44h) = a0;
0x00070c1c sw a1, 0x5c(sp) | *(var_5ch) = a1;
0x00070c20 sw v1, 0xd4(sp) | *(var_d4h) = v1;
0x00070c24 addiu v1, zero, -3 | v1 = -3;
| if (t0 < 0) {
0x00070c28 bltz t0, 0x70db0 | goto label_48;
| }
| label_4:
0x00070c2c lw t1, 0x70(v0) | t1 = *((v0 + 28));
| label_5:
0x00070c30 addiu v1, zero, -3 | v1 = -3;
| if (t1 < 0) {
0x00070c34 bltz t1, 0x70da0 | goto label_49;
| }
| label_2:
0x00070c38 lw t2, 0x74(v0) | t2 = *((v0 + 29));
| label_3:
0x00070c3c addiu v0, zero, -3 | v0 = -3;
| if (t2 < 0) {
0x00070c40 bltz t2, 0x70d90 | goto label_50;
| }
| label_0:
0x00070c44 lw v1, 0x5c(sp) | v1 = *(var_5ch);
| label_1:
0x00070c48 addiu t4, v1, 4 | t4 = v1 + 4;
0x00070c4c lw v0, 4(v1) | v0 = *((v1 + 1));
0x00070c50 sw t4, 0x7c(sp) | *(var_7ch) = t4;
| if (v0 == t4) {
0x00070c54 beq v0, t4, 0x70d28 | goto label_51;
| }
0x00070c58 lw v1, 8(v0) | v1 = *((v0 + 2));
0x00070c5c lw a2, -0x7620(gp) | a2 = *((gp - 7560));
0x00070c60 addiu v1, zero, -1 | v1 = -1;
| if (v1 == a2) {
0x00070c64 beq v1, a2, 0x70d28 | goto label_51;
| }
0x00070c68 lw a0, 0xc(v0) | a0 = *((v0 + 3));
0x00070c6c move v1, zero | v1 = 0;
| if (a0 == v1) {
0x00070c70 beq a0, v1, 0x70d28 | goto label_51;
| }
0x00070c74 move a1, zero | a1 = 0;
0x00070c78 addiu a3, zero, -1 | a3 = -1;
0x00070c7c move s6, a0 | s6 = a0;
0x00070c80 b 0x70c9c |
| while (v0 != t4) {
0x00070c84 lw t3, 8(v0) | t3 = *((v0 + 2));
| if (t3 == a2) {
0x00070c88 beql t3, a2, 0x70ccc | goto label_52;
| }
0x00070c8c sw a0, 0x64(sp) | *(var_64h) = a0;
0x00070c90 lw s6, 0xc(v0) | s6 = *((v0 + 3));
0x00070c94 lw s0, 0x74(sp) | s0 = *(var_74h);
| if (s6 == a3) {
0x00070c98 beq s6, a3, 0x70d2c | goto label_53;
| }
0x00070c9c addu s6, v1, s6 | s6 = v1 + s6;
0x00070ca0 sltu v1, s6, v1 | v1 = (s6 < v1) ? 1 : 0;
0x00070ca4 lw v0, (v0) | v0 = *(v0);
0x00070ca8 addu a0, v1, a1 | a0 = v1 + a1;
0x00070cac move a1, a0 | a1 = a0;
0x00070cb0 move v1, s6 | v1 = s6;
0x00070cb4 bne v0, t4, 0x70c84 |
| }
0x00070cb8 lw v0, 0x5c(sp) | v0 = *(var_5ch);
0x00070cbc sw a0, 0x64(sp) | *(var_64h) = a0;
0x00070cc0 lw v0, 0xc(v0) | v0 = *((v0 + 3));
0x00070cc4 lw s0, 0x74(sp) | s0 = *(var_74h);
| if (v0 == a2) {
0x00070cc8 bne v0, a2, 0x70d2c |
| label_52:
0x00070ccc lw v0, 0x64(sp) | v0 = *(var_64h);
0x00070cd0 or v0, s6, v0 | v0 = s6 | v0;
0x00070cd4 lw v1, 0x44(sp) | v1 = *(var_44h);
| if (v0 != 0) {
0x00070cd8 beqz v0, 0x70d28 |
0x00070cdc sw t2, 0x50(sp) | *(var_50h) = t2;
0x00070ce0 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x00070ce4 lw v0, 0x1c(v1) | v0 = *((v1 + 7));
0x00070ce8 sw t0, 0x48(sp) | *(var_48h) = t0;
0x00070cec lw s0, 0x44(v1) | s0 = *((v1 + 17));
| if (v0 == 0) {
0x00070cf0 beqz v0, 0x70dc0 | goto label_54;
| }
| label_6:
0x00070cf4 lw v0, 0x44(sp) | v0 = *(var_44h);
| label_7:
0x00070cf8 lw s1, 0x74(sp) | s1 = *(var_74h);
0x00070cfc lw t9, -0x7e34(gp) | t9 = sym.ap_remove_output_filter;
0x00070d00 move a0, s1 | a0 = s1;
0x00070d04 sw s0, 0x44(v0) | *((v0 + 17)) = s0;
0x00070d08 jalr t9 | t9 ();
0x00070d0c lw gp, 0x38(sp) | gp = *(var_38h);
0x00070d10 lw a0, 8(s1) | a0 = *((s1 + 2));
0x00070d14 lw t9, -0x7e30(gp) | t9 = sym.ap_pass_brigade;
0x00070d18 lw a1, 0x5c(sp) | a1 = *(var_5ch);
0x00070d1c jalr t9 | t9 ();
0x00070d20 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070d24 b 0x70d50 | goto label_23;
| }
| label_51:
0x00070d28 lw s0, 0x74(sp) | s0 = *(var_74h);
| }
| label_53:
0x00070d2c lw t9, -0x7e34(gp) | t9 = sym.ap_remove_output_filter;
0x00070d30 move a0, s0 | a0 = s0;
0x00070d34 jalr t9 | t9 ();
0x00070d38 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070d3c lw a0, 8(s0) | a0 = *((s0 + 2));
0x00070d40 lw t9, -0x7e30(gp) | t9 = sym.ap_pass_brigade;
0x00070d44 lw a1, 0x5c(sp) | a1 = *(var_5ch);
0x00070d48 jalr t9 | t9 ();
0x00070d4c lw gp, 0x38(sp) | gp = *(var_38h);
| label_23:
0x00070d50 lw v1, 0x78(sp) | v1 = *(var_78h);
0x00070d54 lw a0, 0xd4(sp) | a0 = *(var_d4h);
0x00070d58 lw v1, (v1) | v1 = *(v1);
0x00070d5c lw ra, 0xfc(sp) | ra = *(var_fch);
| if (a0 != v1) {
0x00070d60 bne a0, v1, 0x7215c | goto label_55;
| }
0x00070d64 lw fp, 0xf8(sp) | fp = *(var_f8h);
0x00070d68 lw s7, 0xf4(sp) | s7 = *(var_f4h);
0x00070d6c lw s6, 0xf0(sp) | s6 = *(var_f0h);
0x00070d70 lw s5, 0xec(sp) | s5 = *(var_ech);
0x00070d74 lw s4, 0xe8(sp) | s4 = *(var_e8h);
0x00070d78 lw s3, 0xe4(sp) | s3 = *(var_e4h);
0x00070d7c lw s2, 0xe0(sp) | s2 = *(var_e0h);
0x00070d80 lw s1, 0xdc(sp) | s1 = *(var_dch);
0x00070d84 lw s0, 0xd8(sp) | s0 = *(var_d8h);
0x00070d88 addiu sp, sp, 0x100 |
0x00070d8c jr ra | return v0;
| label_50:
0x00070d90 addiu t2, zero, 0x14 | t2 = 0x14;
| if (t2 == v0) {
0x00070d94 bnel t2, v0, 0x70c44 | goto label_0;
| }
0x00070d98 lw v1, 0x5c(sp) | v1 = *(var_5ch);
0x00070d9c b 0x70c48 | goto label_1;
| label_49:
0x00070da0 addiu t1, zero, 0x14 | t1 = 0x14;
| if (t1 == v1) {
0x00070da4 bnel t1, v1, 0x70c38 | goto label_2;
| }
0x00070da8 lw t2, 0x74(v0) | t2 = *((v0 + 29));
0x00070dac b 0x70c3c | goto label_3;
| label_48:
0x00070db0 addiu t0, zero, 0xc8 | t0 = 0xc8;
| if (t0 == v1) {
0x00070db4 bnel t0, v1, 0x70c2c | goto label_4;
| }
0x00070db8 lw t1, 0x70(v0) | t1 = *((v0 + 28));
0x00070dbc b 0x70c30 | goto label_5;
| label_54:
0x00070dc0 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00070dc4 lw v0, 4(v1) | v0 = *((v1 + 1));
0x00070dc8 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00070dcc lw a0, 0xb0(v1) | a0 = *((v1 + 44));
| /* esilref: 'Range' */
0x00070dd0 addiu a1, a1, -0x58c8 | a1 += -0x58c8;
0x00070dd4 sw v0, 0x90(sp) | *(var_90h) = v0;
0x00070dd8 jalr t9 | t9 ();
0x00070ddc sw v0, 0xc4(sp) | *(var_c4h) = v0;
0x00070de0 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070de4 lw t0, 0x48(sp) | t0 = *(var_48h);
0x00070de8 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00070dec lw t2, 0x50(sp) | t2 = *(var_50h);
| if (v0 == 0) {
0x00070df0 beqz v0, 0x70f44 | goto label_56;
| }
0x00070df4 lw a1, -0x7fac(gp) | a1 = *(gp);
| label_9:
0x00070df8 lw t9, -0x7648(gp) | t9 = sym.imp.strncasecmp;
0x00070dfc sw t2, 0x50(sp) | *(var_50h) = t2;
0x00070e00 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x00070e04 sw t0, 0x48(sp) | *(var_48h) = t0;
0x00070e08 addiu a2, zero, 6 | a2 = 6;
| /* str.bytes */
0x00070e0c addiu a1, a1, 0x7854 | a1 += 0x7854;
0x00070e10 move a0, v0 | a0 = v0;
0x00070e14 jalr t9 | t9 ();
0x00070e18 sw v0, 0x8c(sp) | *(var_8ch) = v0;
0x00070e1c lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x00070e20 bnez v0, 0x70cf4 | goto label_6;
| }
0x00070e24 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00070e28 lw v1, 0x44(v0) | v1 = *((v0 + 17));
0x00070e2c addiu v0, zero, 0xc8 | v0 = 0xc8;
0x00070e30 lw v0, 0x44(sp) | v0 = *(var_44h);
| if (v1 != v0) {
0x00070e34 bne v1, v0, 0x70cf8 | goto label_7;
| }
0x00070e38 lw v1, 0x44(sp) | v1 = *(var_44h);
0x00070e3c lw v0, -0x7fac(gp) | v0 = *(gp);
0x00070e40 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00070e44 lw a0, 0xb4(v1) | a0 = *((v1 + 45));
0x00070e48 sw v0, 0xac(sp) | *(var_ach) = v0;
| /* str.Content_Range */
0x00070e4c addiu a1, v0, -0x58d0 | a1 = v0 + -0x58d0;
0x00070e50 jalr t9 | t9 ();
0x00070e54 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x00070e58 bnez v0, 0x70cf4 | goto label_6;
| }
0x00070e5c lw v0, 0x44(sp) | v0 = *(var_44h);
0x00070e60 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00070e64 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00070e68 lw a0, 0xb4(v0) | a0 = *((v0 + 45));
| /* str.Content_Type */
0x00070e6c addiu a1, a1, -0x6858 | a1 += -0x6858;
0x00070e70 jalr t9 | t9 ();
0x00070e74 move s1, v0 | s1 = v0;
0x00070e78 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070e7c lw t0, 0x48(sp) | t0 = *(var_48h);
0x00070e80 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00070e84 lw t2, 0x50(sp) | t2 = *(var_50h);
| if (v0 == 0) {
0x00070e88 beqz v0, 0x70ed8 | goto label_57;
| }
0x00070e8c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00070e90 lw t9, -0x7648(gp) | t9 = sym.imp.strncasecmp;
0x00070e94 addiu a2, zero, 0x14 | a2 = 0x14;
| /* str.multipart_byteranges */
0x00070e98 addiu a1, a1, 0x785c | a1 += 0x785c;
0x00070e9c move a0, v0 | a0 = v0;
0x00070ea0 jalr t9 | t9 ();
0x00070ea4 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x00070ea8 beqz v0, 0x70cf4 | goto label_6;
| }
0x00070eac lw a1, -0x7fac(gp) | a1 = *(gp);
0x00070eb0 lw t9, -0x7648(gp) | t9 = sym.imp.strncasecmp;
0x00070eb4 addiu a2, zero, 0x16 | a2 = 0x16;
| /* str.multipart_x_byteranges */
0x00070eb8 addiu a1, a1, 0x7874 | a1 += 0x7874;
0x00070ebc move a0, s1 | a0 = s1;
0x00070ec0 jalr t9 | t9 ();
0x00070ec4 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070ec8 lw t0, 0x48(sp) | t0 = *(var_48h);
0x00070ecc lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00070ed0 lw t2, 0x50(sp) | t2 = *(var_50h);
| if (v0 == 0) {
0x00070ed4 beqz v0, 0x70cf4 | goto label_6;
| }
| label_57:
0x00070ed8 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00070edc lw t9, -0x783c(gp) | t9 = sym.ap_condition_if_range;
0x00070ee0 sw t2, 0x50(sp) | *(var_50h) = t2;
0x00070ee4 lw a1, 0xb4(v0) | a1 = *((v0 + 45));
0x00070ee8 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x00070eec sw t0, 0x48(sp) | *(var_48h) = t0;
0x00070ef0 move a0, v0 | a0 = v0;
0x00070ef4 bal 0x68230 | sym_ap_condition_if_range ();
0x00070ef8 addiu v1, zero, 1 | v1 = 1;
0x00070efc lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == v1) {
0x00070f00 beq v0, v1, 0x70cf4 | goto label_6;
| }
0x00070f04 lw v0, 0xc4(sp) | v0 = *(var_c4h);
0x00070f08 lw t0, 0x48(sp) | t0 = *(var_48h);
0x00070f0c addiu v0, v0, 6 | v0 += 6;
0x00070f10 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00070f14 lw t2, 0x50(sp) | t2 = *(var_50h);
0x00070f18 addiu a3, zero, 1 | a3 = 1;
0x00070f1c sw v0, 0xa0(sp) | *(var_a0h) = v0;
0x00070f20 sw v0, 0xc4(sp) | *(var_c4h) = v0;
0x00070f24 addiu a0, zero, 0x2c | a0 = 0x2c;
| do {
| label_8:
0x00070f28 lb v1, (v0) | v1 = *(v0);
| if (v1 == 0) {
0x00070f2c beql v1, zero, 0x70f7c | goto label_58;
| }
0x00070f30 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00070f34 addiu v0, v0, 1 | v0++;
0x00070f38 bne v1, a0, 0x70f28 |
| } while (v1 != a0);
0x00070f3c addiu a3, a3, 1 | a3++;
0x00070f40 b 0x70f28 | goto label_8;
| label_56:
0x00070f44 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00070f48 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00070f4c lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00070f50 lw a0, 0xb0(v0) | a0 = *((v0 + 44));
| /* str.Request_Range */
0x00070f54 addiu a1, a1, 0x7844 | a1 += 0x7844;
0x00070f58 jalr t9 | t9 ();
0x00070f5c sw v0, 0xc4(sp) | *(var_c4h) = v0;
0x00070f60 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070f64 lw t0, 0x48(sp) | t0 = *(var_48h);
0x00070f68 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00070f6c lw t2, 0x50(sp) | t2 = *(var_50h);
| if (v0 == 0) {
0x00070f70 beqz v0, 0x70cf4 | goto label_6;
| }
0x00070f74 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00070f78 b 0x70df8 | goto label_9;
| label_58:
0x00070f7c slti a1, a3, 0x65 | a1 = (a3 < 0x65) ? 1 : 0;
0x00070f80 lw t9, -0x775c(gp) | t9 = sym.imp.apr_array_make;
0x00070f84 lw a0, (v0) | a0 = *(v0);
0x00070f88 addiu v0, zero, 0x64 | v0 = 0x64;
| if (a1 == 0) {
0x00070f8c movn v0, a3, a1 | v0 = a3;
| }
0x00070f90 move a1, v0 | a1 = v0;
0x00070f94 addiu v0, s6, -1 | v0 = s6 + -1;
0x00070f98 sw t0, 0x94(sp) | *(var_94h) = t0;
0x00070f9c sw t1, 0x88(sp) | *(var_88h) = t1;
0x00070fa0 sw t2, 0x50(sp) | *(var_50h) = t2;
0x00070fa4 addiu a2, zero, 0x10 | a2 = 0x10;
0x00070fa8 sw v0, 0x6c(sp) | *(var_6ch) = v0;
0x00070fac move s1, v0 | s1 = v0;
0x00070fb0 jalr t9 | t9 ();
0x00070fb4 lw v1, 0x64(sp) | v1 = *(var_64h);
0x00070fb8 sltu a0, s1, s6 | a0 = (s1 < s6) ? 1 : 0;
0x00070fbc lw t2, 0x50(sp) | t2 = *(var_50h);
0x00070fc0 addiu v1, v1, -1 | v1 += -1;
0x00070fc4 lw t0, 0x94(sp) | t0 = *(var_94h);
0x00070fc8 lw t1, 0x88(sp) | t1 = *(var_88h);
0x00070fcc sw v0, 0x80(sp) | *(var_80h) = v0;
0x00070fd0 lw gp, 0x38(sp) | gp = *(var_38h);
0x00070fd4 addu v0, a0, v1 | v0 = a0 + v1;
0x00070fd8 move s3, zero | s3 = 0;
0x00070fdc move s4, zero | s4 = 0;
0x00070fe0 sw zero, 0x68(sp) | *(var_68h) = 0;
0x00070fe4 sw zero, 0x84(sp) | *(var_84h) = 0;
0x00070fe8 sw zero, 0x54(sp) | *(var_54h) = 0;
0x00070fec sw zero, 0x58(sp) | *(var_58h) = 0;
0x00070ff0 sw zero, 0x60(sp) | *(var_60h) = 0;
0x00070ff4 move s1, zero | s1 = 0;
0x00070ff8 move s2, zero | s2 = 0;
0x00070ffc sw zero, 0x48(sp) | *(var_48h) = 0;
0x00071000 sw zero, 0x4c(sp) | *(var_4ch) = 0;
0x00071004 addiu s5, sp, 0xc4 | s5 = sp + 0xc4;
0x00071008 sw v0, 0x70(sp) | *(var_70h) = v0;
0x0007100c sw t0, 0x9c(sp) | *(var_9ch) = t0;
0x00071010 move s7, t1 | s7 = t1;
0x00071014 move fp, t2 | fp = t2;
0x00071018 sw s0, 0x50(sp) | *(var_50h) = s0;
| do {
| label_11:
0x0007101c lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071020 lw t9, -0x7ee4(gp) | t9 = sym.ap_getword;
0x00071024 addiu a2, zero, 0x2c | a2 = 0x2c;
0x00071028 lw a0, (v0) | a0 = *(v0);
0x0007102c move a1, s5 | a1 = s5;
0x00071030 jalr t9 | t9 ();
0x00071034 move s0, v0 | s0 = v0;
0x00071038 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x0007103c beqz v0, 0x713cc | goto label_59;
| }
0x00071040 lb v0, (s0) | v0 = *(s0);
0x00071044 lw t9, -0x72b8(gp) | t9 = sym.imp.strchr;
| if (v0 == 0) {
0x00071048 beqz v0, 0x713cc | goto label_59;
| }
0x0007104c addiu a1, zero, 0x2d | a1 = 0x2d;
0x00071050 move a0, s0 | a0 = s0;
0x00071054 jalr t9 | t9 ();
0x00071058 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x0007105c beqz v0, 0x71368 | goto label_60;
| }
0x00071060 addiu t0, v0, 1 | t0 = v0 + 1;
| if (s0 == v0) {
0x00071064 beq s0, v0, 0x71248 | goto label_61;
| }
0x00071068 lw t9, -0x7ebc(gp) | t9 = sym.ap_parse_strict_length;
0x0007106c addiu a3, sp, 0xc8 | a3 = sp + 0xc8;
0x00071070 sw t0, 0x98(sp) | *(var_98h) = t0;
0x00071074 sb zero, (v0) | *(v0) = 0;
0x00071078 sw v0, 0x94(sp) | *(var_94h) = v0;
0x0007107c move a1, s0 | a1 = s0;
0x00071080 move a0, a3 | a0 = a3;
0x00071084 sw a3, 0x88(sp) | *(var_88h) = a3;
0x00071088 jalr t9 | t9 ();
0x0007108c lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x00071090 beqz v0, 0x71368 | goto label_60;
| }
0x00071094 lw a2, 0x94(sp) | a2 = *(var_94h);
0x00071098 lw v1, 0xcc(sp) | v1 = *(var_cch);
0x0007109c lw a3, 0x88(sp) | a3 = *(var_88h);
0x000710a0 lb v0, 1(a2) | v0 = *((a2 + 1));
0x000710a4 lw t0, 0x98(sp) | t0 = *(var_98h);
0x000710a8 lw a2, 0xc8(sp) | a2 = *(var_c8h);
| if (v0 != 0) {
0x000710ac bnez v0, 0x71320 | goto label_62;
| }
0x000710b0 or v0, a2, v1 | v0 = a2 | v1;
0x000710b4 lw a3, 0x6c(sp) | a3 = *(var_6ch);
0x000710b8 lw a1, 0x70(sp) | a1 = *(var_70h);
| if (v0 == 0) {
0x000710bc beqz v0, 0x715b0 | goto label_63;
| }
| label_13:
0x000710c0 lw a0, 0x64(sp) | a0 = *(var_64h);
| if (v1 < 0) {
0x000710c4 bltz v1, 0x7123c | goto label_64;
| }
0x000710c8 slt v0, v1, a0 | v0 = (v1 < a0) ? 1 : 0;
0x000710cc slt v0, a1, a0 | v0 = (a1 < a0) ? 1 : 0;
| if (v0 != 0) {
0x000710d0 bnez v0, 0x710f8 | goto label_65;
| }
0x000710d4 sltu v0, a2, s6 | v0 = (a2 < s6) ? 1 : 0;
| if (a0 == v1) {
0x000710d8 beq a0, v1, 0x710e8 | goto label_66;
| }
0x000710dc addiu v0, zero, 1 | v0 = 1;
| label_10:
0x000710e0 sw v0, 0x84(sp) | *(var_84h) = v0;
0x000710e4 b 0x7101c |
| } while (1);
| label_66:
0x000710e8 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x000710ec beqz v0, 0x710e0 | goto label_10;
| }
| label_12:
0x000710f0 lw a0, 0x64(sp) | a0 = *(var_64h);
0x000710f4 slt v0, a1, a0 | v0 = (a1 < a0) ? 1 : 0;
| label_65:
0x000710f8 lw v0, 0x68(sp) | v0 = *(var_68h);
| if (v0 != 0) {
0x000710fc bnez v0, 0x71118 | goto label_67;
| }
0x00071100 lw a3, 0x6c(sp) | a3 = *(var_6ch);
| if (a0 == a1) {
0x00071104 bnel a0, a1, 0x71234 | goto label_68;
| }
0x00071108 sltu v0, a3, s6 | v0 = (a3 < s6) ? 1 : 0;
| if (v0 == 0) {
0x0007110c beql v0, zero, 0x71234 | goto label_68;
| }
0x00071110 lw a3, 0x6c(sp) | a3 = *(var_6ch);
| do {
0x00071114 lw v0, 0x68(sp) | v0 = *(var_68h);
| label_67:
0x00071118 lw a0, 0x4c(sp) | a0 = *(var_4ch);
| if (v0 == 0) {
0x0007111c beqz v0, 0x71390 | goto label_69;
| }
0x00071120 slt v0, v1, a0 | v0 = (v1 < a0) ? 1 : 0;
0x00071124 lw a0, 0x48(sp) | a0 = *(var_48h);
| if (v0 == 0) {
0x00071128 bnel v0, zero, 0x7128c | goto label_70;
| }
0x0007112c slt a0, s2, a1 | a0 = (s2 < a1) ? 1 : 0;
| if (a0 == v1) {
0x00071130 bne a0, v1, 0x71148 |
0x00071134 lw v0, 0x48(sp) | v0 = *(var_48h);
0x00071138 sltu v0, a2, v0 | v0 = (a2 < v0) ? 1 : 0;
0x0007113c lw a0, 0x48(sp) | a0 = *(var_48h);
| if (v0 != 0) {
0x00071140 bnez v0, 0x7128c | goto label_70;
| }
0x00071144 slt a0, s2, a1 | a0 = (s2 < a1) ? 1 : 0;
| }
0x00071148 addiu v0, zero, 1 | v0 = 1;
| if (a0 != 0) {
0x0007114c bnez a0, 0x71378 | goto label_71;
| }
0x00071150 sltu a0, s1, a3 | a0 = (s1 < a3) ? 1 : 0;
| if (a1 == s2) {
0x00071154 beq a1, s2, 0x71370 | goto label_72;
| }
| label_14:
0x00071158 slt a0, a1, s2 | a0 = (a1 < s2) ? 1 : 0;
| if (a0 == 0) {
| label_15:
0x0007115c bnez a0, 0x7118c |
0x00071160 nop |
0x00071164 addiu a0, s1, 1 | a0 = s1 + 1;
| if (s2 == a1) {
0x00071168 bne s2, a1, 0x71178 |
0x0007116c sltu a0, a3, s1 | a0 = (a3 < s1) ? 1 : 0;
0x00071170 addiu a0, s1, 1 | a0 = s1 + 1;
| if (a0 != 0) {
0x00071174 bnez a0, 0x7118c | goto label_16;
| }
| }
0x00071178 sltu t0, a0, s1 | t0 = (a0 < s1) ? 1 : 0;
0x0007117c addu t0, t0, s2 | t0 += s2;
0x00071180 slt t1, t0, v1 | t1 = (t0 < v1) ? 1 : 0;
| if (t1 == 0) {
0x00071184 beqz t1, 0x713ac | goto label_73;
| }
0x00071188 nop |
| }
| label_16:
0x0007118c lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
| if (v0 != 0) {
0x00071190 bnez v0, 0x71318 | goto label_74;
| }
0x00071194 lw a0, 0x80(sp) | a0 = *(var_80h);
0x00071198 sw v1, 0xa4(sp) | *(var_a4h) = v1;
0x0007119c sw a2, 0x98(sp) | *(var_98h) = a2;
0x000711a0 sw a1, 0x94(sp) | *(var_94h) = a1;
0x000711a4 sw a3, 0x88(sp) | *(var_88h) = a3;
0x000711a8 jalr t9 | t9 ();
0x000711ac lw v1, 0x48(sp) | v1 = *(var_48h);
0x000711b0 lw a1, 0x4c(sp) | a1 = *(var_4ch);
0x000711b4 subu a0, s1, v1 | __asm ("subu a0, s1, v1");
0x000711b8 lw a2, 0x58(sp) | a2 = *(var_58h);
0x000711bc subu t1, s2, a1 | __asm ("subu t1, s2, a1");
0x000711c0 sltu t2, s1, a0 | t2 = (s1 < a0) ? 1 : 0;
0x000711c4 addiu t0, a0, 1 | t0 = a0 + 1;
0x000711c8 subu t1, t1, t2 | __asm ("subu t1, t1, t2");
0x000711cc sltu a0, t0, a0 | a0 = (t0 < a0) ? 1 : 0;
0x000711d0 addu t0, a2, t0 | t0 = a2 + t0;
0x000711d4 addu a0, a0, t1 | a0 += t1;
0x000711d8 sltu t1, t0, a2 | t1 = (t0 < a2) ? 1 : 0;
0x000711dc lw a2, 0x60(sp) | a2 = *(var_60h);
0x000711e0 lw gp, 0x38(sp) | gp = *(var_38h);
0x000711e4 addu a0, a2, a0 | a0 = a2 + a0;
0x000711e8 sw v1, (v0) | *(v0) = v1;
0x000711ec sw a1, 4(v0) | *((v0 + 1)) = a1;
0x000711f0 sw s1, 8(v0) | *((v0 + 2)) = s1;
0x000711f4 sw s2, 0xc(v0) | *((v0 + 3)) = s2;
0x000711f8 addu v0, t1, a0 | v0 = t1 + a0;
0x000711fc sw v0, 0x60(sp) | *(var_60h) = v0;
0x00071200 lw v0, 0x54(sp) | v0 = *(var_54h);
0x00071204 lw a3, 0x88(sp) | a3 = *(var_88h);
0x00071208 lw a1, 0x94(sp) | a1 = *(var_94h);
0x0007120c lw a2, 0x98(sp) | a2 = *(var_98h);
0x00071210 lw v1, 0xa4(sp) | v1 = *(var_a4h);
0x00071214 addiu v0, v0, 1 | v0++;
0x00071218 sw t0, 0x58(sp) | *(var_58h) = t0;
0x0007121c sw v0, 0x54(sp) | *(var_54h) = v0;
0x00071220 move s1, a3 | s1 = a3;
0x00071224 move s2, a1 | s2 = a1;
0x00071228 sw a2, 0x48(sp) | *(var_48h) = a2;
0x0007122c sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x00071230 b 0x7101c | goto label_11;
| label_68:
0x00071234 lw a1, 0x70(sp) | a1 = *(var_70h);
0x00071238 b 0x71114 |
| } while (1);
| label_64:
0x0007123c move a2, zero | a2 = 0;
0x00071240 move v1, zero | v1 = 0;
0x00071244 b 0x710f0 | goto label_12;
| label_61:
0x00071248 lw t9, -0x7ebc(gp) | t9 = sym.ap_parse_strict_length;
0x0007124c move a1, t0 | a1 = t0;
0x00071250 addiu a0, sp, 0xc8 | a0 = sp + 0xc8;
0x00071254 jalr t9 | t9 ();
0x00071258 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x0007125c beqz v0, 0x71368 | goto label_60;
| }
0x00071260 lw v0, 0xcc(sp) | v0 = *(var_cch);
0x00071264 lw a2, 0xc8(sp) | a2 = *(var_c8h);
| if (v0 <= 0) {
0x00071268 blez v0, 0x72168 | goto label_75;
| }
0x0007126c lw a0, 0x64(sp) | a0 = *(var_64h);
| label_47:
0x00071270 subu a2, s6, a2 | __asm ("subu a2, s6, a2");
0x00071274 sltu v1, s6, a2 | v1 = (s6 < a2) ? 1 : 0;
0x00071278 subu v0, a0, v0 | __asm ("subu v0, a0, v0");
0x0007127c subu v1, v0, v1 | __asm ("subu v1, v0, v1");
0x00071280 lw a3, 0x6c(sp) | a3 = *(var_6ch);
0x00071284 lw a1, 0x70(sp) | a1 = *(var_70h);
0x00071288 b 0x710c0 | goto label_13;
| label_70:
0x0007128c lw t0, 0x4c(sp) | t0 = *(var_4ch);
0x00071290 addiu v0, a0, -1 | v0 = a0 + -1;
0x00071294 addiu t0, t0, -1 | t0 += -1;
0x00071298 sltu a0, v0, a0 | a0 = (v0 < a0) ? 1 : 0;
0x0007129c addu a0, a0, t0 | a0 += t0;
0x000712a0 slt t0, a1, a0 | t0 = (a1 < a0) ? 1 : 0;
0x000712a4 move v0, zero | v0 = 0;
| if (t0 == 0) {
0x000712a8 bnel t0, zero, 0x71158 | goto label_14;
| }
0x000712ac slt v0, a1, s2 | v0 = (a1 < s2) ? 1 : 0;
| if (a0 == a1) {
0x000712b0 bnel a0, a1, 0x712c4 | goto label_76;
| }
0x000712b4 sltu v0, a3, v0 | v0 = (a3 < v0) ? 1 : 0;
0x000712b8 move v0, zero | v0 = 0;
| if (v0 != 0) {
0x000712bc bnez v0, 0x71158 | goto label_14;
| }
0x000712c0 slt v0, a1, s2 | v0 = (a1 < s2) ? 1 : 0;
| label_76:
0x000712c4 addiu s3, s3, 1 | s3++;
| if (v0 != 0) {
0x000712c8 bnez v0, 0x71380 | goto label_77;
| }
0x000712cc addiu v0, s1, 1 | v0 = s1 + 1;
| if (s2 == a1) {
0x000712d0 bne s2, a1, 0x712e4 |
0x000712d4 sltu v0, a3, s1 | v0 = (a3 < s1) ? 1 : 0;
0x000712d8 sw a2, 0x48(sp) | *(var_48h) = a2;
| if (v0 == 0) {
0x000712dc bnel v0, zero, 0x71384 | goto label_78;
| }
0x000712e0 addiu v0, s1, 1 | v0 = s1 + 1;
| }
0x000712e4 sltu a0, v0, s1 | a0 = (v0 < s1) ? 1 : 0;
0x000712e8 addu a0, a0, s2 | a0 += s2;
0x000712ec slt t0, a0, v1 | t0 = (a0 < v1) ? 1 : 0;
0x000712f0 sw a2, 0x48(sp) | *(var_48h) = a2;
| if (t0 == 0) {
0x000712f4 bnel t0, zero, 0x71384 | goto label_78;
| }
0x000712f8 sltu v0, v0, a2 | v0 = (v0 < a2) ? 1 : 0;
| if (v1 == a0) {
0x000712fc bne v1, a0, 0x71308 |
0x00071300 sw a2, 0x48(sp) | *(var_48h) = a2;
| if (v0 == 0) {
0x00071304 bnel v0, zero, 0x71384 | goto label_78;
| }
| }
0x00071308 sw a2, 0x48(sp) | *(var_48h) = a2;
0x0007130c sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x00071310 move s1, a3 | s1 = a3;
0x00071314 move s2, a1 | s2 = a1;
| label_74:
0x00071318 addiu s4, s4, 1 | s4++;
0x0007131c b 0x7101c | goto label_11;
| label_62:
0x00071320 lw t9, -0x7ebc(gp) | t9 = sym.ap_parse_strict_length;
0x00071324 sw v1, 0x94(sp) | *(var_94h) = v1;
0x00071328 sw a2, 0x88(sp) | *(var_88h) = a2;
0x0007132c move a1, t0 | a1 = t0;
0x00071330 move a0, a3 | a0 = a3;
0x00071334 jalr t9 | t9 ();
0x00071338 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x0007133c beqz v0, 0x71368 | goto label_60;
| }
0x00071340 lw a1, 0xcc(sp) | a1 = *(var_cch);
0x00071344 lw v1, 0x94(sp) | v1 = *(var_94h);
0x00071348 slt v0, a1, v1 | v0 = (a1 < v1) ? 1 : 0;
0x0007134c lw a3, 0xc8(sp) | a3 = *(var_c8h);
| if (v0 != 0) {
0x00071350 bnez v0, 0x71368 | goto label_60;
| }
0x00071354 lw a2, 0x88(sp) | a2 = *(var_88h);
| if (v1 != a1) {
0x00071358 bne v1, a1, 0x710c0 | goto label_13;
| }
0x0007135c sltu v0, a3, a2 | v0 = (a3 < a2) ? 1 : 0;
| if (v0 == 0) {
0x00071360 beqz v0, 0x710c0 | goto label_13;
| }
0x00071364 nop |
| label_60:
0x00071368 lw s0, 0x50(sp) | s0 = *(var_50h);
0x0007136c b 0x70cf4 | goto label_6;
| label_72:
0x00071370 slt a0, a1, s2 | a0 = (a1 < s2) ? 1 : 0;
| if (a0 == 0) {
0x00071374 beqz a0, 0x7115c | goto label_15;
| }
| label_71:
0x00071378 move v0, zero | v0 = 0;
0x0007137c b 0x71158 | goto label_14;
| label_77:
0x00071380 sw a2, 0x48(sp) | *(var_48h) = a2;
| label_78:
0x00071384 sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x00071388 addiu s4, s4, 1 | s4++;
0x0007138c b 0x7101c | goto label_11;
| label_69:
0x00071390 addiu v0, zero, 1 | v0 = 1;
0x00071394 move s1, a3 | s1 = a3;
0x00071398 move s2, a1 | s2 = a1;
0x0007139c sw a2, 0x48(sp) | *(var_48h) = a2;
0x000713a0 sw v1, 0x4c(sp) | *(var_4ch) = v1;
0x000713a4 sw v0, 0x68(sp) | *(var_68h) = v0;
0x000713a8 b 0x7101c | goto label_11;
| label_73:
0x000713ac sltu a0, a0, a2 | a0 = (a0 < a2) ? 1 : 0;
| if (v1 != t0) {
0x000713b0 bne v1, t0, 0x713bc | goto label_79;
| }
| if (a0 != 0) {
0x000713b4 bnez a0, 0x7118c | goto label_16;
| }
0x000713b8 nop |
| label_79:
0x000713bc move s1, a3 | s1 = a3;
0x000713c0 move s2, a1 | s2 = a1;
0x000713c4 addiu s4, s4, 1 | s4++;
0x000713c8 b 0x7101c | goto label_11;
| label_59:
0x000713cc lw v0, 0x68(sp) | v0 = *(var_68h);
0x000713d0 lw t0, 0x9c(sp) | t0 = *(var_9ch);
0x000713d4 move t1, s7 | t1 = s7;
0x000713d8 move t2, fp | t2 = fp;
0x000713dc lw s0, 0x50(sp) | s0 = *(var_50h);
| if (v0 != 0) {
0x000713e0 bnez v0, 0x71604 | goto label_80;
| }
0x000713e4 lw v0, 0x54(sp) | v0 = *(var_54h);
0x000713e8 sw v0, 0x84(sp) | *(var_84h) = v0;
| if (v0 != 0) {
0x000713ec bnel v0, zero, 0x713fc |
0x000713f0 lw v0, 0x84(sp) | v0 = *(var_84h);
0x000713f4 addiu v0, zero, -1 | v0 = -1;
| if (v0 != 0) {
0x000713f8 bnez v0, 0x720b4 | goto label_81;
| }
| }
| label_17:
0x000713fc lw v1, 0x60(sp) | v1 = *(var_60h);
0x00071400 lw a0, 0x64(sp) | a0 = *(var_64h);
0x00071404 slt v0, a0, v1 | v0 = (a0 < v1) ? 1 : 0;
0x00071408 lw v1, -0x7838(gp) | v1 = *(gp);
| if (v0 != 0) {
0x0007140c bnel v0, zero, 0x71424 |
0x00071410 lw v0, 0x58(sp) | v0 = *(var_58h);
| if (v1 != a0) {
0x00071414 bne v1, a0, 0x71460 | goto label_82;
| }
0x00071418 sltu v0, s6, v0 | v0 = (s6 < v0) ? 1 : 0;
0x0007141c lw v1, -0x7838(gp) | v1 = *(gp);
| if (v0 == 0) {
0x00071420 beqz v0, 0x71460 | goto label_82;
| }
| }
0x00071424 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071428 lw a2, 8(v1) | a2 = *((v1 + 2));
0x0007142c lw v0, 0x108(v0) | v0 = *(v0);
| if (a2 < 0) {
0x00071430 bltz a2, 0x72088 | goto label_83;
| }
| if (v0 == 0) {
0x00071434 beql v0, zero, 0x71ff8 | goto label_84;
| }
0x00071438 lw v0, 0x44(sp) | v0 = *(var_44h);
0x0007143c lw v1, (v0) | v1 = *(v0);
0x00071440 addu v1, v1, a2 | v1 += a2;
| if (v1 == 0) {
0x00071444 beqz v1, 0x7203c | goto label_40;
| }
0x00071448 lb v1, (v1) | v1 = *(v1);
| if (v1 < 0) {
0x0007144c bltzl v1, 0x72040 | goto label_37;
| }
0x00071450 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00071454 slti v0, v1, 8 | v0 = (v1 < 8) ? 1 : 0;
| label_36:
0x00071458 xori v0, v0, 1 | v0 ^= 1;
0x0007145c b 0x72048 | goto label_85;
| label_82:
0x00071460 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071464 lw t9, -0x775c(gp) | t9 = sym.imp.apr_array_make;
0x00071468 lw a1, 0x84(sp) | a1 = *(var_84h);
0x0007146c lw a0, (v0) | a0 = *(v0);
0x00071470 sw t2, 0x50(sp) | *(var_50h) = t2;
0x00071474 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x00071478 sw t0, 0x48(sp) | *(var_48h) = t0;
0x0007147c addiu a2, zero, 4 | a2 = 4;
0x00071480 jalr t9 | t9 ();
0x00071484 lw a0, 0x80(sp) | a0 = *(var_80h);
0x00071488 lw gp, 0x38(sp) | gp = *(var_38h);
0x0007148c move fp, v0 | fp = v0;
0x00071490 lw v1, 8(a0) | v1 = *((a0 + 2));
0x00071494 lw s2, 0x10(a0) | s2 = *((a0 + 4));
0x00071498 lw t0, 0x48(sp) | t0 = *(var_48h);
0x0007149c lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x000714a0 lw t2, 0x50(sp) | t2 = *(var_50h);
| if (v1 <= 0) {
0x000714a4 blez v1, 0x7152c | goto label_86;
| }
0x000714a8 lw s1, -0x7fac(gp) | s1 = *(gp);
0x000714ac move s5, zero | s5 = 0;
| /* str._lld__lld */
0x000714b0 addiu s1, s1, 0x7908 | s1 += 0x7908;
| do {
0x000714b4 lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
0x000714b8 sw t2, 0x50(sp) | *(var_50h) = t2;
0x000714bc sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x000714c0 sw t0, 0x48(sp) | *(var_48h) = t0;
0x000714c4 move a0, fp | a0 = fp;
0x000714c8 jalr t9 | t9 ();
0x000714cc lw gp, 0x38(sp) | gp = *(var_38h);
0x000714d0 lw v1, 0x44(sp) | v1 = *(var_44h);
0x000714d4 lw t4, 8(s2) | t4 = *((s2 + 2));
0x000714d8 lw t5, 0xc(s2) | t5 = *((s2 + 3));
0x000714dc lw a2, (s2) | a2 = *(s2);
0x000714e0 lw a3, 4(s2) | a3 = *((s2 + 1));
0x000714e4 lw a0, (v1) | a0 = *(v1);
0x000714e8 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x000714ec sw t4, 0x10(sp) | *(var_10h) = t4;
0x000714f0 sw t5, 0x14(sp) | *(var_14h) = t5;
0x000714f4 move a1, s1 | a1 = s1;
0x000714f8 move s7, v0 | s7 = v0;
0x000714fc jalr t9 | t9 ();
0x00071500 lw v1, 0x80(sp) | v1 = *(var_80h);
0x00071504 addiu s5, s5, 1 | s5++;
0x00071508 lw gp, 0x38(sp) | gp = *(var_38h);
0x0007150c lw v1, 8(v1) | v1 = *((v1 + 2));
0x00071510 sw v0, (s7) | *(s7) = v0;
0x00071514 slt v1, s5, v1 | v1 = (s5 < v1) ? 1 : 0;
0x00071518 addiu s2, s2, 0x10 | s2 += 0x10;
0x0007151c lw t0, 0x48(sp) | t0 = *(var_48h);
0x00071520 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00071524 lw t2, 0x50(sp) | t2 = *(var_50h);
0x00071528 bnez v1, 0x714b4 |
| } while (v1 != 0);
| label_86:
0x0007152c lw s1, 0x44(sp) | s1 = *(var_44h);
0x00071530 lw t9, -0x75ec(gp) | t9 = sym.imp.apr_array_pstrcat;
0x00071534 addiu v0, zero, 0xce | v0 = 0xce;
0x00071538 lw a0, (s1) | a0 = *(s1);
0x0007153c sw t2, 0x50(sp) | *(var_50h) = t2;
0x00071540 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x00071544 sw t0, 0x48(sp) | *(var_48h) = t0;
0x00071548 addiu a2, zero, 0x2c | a2 = 0x2c;
0x0007154c sw v0, 0x44(s1) | *((s1 + 17)) = v0;
0x00071550 move a1, fp | a1 = fp;
0x00071554 jalr t9 | t9 ();
0x00071558 lw gp, 0x38(sp) | gp = *(var_38h);
0x0007155c sw v0, 0x78(s1) | *((s1 + 30)) = v0;
0x00071560 lw t0, 0x48(sp) | t0 = *(var_48h);
0x00071564 lw v1, -0x7838(gp) | v1 = *(gp);
0x00071568 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x0007156c lw a2, 8(v1) | a2 = *((v1 + 2));
0x00071570 lw t2, 0x50(sp) | t2 = *(var_50h);
| if (a2 < 0) {
0x00071574 bltz a2, 0x720bc | goto label_87;
| }
0x00071578 lw v1, 0x44(sp) | v1 = *(var_44h);
0x0007157c lw v1, 0x108(v1) | v1 = *(v1);
| if (v1 == 0) {
0x00071580 beql v1, zero, 0x71690 | goto label_88;
| }
0x00071584 lw v1, 0x44(sp) | v1 = *(var_44h);
0x00071588 lw a0, (v1) | a0 = *(v1);
| if (a0 == 0) {
0x0007158c beql a0, zero, 0x716d8 | goto label_42;
| }
0x00071590 lw v1, 4(v1) | v1 = *((v1 + 1));
0x00071594 addu a0, a0, a2 | a0 += a2;
0x00071598 lb a0, (a0) | a0 = *(a0);
| if (a0 < 0) {
0x0007159c bltzl a0, 0x716d8 | goto label_42;
| }
0x000715a0 lw v1, 4(v1) | v1 = *((v1 + 1));
0x000715a4 slti v1, a0, 7 | v1 = (a0 < 7) ? 1 : 0;
| do {
0x000715a8 xori v1, v1, 1 | v1 ^= 1;
0x000715ac b 0x716e0 | goto label_89;
| label_63:
0x000715b0 lw t0, 0x9c(sp) | t0 = *(var_9ch);
0x000715b4 lw t9, -0x76c8(gp) | t9 = sym.imp.apr_array_clear;
0x000715b8 lw a0, 0x80(sp) | a0 = *(var_80h);
0x000715bc sw t0, 0x88(sp) | *(var_88h) = t0;
0x000715c0 sw s7, 0x84(sp) | *(var_84h) = s7;
0x000715c4 sw fp, 0x68(sp) | *(var_68h) = fp;
0x000715c8 sw a2, 0x58(sp) | *(var_58h) = a2;
0x000715cc sw v1, 0x60(sp) | *(var_60h) = v1;
0x000715d0 move s5, a2 | s5 = a2;
0x000715d4 move s7, v1 | s7 = v1;
0x000715d8 lw s0, 0x50(sp) | s0 = *(var_50h);
0x000715dc jalr t9 | t9 ();
0x000715e0 lw gp, 0x38(sp) | gp = *(var_38h);
0x000715e4 lw s1, 0x6c(sp) | s1 = *(var_6ch);
0x000715e8 lw s2, 0x70(sp) | s2 = *(var_70h);
0x000715ec lw t2, 0x68(sp) | t2 = *(var_68h);
0x000715f0 lw t1, 0x84(sp) | t1 = *(var_84h);
0x000715f4 lw t0, 0x88(sp) | t0 = *(var_88h);
0x000715f8 sw zero, 0x54(sp) | *(var_54h) = 0;
0x000715fc sw s5, 0x48(sp) | *(var_48h) = s5;
0x00071600 sw s7, 0x4c(sp) | *(var_4ch) = s7;
| label_80:
0x00071604 lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
0x00071608 lw a0, 0x80(sp) | a0 = *(var_80h);
0x0007160c sw t2, 0x6c(sp) | *(var_6ch) = t2;
0x00071610 sw t1, 0x68(sp) | *(var_68h) = t1;
0x00071614 sw t0, 0x50(sp) | *(var_50h) = t0;
0x00071618 jalr t9 | t9 ();
0x0007161c lw a3, 0x48(sp) | a3 = *(var_48h);
0x00071620 lw t0, 0x4c(sp) | t0 = *(var_4ch);
0x00071624 subu v1, s1, a3 | __asm ("subu v1, s1, a3");
0x00071628 sltu a2, s1, v1 | a2 = (s1 < v1) ? 1 : 0;
0x0007162c subu a1, s2, t0 | __asm ("subu a1, s2, t0");
0x00071630 subu a1, a1, a2 | __asm ("subu a1, a1, a2");
0x00071634 lw a2, 0x58(sp) | a2 = *(var_58h);
0x00071638 addiu a0, v1, 1 | a0 = v1 + 1;
0x0007163c sltu v1, a0, v1 | v1 = (a0 < v1) ? 1 : 0;
0x00071640 addu a0, a2, a0 | a0 = a2 + a0;
0x00071644 addu v1, v1, a1 | v1 += a1;
0x00071648 sltu a1, a0, a2 | a1 = (a0 < a2) ? 1 : 0;
0x0007164c lw a2, 0x60(sp) | a2 = *(var_60h);
0x00071650 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071654 addu v1, a2, v1 | v1 = a2 + v1;
0x00071658 sw t0, 4(v0) | *((v0 + 1)) = t0;
0x0007165c sw a3, (v0) | *(v0) = a3;
0x00071660 sw s1, 8(v0) | *((v0 + 2)) = s1;
0x00071664 sw s2, 0xc(v0) | *((v0 + 3)) = s2;
0x00071668 addu v0, a1, v1 | v0 = a1 + v1;
0x0007166c sw v0, 0x60(sp) | *(var_60h) = v0;
0x00071670 lw v0, 0x54(sp) | v0 = *(var_54h);
0x00071674 sw a0, 0x58(sp) | *(var_58h) = a0;
0x00071678 addiu v0, v0, 1 | v0++;
0x0007167c sw v0, 0x84(sp) | *(var_84h) = v0;
0x00071680 lw t0, 0x50(sp) | t0 = *(var_50h);
0x00071684 lw t1, 0x68(sp) | t1 = *(var_68h);
0x00071688 lw t2, 0x6c(sp) | t2 = *(var_6ch);
0x0007168c b 0x713fc | goto label_17;
| label_88:
0x00071690 lw a1, 4(v1) | a1 = *((v1 + 1));
0x00071694 lw v1, 0x60(a1) | v1 = *((a1 + 24));
| if (v1 == 0) {
0x00071698 beql v1, zero, 0x720d8 | goto label_90;
| }
0x0007169c lw v1, 0x44(sp) | v1 = *(var_44h);
0x000716a0 lw a0, (v1) | a0 = *(v1);
| if (a0 == 0) {
0x000716a4 beql a0, zero, 0x716d8 | goto label_42;
| }
0x000716a8 lw v1, 4(v1) | v1 = *((v1 + 1));
0x000716ac addu a0, a0, a2 | a0 += a2;
| label_44:
0x000716b0 lb a0, (a0) | a0 = *(a0);
0x000716b4 slti v1, a0, 7 | v1 = (a0 < 7) ? 1 : 0;
0x000716b8 bgez a0, 0x715a8 |
| } while (a0 >= 0);
| label_43:
0x000716bc lw v1, 0x60(a1) | v1 = *((a1 + 24));
0x000716c0 lw v1, 4(v1) | v1 = *((v1 + 1));
| if (v1 != 0) {
0x000716c4 bnel v1, zero, 0x716d8 |
0x000716c8 lw v1, 0x44(sp) | v1 = *(var_44h);
0x000716cc lw v1, 8(v1) | v1 = *((v1 + 2));
0x000716d0 addiu v1, v1, 0x10 | v1 += 0x10;
| label_45:
0x000716d4 lw v1, 4(v1) | v1 = *((v1 + 1));
| }
| label_42:
0x000716d8 slti v1, v1, 7 | v1 = (v1 < 7) ? 1 : 0;
0x000716dc xori v1, v1, 1 | v1 ^= 1;
| label_89:
0x000716e0 sw v0, 0x20(sp) | *(var_20h) = v0;
| if (v1 == 0) {
0x000716e4 bnel v1, zero, 0x720f0 | goto label_91;
| }
| label_46:
0x000716e8 lw v0, 0x84(sp) | v0 = *(var_84h);
0x000716ec lw v0, 0x44(sp) | v0 = *(var_44h);
| if (v0 == 0) {
0x000716f0 beqz v0, 0x70cf8 | goto label_7;
| }
| label_41:
0x000716f4 lw v0, 0x84(sp) | v0 = *(var_84h);
| if (t0 < 0) {
0x000716f8 bltz t0, 0x71708 | goto label_92;
| }
0x000716fc slt t0, t0, v0 | t0 = (t0 < v0) ? 1 : 0;
0x00071700 lw v0, 0x44(sp) | v0 = *(var_44h);
| if (t0 != 0) {
0x00071704 bnez t0, 0x70cf8 | goto label_7;
| }
| label_92:
0x00071708 sltu t1, t1, s4 | t1 = (t1 < s4) ? 1 : 0;
0x0007170c sltu t2, t2, s3 | t2 = (t2 < s3) ? 1 : 0;
| if (t1 != 0) {
0x00071710 bnez t1, 0x70cf4 | goto label_6;
| }
0x00071714 lw t9, -0x7344(gp) | t9 = sym.imp.apr_brigade_create;
| if (t2 != 0) {
0x00071718 bnez t2, 0x70cf4 | goto label_6;
| }
0x0007171c lw v0, 0x90(sp) | v0 = *(var_90h);
0x00071720 lw a1, 0x40(v0) | a1 = *((v0 + 16));
0x00071724 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071728 lw a0, (v0) | a0 = *(v0);
0x0007172c jalr t9 | t9 ();
0x00071730 sw v0, 0x6c(sp) | *(var_6ch) = v0;
0x00071734 lw v0, 0x84(sp) | v0 = *(var_84h);
0x00071738 addiu v1, zero, -1 | v1 = -1;
0x0007173c lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == v1) {
0x00071740 beq v0, v1, 0x71fa8 | goto label_93;
| }
0x00071744 lw v0, 0x84(sp) | v0 = *(var_84h);
0x00071748 slti v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x0007174c sw v0, 0xbc(sp) | *(var_bch) = v0;
| if (v0 == 0) {
0x00071750 beqz v0, 0x71e84 | goto label_94;
| }
0x00071754 sw zero, 0x98(sp) | *(var_98h) = 0;
| label_33:
0x00071758 lw v0, 0x90(sp) | v0 = *(var_90h);
0x0007175c lw t9, -0x7344(gp) | t9 = sym.imp.apr_brigade_create;
0x00071760 sw zero, 0x50(sp) | *(var_50h) = 0;
0x00071764 lw a1, 0x40(v0) | a1 = *((v0 + 16));
0x00071768 lw v0, 0x44(sp) | v0 = *(var_44h);
0x0007176c lw a0, (v0) | a0 = *(v0);
0x00071770 jalr t9 | t9 ();
0x00071774 lw a0, 0x80(sp) | a0 = *(var_80h);
0x00071778 move s5, v0 | s5 = v0;
0x0007177c lw gp, 0x38(sp) | gp = *(var_38h);
0x00071780 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x00071784 lw v1, 8(a0) | v1 = *((a0 + 2));
0x00071788 sw v0, 0x4c(sp) | *(var_4ch) = v0;
| if (v1 <= 0) {
0x0007178c blez v1, 0x71fa8 | goto label_93;
| }
0x00071790 lw v0, -0x7fac(gp) | v0 = *(gp);
0x00071794 sw s6, 0x88(sp) | *(var_88h) = s6;
| /* str.AH01584:_copy_brigade_range___failed___lld__lld__lld_ */
0x00071798 addiu v0, v0, 0x79a0 | v0 += 0x79a0;
0x0007179c sw v0, 0xb0(sp) | *(var_b0h) = v0;
0x000717a0 lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str._usr_src_debug_apache2_2.4.57_r0_httpd_2.4.57_modules_http_byterange_filter.c */
0x000717a4 addiu v0, v0, 0x788c | v0 += 0x788c;
0x000717a8 sw v0, 0xb4(sp) | *(var_b4h) = v0;
0x000717ac lw v0, -0x7fac(gp) | v0 = *(gp);
0x000717b0 sw v0, 0xb8(sp) | *(var_b8h) = v0;
0x000717b4 lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str._lld__lld__lld_r_n_r_n */
0x000717b8 addiu v0, v0, 0x79f0 | v0 += aav.0x000079f0;
0x000717bc sw v0, 0x9c(sp) | *(var_9ch) = v0;
0x000717c0 lw v0, -0x7fac(gp) | v0 = *(gp);
0x000717c4 sw v0, 0xa8(sp) | *(var_a8h) = v0;
| label_22:
0x000717c8 lw v0, 0x4c(sp) | v0 = *(var_4ch);
0x000717cc lw a0, (v0) | a0 = *(v0);
0x000717d0 lw v1, 4(v0) | v1 = *((v0 + 1));
0x000717d4 sw a0, 0x54(sp) | *(var_54h) = a0;
0x000717d8 lw a0, 8(v0) | a0 = *((v0 + 2));
0x000717dc sw v1, 0x48(sp) | *(var_48h) = v1;
0x000717e0 sw a0, 0x58(sp) | *(var_58h) = a0;
0x000717e4 lw s0, 0xc(v0) | s0 = *((v0 + 3));
| if (v1 < 0) {
0x000717e8 bltz v1, 0x71b9c | goto label_95;
| }
0x000717ec sltu v0, s0, v1 | v0 = (s0 < v1) ? 1 : 0;
| if (s0 < 0) {
0x000717f0 bltz s0, 0x71b9c | goto label_95;
| }
0x000717f4 addiu a1, zero, 0x16 | a1 = 0x16;
| if (v0 != 0) {
0x000717f8 bnez v0, 0x71ba0 | goto label_28;
| }
0x000717fc lw v0, 0x54(sp) | v0 = *(var_54h);
| if (v1 == s0) {
0x00071800 beq v1, s0, 0x71b90 | goto label_96;
| }
0x00071804 lw v0, 0x5c(sp) | v0 = *(var_5ch);
| label_21:
0x00071808 lw a1, 0x7c(sp) | a1 = *(var_7ch);
0x0007180c lw s6, 4(v0) | s6 = *((v0 + 1));
0x00071810 move s3, zero | s3 = 0;
| if (a1 == s6) {
0x00071814 beq a1, s6, 0x71b9c | goto label_95;
| }
0x00071818 sw zero, 0x68(sp) | *(var_68h) = 0;
0x0007181c sw zero, 0x60(sp) | *(var_60h) = 0;
0x00071820 move s2, zero | s2 = 0;
0x00071824 move s1, zero | s1 = 0;
0x00071828 lw a2, 0x48(sp) | a2 = *(var_48h);
0x0007182c b 0x71854 |
| while (s1 != 0) {
0x00071830 sltu a0, s0, v0 | a0 = (s0 < v0) ? 1 : 0;
| if (a0 != 0) {
| label_18:
0x00071834 bnez a0, 0x7189c | goto label_27;
| }
0x00071838 nop |
| label_19:
0x0007183c lw a0, 0x58(sp) | a0 = *(var_58h);
| if (v0 == s0) {
0x00071840 beq v0, s0, 0x71d48 | goto label_97;
| }
| label_26:
0x00071844 lw s6, (s6) | s6 = *(s6);
0x00071848 move s3, v1 | s3 = v1;
0x0007184c move s2, v0 | s2 = v0;
| if (a1 == s6) {
0x00071850 beq a1, s6, 0x71b9c | goto label_95;
| }
0x00071854 lw v0, 0xc(s6) | v0 = *((s6 + 3));
0x00071858 addu v1, v0, s3 | v1 = v0 + s3;
0x0007185c sltu v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00071860 addu v0, v0, s2 | v0 += s2;
0x00071864 bnez s1, 0x71830 |
| }
0x00071868 sltu a0, a2, v0 | a0 = (a2 < v0) ? 1 : 0;
0x0007186c sltu a0, s0, v0 | a0 = (s0 < v0) ? 1 : 0;
| if (a0 != 0) {
0x00071870 bnez a0, 0x7188c | goto label_98;
| }
| if (v0 != a2) {
0x00071874 bne v0, a2, 0x71834 | goto label_18;
| }
0x00071878 nop |
0x0007187c lw a0, 0x54(sp) | a0 = *(var_54h);
0x00071880 sltu a0, a0, v1 | a0 = (a0 < v1) ? 1 : 0;
0x00071884 sltu a0, s0, v0 | a0 = (s0 < v0) ? 1 : 0;
| if (a0 == 0) {
0x00071888 beqz a0, 0x71834 | goto label_18;
| }
| label_98:
0x0007188c sw s3, 0x68(sp) | *(var_68h) = s3;
0x00071890 sw s2, 0x60(sp) | *(var_60h) = s2;
0x00071894 move s1, s6 | s1 = s6;
| if (a0 == 0) {
0x00071898 beqz a0, 0x7183c | goto label_19;
| }
| label_27:
0x0007189c lw v0, 0x54(sp) | v0 = *(var_54h);
| if (s1 == 0) {
0x000718a0 beqz s1, 0x71b9c | goto label_95;
| }
0x000718a4 lw v1, 0x68(sp) | v1 = *(var_68h);
0x000718a8 move a1, zero | a1 = 0;
0x000718ac subu a0, v0, v1 | __asm ("subu a0, v0, v1");
0x000718b0 addiu s4, s5, 4 | s4 = s5 + 4;
0x000718b4 sw s0, 0x94(sp) | *(var_94h) = s0;
0x000718b8 sw s3, 0xa0(sp) | *(var_a0h) = s3;
0x000718bc sw s2, 0xa4(sp) | *(var_a4h) = s2;
0x000718c0 move s3, s5 | s3 = s5;
0x000718c4 addiu fp, sp, 0xc8 | fp = sp + 0xc8;
0x000718c8 sw a0, 0x70(sp) | *(var_70h) = a0;
0x000718cc move s0, v0 | s0 = v0;
0x000718d0 move s5, s1 | s5 = s1;
0x000718d4 move s7, v1 | s7 = v1;
0x000718d8 move s2, a1 | s2 = a1;
0x000718dc b 0x718ec |
| if (s5 == s6) {
| while (s5 != s1) {
| label_25:
0x000718e0 beql s5, s6, 0x7199c | goto label_99;
| }
0x000718e4 move s5, s3 | s5 = s3;
| label_20:
0x000718e8 lw s5, (s5) | s5 = *(s5);
0x000718ec lw v0, 8(s5) | v0 = *((s5 + 2));
0x000718f0 move a1, fp | a1 = fp;
0x000718f4 lw t9, 0x1c(v0) | t9 = *((v0 + 7));
0x000718f8 move a0, s5 | a0 = s5;
0x000718fc jalr t9 | t9 ();
0x00071900 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x00071904 bnez v0, 0x71d5c | goto label_100;
| }
0x00071908 lw a0, 0xc8(sp) | a0 = *(var_c8h);
0x0007190c sw s4, (a0) | *(a0) = s4;
0x00071910 lw v0, 8(s3) | v0 = *((s3 + 2));
0x00071914 sw v0, 4(a0) | *((a0 + 1)) = v0;
0x00071918 lw v0, 8(s3) | v0 = *((s3 + 2));
0x0007191c sw a0, (v0) | *(v0) = a0;
0x00071920 sw a0, 8(s3) | *((s3 + 2)) = a0;
0x00071924 bne s5, s1, 0x718e0 |
| }
0x00071928 nop |
0x0007192c lw v0, 0x48(sp) | v0 = *(var_48h);
| if (s0 == s7) {
0x00071930 beq s0, s7, 0x71d34 | goto label_101;
| }
0x00071934 lw v0, 8(a0) | v0 = *((a0 + 2));
| label_24:
0x00071938 lw t9, 0x18(v0) | t9 = *((v0 + 6));
0x0007193c lw a1, 0x70(sp) | a1 = *(var_70h);
0x00071940 jalr t9 | t9 ();
0x00071944 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x00071948 bnez v0, 0x71d5c | goto label_100;
| }
0x0007194c lw v0, 0xc8(sp) | v0 = *(var_c8h);
0x00071950 lw s2, (v0) | s2 = *(v0);
0x00071954 lw a0, 4(v0) | a0 = *((v0 + 1));
0x00071958 lw a1, (v0) | a1 = *(v0);
0x0007195c lw t0, 8(v0) | t0 = *((v0 + 2));
0x00071960 sw a1, (a0) | *(a0) = a1;
0x00071964 lw a1, (v0) | a1 = *(v0);
0x00071968 lw a3, 4(v0) | a3 = *((v0 + 1));
0x0007196c lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x00071970 lw t9, 0xc(t0) | t9 = *((t0 + 3));
0x00071974 sw a3, 4(a1) | *((a1 + 1)) = a3;
0x00071978 jalr t9 | t9 ();
0x0007197c nop |
0x00071980 lw v0, 0xc8(sp) | v0 = *(var_c8h);
0x00071984 lw t9, 0x1c(v0) | t9 = *((v0 + 7));
0x00071988 move a0, v0 | a0 = v0;
0x0007198c jalr t9 | t9 ();
0x00071990 lw gp, 0x38(sp) | gp = *(var_38h);
| if (s5 != s6) {
0x00071994 bne s5, s6, 0x718e8 | goto label_20;
| }
0x00071998 move s5, s3 | s5 = s3;
| label_99:
0x0007199c move a1, s2 | a1 = s2;
0x000719a0 lw s0, 0x94(sp) | s0 = *(var_94h);
0x000719a4 lw s3, 0xa0(sp) | s3 = *(var_a0h);
0x000719a8 lw s2, 0xa4(sp) | s2 = *(var_a4h);
| if (s1 == s6) {
0x000719ac beq s1, s6, 0x71e4c | goto label_102;
| }
| label_32:
0x000719b0 lw a0, 0x58(sp) | a0 = *(var_58h);
0x000719b4 lw v1, 0xc(s6) | v1 = *((s6 + 3));
0x000719b8 subu v0, a0, s3 | __asm ("subu v0, a0, s3");
0x000719bc sltu a0, a0, v0 | a0 = (a0 < v0) ? 1 : 0;
0x000719c0 subu s2, s0, s2 | __asm ("subu s2, s0, s2");
0x000719c4 subu s2, s2, a0 | __asm ("subu s2, s2, a0");
| if (v0 == v1) {
0x000719c8 beq v0, v1, 0x71e3c | goto label_103;
| }
0x000719cc lw a0, 0xc8(sp) | a0 = *(var_c8h);
| label_30:
0x000719d0 lw v0, 0x58(sp) | v0 = *(var_58h);
0x000719d4 addiu a1, v0, 1 | a1 = v0 + 1;
0x000719d8 lw v0, 8(a0) | v0 = *((a0 + 2));
0x000719dc lw t9, 0x18(v0) | t9 = *((v0 + 6));
0x000719e0 subu a1, a1, s3 | __asm ("subu a1, a1, s3");
0x000719e4 jalr t9 | t9 ();
0x000719e8 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 != 0) {
0x000719ec bnez v0, 0x71fa0 | goto label_104;
| }
0x000719f0 lw v0, 0xc8(sp) | v0 = *(var_c8h);
0x000719f4 lw v0, (v0) | v0 = *(v0);
0x000719f8 sw v0, 0xc8(sp) | *(var_c8h) = v0;
| if (s4 != v0) {
0x000719fc beq s4, v0, 0x71a40 |
0x00071a00 lw v1, 4(v0) | v1 = *((v0 + 1));
0x00071a04 lw a0, (v0) | a0 = *(v0);
0x00071a08 lw a2, 8(v0) | a2 = *((v0 + 2));
0x00071a0c sw a0, (v1) | *(v1) = a0;
0x00071a10 lw v1, (v0) | v1 = *(v0);
0x00071a14 lw a1, 4(v0) | a1 = *((v0 + 1));
0x00071a18 lw a0, 0x18(v0) | a0 = *((v0 + 6));
0x00071a1c lw t9, 0xc(a2) | t9 = *((a2 + 3));
0x00071a20 sw a1, 4(v1) | *((v1 + 1)) = a1;
0x00071a24 jalr t9 | t9 ();
0x00071a28 nop |
0x00071a2c lw v0, 0xc8(sp) | v0 = *(var_c8h);
0x00071a30 lw t9, 0x1c(v0) | t9 = *((v0 + 7));
0x00071a34 move a0, v0 | a0 = v0;
0x00071a38 jalr t9 | t9 ();
0x00071a3c lw gp, 0x38(sp) | gp = *(var_38h);
| }
0x00071a40 lw v1, 0x44(sp) | v1 = *(var_44h);
| label_31:
0x00071a44 addiu v0, zero, 1 | v0 = 1;
0x00071a48 lw s1, (v1) | s1 = *(v1);
0x00071a4c lw v1, 0x84(sp) | v1 = *(var_84h);
0x00071a50 lw s2, 0x98(sp) | s2 = *(var_98h);
| if (v1 == v0) {
0x00071a54 beq v1, v0, 0x71dd8 | goto label_105;
| }
0x00071a58 lw t9, -0x74c4(gp) | t9 = sym.imp.strlen;
0x00071a5c move a0, s2 | a0 = s2;
0x00071a60 jalr t9 | t9 ();
0x00071a64 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071a68 lw s3, 0x90(sp) | s3 = *(var_90h);
0x00071a6c move a2, s1 | a2 = s1;
0x00071a70 lw t9, -0x7548(gp) | t9 = sym.imp.apr_bucket_pool_create;
0x00071a74 lw a3, 0x40(s3) | a3 = *((s3 + 16));
0x00071a78 move a0, s2 | a0 = s2;
0x00071a7c move a1, v0 | a1 = v0;
0x00071a80 jalr t9 | t9 ();
0x00071a84 lw s2, 0x6c(sp) | s2 = *(var_6ch);
0x00071a88 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071a8c addiu s1, s2, 4 | s1 = s2 + 4;
0x00071a90 sw s1, (v0) | *(v0) = s1;
0x00071a94 lw s6, 0x44(sp) | s6 = *(var_44h);
0x00071a98 lw v1, 8(s2) | v1 = *((s2 + 2));
0x00071a9c lw a2, 0x54(sp) | a2 = *(var_54h);
0x00071aa0 lw a0, (s6) | a0 = *(s6);
0x00071aa4 sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00071aa8 lw v1, 8(s2) | v1 = *((s2 + 2));
0x00071aac lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00071ab0 lw a3, 0x48(sp) | a3 = *(var_48h);
0x00071ab4 sw v0, (v1) | *(v1) = v0;
0x00071ab8 sw v0, 8(s2) | *((s2 + 2)) = v0;
0x00071abc lw v0, 0x88(sp) | v0 = *(var_88h);
0x00071ac0 lw a1, 0x9c(sp) | a1 = *(var_9ch);
0x00071ac4 sw v0, 0x18(sp) | *(var_18h) = v0;
0x00071ac8 lw v0, 0x64(sp) | v0 = *(var_64h);
0x00071acc sw s0, 0x14(sp) | *(var_14h) = s0;
0x00071ad0 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00071ad4 lw v0, 0x58(sp) | v0 = *(var_58h);
0x00071ad8 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00071adc jalr t9 | t9 ();
0x00071ae0 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071ae4 move a0, v0 | a0 = v0;
0x00071ae8 lw t9, -0x74c4(gp) | t9 = sym.imp.strlen;
0x00071aec move s0, v0 | s0 = v0;
0x00071af0 jalr t9 | t9 ();
0x00071af4 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071af8 lw a3, 0x40(s3) | a3 = *((s3 + 16));
0x00071afc lw a2, (s6) | a2 = *(s6);
0x00071b00 lw t9, -0x7548(gp) | t9 = sym.imp.apr_bucket_pool_create;
0x00071b04 move a1, v0 | a1 = v0;
0x00071b08 move a0, s0 | a0 = s0;
0x00071b0c jalr t9 | t9 ();
0x00071b10 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071b14 sw s1, (v0) | *(v0) = s1;
0x00071b18 lw v1, 8(s2) | v1 = *((s2 + 2));
0x00071b1c sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00071b20 lw v1, 8(s2) | v1 = *((s2 + 2));
0x00071b24 sw v0, (v1) | *(v1) = v0;
0x00071b28 sw v0, 8(s2) | *((s2 + 2)) = v0;
| label_29:
0x00071b2c lw v0, 4(s5) | v0 = *((s5 + 1));
0x00071b30 lw v0, 0x50(sp) | v0 = *(var_50h);
| if (v0 != s4) {
0x00071b34 beq v0, s4, 0x71b74 |
0x00071b38 lw v0, 8(s5) | v0 = *((s5 + 2));
0x00071b3c lw a0, 0x6c(sp) | a0 = *(var_6ch);
0x00071b40 addiu v1, a0, 4 | v1 = a0 + 4;
0x00071b44 sw v1, (v0) | *(v0) = v1;
0x00071b48 lw v0, 4(s5) | v0 = *((s5 + 1));
0x00071b4c lw v1, 8(a0) | v1 = *((a0 + 2));
0x00071b50 sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00071b54 lw v0, 8(a0) | v0 = *((a0 + 2));
0x00071b58 lw v1, 4(s5) | v1 = *((s5 + 1));
0x00071b5c sw v1, (v0) | *(v0) = v1;
0x00071b60 lw v0, 8(s5) | v0 = *((s5 + 2));
0x00071b64 sw v0, 8(a0) | *((a0 + 2)) = v0;
0x00071b68 sw s4, 4(s5) | *((s5 + 1)) = s4;
0x00071b6c sw s4, 8(s5) | *((s5 + 2)) = s4;
0x00071b70 lw v0, 0x50(sp) | v0 = *(var_50h);
| }
| if (v0 == 0) {
0x00071b74 beql v0, zero, 0x71b88 | goto label_106;
| }
0x00071b78 addiu v0, zero, 1 | v0 = 1;
0x00071b7c andi v0, v0, 0x1f | v0 &= 0x1f;
0x00071b80 addiu v0, zero, 1 | v0 = 1;
| if (v0 == 0) {
0x00071b84 beqz v0, 0x71d80 | void (*0x71d80)() ();
| }
| label_106:
0x00071b88 sw v0, 0x8c(sp) | *(var_8ch) = v0;
0x00071b8c b 0x71c00 | goto label_107;
| label_96:
0x00071b90 sltu v0, a0, v0 | v0 = (a0 < v0) ? 1 : 0;
0x00071b94 lw v0, 0x5c(sp) | v0 = *(var_5ch);
| if (v0 == 0) {
0x00071b98 beqz v0, 0x71808 | goto label_21;
| }
| label_95:
0x00071b9c addiu a1, zero, 0x16 | a1 = 0x16;
| label_28:
0x00071ba0 lw v0, 0x88(sp) | v0 = *(var_88h);
0x00071ba4 lw t9, -0x7f08(gp) | t9 = sym.ap_log_rerror_;
0x00071ba8 sw v0, 0x30(sp) | *(var_30h) = v0;
0x00071bac lw v0, -0x7838(gp) | v0 = *(gp);
0x00071bb0 lw a0, 0xb4(sp) | a0 = *(var_b4h);
0x00071bb4 addiu a3, zero, 3 | a3 = 3;
0x00071bb8 lw a2, 8(v0) | a2 = *((v0 + 2));
0x00071bbc lw v0, 0x64(sp) | v0 = *(var_64h);
0x00071bc0 sw a1, 0x10(sp) | *(var_10h) = a1;
0x00071bc4 sw v0, 0x34(sp) | *(var_34h) = v0;
0x00071bc8 lw v0, 0x58(sp) | v0 = *(var_58h);
0x00071bcc sw s0, 0x2c(sp) | *(var_2ch) = s0;
0x00071bd0 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00071bd4 lw v0, 0x54(sp) | v0 = *(var_54h);
0x00071bd8 addiu a1, zero, 0x21d | a1 = 0x21d;
0x00071bdc sw v0, 0x20(sp) | *(var_20h) = v0;
0x00071be0 lw v0, 0x48(sp) | v0 = *(var_48h);
0x00071be4 sw v0, 0x24(sp) | *(var_24h) = v0;
0x00071be8 lw v0, 0xb0(sp) | v0 = *(var_b0h);
0x00071bec sw v0, 0x18(sp) | *(var_18h) = v0;
0x00071bf0 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071bf4 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00071bf8 bal 0x530a8 | sym_ap_log_rerror_ ();
0x00071bfc lw gp, 0x38(sp) | gp = *(var_38h);
| label_107:
0x00071c00 lw v0, 0x80(sp) | v0 = *(var_80h);
0x00071c04 lw v1, 0x50(sp) | v1 = *(var_50h);
0x00071c08 lw v0, 8(v0) | v0 = *((v0 + 2));
0x00071c0c addiu v1, v1, 1 | v1++;
0x00071c10 sw v1, 0x50(sp) | *(var_50h) = v1;
0x00071c14 slt v0, v1, v0 | v0 = (v1 < v0) ? 1 : 0;
0x00071c18 lw v1, 0x4c(sp) | v1 = *(var_4ch);
0x00071c1c addiu v1, v1, 0x10 | v1 += 0x10;
0x00071c20 sw v1, 0x4c(sp) | *(var_4ch) = v1;
| if (v0 != 0) {
0x00071c24 bnez v0, 0x717c8 | goto label_22;
| }
0x00071c28 lw v0, 0x8c(sp) | v0 = *(var_8ch);
0x00071c2c lw s2, 0x6c(sp) | s2 = *(var_6ch);
| if (v0 == 0) {
0x00071c30 beqz v0, 0x71fa8 | goto label_93;
| }
0x00071c34 lw v0, 0xbc(sp) | v0 = *(var_bch);
0x00071c38 addiu s0, s2, 4 | s0 = s2 + 4;
| if (v0 == 0) {
0x00071c3c bnez v0, 0x71cc4 |
0x00071c40 lw s3, 0x44(sp) | s3 = *(var_44h);
0x00071c44 lw a3, -0x7fac(gp) | a3 = *(gp);
0x00071c48 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071c4c lw v0, (s3) | v0 = *(s3);
0x00071c50 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00071c54 sw v0, 0x44(sp) | *(var_44h) = v0;
0x00071c58 lw v0, -0x785c(gp) | v0 = *(gp);
0x00071c5c lw a0, 0x44(sp) | a0 = *(var_44h);
| /* str.___r_n */
0x00071c60 addiu a3, a3, 0x7a04 | a3 += 0x7a04;
0x00071c64 lw a2, (v0) | a2 = *(v0);
| /* str._r_n__ */
0x00071c68 addiu a1, a1, 0x7980 | a1 += 0x7980;
0x00071c6c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00071c70 jalr t9 | t9 ();
0x00071c74 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071c78 move a0, v0 | a0 = v0;
0x00071c7c lw t9, -0x74c4(gp) | t9 = sym.imp.strlen;
0x00071c80 move s1, v0 | s1 = v0;
0x00071c84 jalr t9 | t9 ();
0x00071c88 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071c8c lw v1, 0x90(sp) | v1 = *(var_90h);
0x00071c90 lw a2, (s3) | a2 = *(s3);
0x00071c94 lw t9, -0x7548(gp) | t9 = sym.imp.apr_bucket_pool_create;
0x00071c98 lw a3, 0x40(v1) | a3 = *((v1 + 16));
0x00071c9c move a1, v0 | a1 = v0;
0x00071ca0 move a0, s1 | a0 = s1;
0x00071ca4 jalr t9 | t9 ();
0x00071ca8 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071cac sw s0, (v0) | *(v0) = s0;
0x00071cb0 lw v1, 8(s2) | v1 = *((s2 + 2));
0x00071cb4 sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00071cb8 lw v1, 8(s2) | v1 = *((s2 + 2));
0x00071cbc sw v0, (v1) | *(v1) = v0;
0x00071cc0 sw v0, 8(s2) | *((s2 + 2)) = v0;
| }
0x00071cc4 lw v0, 0x90(sp) | v0 = *(var_90h);
0x00071cc8 lw t9, -0x75d0(gp) | t9 = *(gp);
0x00071ccc lw a0, 0x40(v0) | a0 = *((v0 + 16));
0x00071cd0 jalr t9 | t9 ();
0x00071cd4 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071cd8 sw s0, (v0) | *(v0) = s0;
0x00071cdc lw s0, 0x6c(sp) | s0 = *(var_6ch);
0x00071ce0 lw a0, 0x5c(sp) | a0 = *(var_5ch);
0x00071ce4 lw t9, -0x754c(gp) | t9 = sym.imp.apr_brigade_cleanup;
0x00071ce8 lw v1, 8(s0) | v1 = *((s0 + 2));
0x00071cec sw v1, 4(v0) | *((v0 + 1)) = v1;
0x00071cf0 lw v1, 8(s0) | v1 = *((s0 + 2));
0x00071cf4 sw v0, (v1) | *(v1) = v0;
0x00071cf8 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00071cfc jalr t9 | t9 ();
0x00071d00 nop |
0x00071d04 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071d08 lw t9, -0x7700(gp) | t9 = sym.imp.apr_brigade_destroy;
0x00071d0c move a0, s5 | a0 = s5;
0x00071d10 jalr t9 | t9 ();
0x00071d14 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071d18 lw v0, 0x74(sp) | v0 = *(var_74h);
0x00071d1c move a1, s0 | a1 = s0;
0x00071d20 lw t9, -0x7e30(gp) | t9 = sym.ap_pass_brigade;
0x00071d24 lw a0, 8(v0) | a0 = *((v0 + 2));
0x00071d28 jalr t9 | t9 ();
0x00071d2c lw gp, 0x38(sp) | gp = *(var_38h);
0x00071d30 b 0x70d50 | goto label_23;
| label_101:
0x00071d34 lw v1, 0x60(sp) | v1 = *(var_60h);
0x00071d38 lw v0, 8(a0) | v0 = *((a0 + 2));
| if (v0 == v1) {
0x00071d3c bnel v0, v1, 0x71938 | goto label_24;
| }
0x00071d40 move s2, a0 | s2 = a0;
0x00071d44 b 0x718e0 | goto label_25;
| label_97:
0x00071d48 sltu a0, a0, v1 | a0 = (a0 < v1) ? 1 : 0;
| if (a0 == 0) {
0x00071d4c beqz a0, 0x71844 | goto label_26;
| }
0x00071d50 nop |
0x00071d54 b 0x7189c | goto label_27;
0x00071d58 nop |
| label_100:
0x00071d5c lw s0, 0x94(sp) | s0 = *(var_94h);
0x00071d60 move s5, s3 | s5 = s3;
0x00071d64 sw v0, 0x60(sp) | *(var_60h) = v0;
| label_35:
0x00071d68 lw t9, -0x754c(gp) | t9 = sym.imp.apr_brigade_cleanup;
0x00071d6c move a0, s5 | a0 = s5;
0x00071d70 jalr t9 | t9 ();
0x00071d74 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071d78 lw a1, 0x60(sp) | a1 = *(var_60h);
0x00071d7c b 0x71ba0 | goto label_28;
| label_105:
0x00071dd8 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071ddc lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00071de0 lw a2, 0x54(sp) | a2 = *(var_54h);
0x00071de4 lw s2, 0xb4(v0) | s2 = *((v0 + 45));
0x00071de8 lw v0, 0xa8(sp) | v0 = *(var_a8h);
0x00071dec lw a3, 0x48(sp) | a3 = *(var_48h);
0x00071df0 addiu a1, v0, 0x79d8 | a1 = v0 + 0x79d8;
0x00071df4 lw v0, 0x88(sp) | v0 = *(var_88h);
0x00071df8 move a0, s1 | a0 = s1;
0x00071dfc sw v0, 0x18(sp) | *(var_18h) = v0;
0x00071e00 lw v0, 0x64(sp) | v0 = *(var_64h);
0x00071e04 sw s0, 0x14(sp) | *(var_14h) = s0;
0x00071e08 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00071e0c lw v0, 0x58(sp) | v0 = *(var_58h);
0x00071e10 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00071e14 jalr t9 | t9 ();
0x00071e18 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071e1c move a2, v0 | a2 = v0;
0x00071e20 lw v0, 0xac(sp) | v0 = *(var_ach);
0x00071e24 lw t9, -0x7590(gp) | t9 = sym.imp.apr_table_setn;
0x00071e28 addiu a1, v0, -0x58d0 | a1 = v0 + -0x58d0;
0x00071e2c move a0, s2 | a0 = s2;
0x00071e30 jalr t9 | t9 ();
0x00071e34 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071e38 b 0x71b2c | goto label_29;
| label_103:
0x00071e3c lw a0, 0xc8(sp) | a0 = *(var_c8h);
| if (s2 == 0) {
0x00071e40 bnel s2, zero, 0x719d0 | goto label_30;
| }
0x00071e44 lw v1, 0x44(sp) | v1 = *(var_44h);
0x00071e48 b 0x71a44 | goto label_31;
| label_102:
0x00071e4c lw a0, 0x54(sp) | a0 = *(var_54h);
0x00071e50 lw v1, 0x48(sp) | v1 = *(var_48h);
0x00071e54 addu v0, a0, s3 | v0 = a0 + s3;
0x00071e58 addu v1, v1, s2 | v1 += s2;
0x00071e5c sltu s2, v0, a0 | s2 = (v0 < a0) ? 1 : 0;
0x00071e60 lw a0, 0x68(sp) | a0 = *(var_68h);
0x00071e64 addu s2, s2, v1 | s2 += v1;
0x00071e68 lw v1, 0x60(sp) | v1 = *(var_60h);
0x00071e6c subu s3, v0, a0 | __asm ("subu s3, v0, a0");
0x00071e70 sltu v0, v0, s3 | v0 = (v0 < s3) ? 1 : 0;
0x00071e74 subu s2, s2, v1 | __asm ("subu s2, s2, v1");
0x00071e78 subu s2, s2, v0 | __asm ("subu s2, s2, v0");
0x00071e7c sw a1, 0xc8(sp) | *(var_c8h) = a1;
0x00071e80 b 0x719b0 | goto label_32;
| label_94:
0x00071e84 lw s0, 0x44(sp) | s0 = *(var_44h);
0x00071e88 lw t9, -0x77f8(gp) | t9 = sym.ap_make_content_type;
0x00071e8c move a0, s0 | a0 = s0;
0x00071e90 lw a1, 0xc4(s0) | a1 = *((s0 + 49));
0x00071e94 jalr t9 | t9 ();
0x00071e98 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071e9c move v1, s0 | v1 = s0;
0x00071ea0 lw a0, 0xb0(s0) | a0 = *((s0 + 44));
0x00071ea4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071ea8 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
| /* str.Request_Range */
0x00071eac addiu a1, a1, 0x7844 | a1 += 0x7844;
0x00071eb0 move s0, v0 | s0 = v0;
0x00071eb4 lw s1, (v1) | s1 = *(v1);
0x00071eb8 jalr t9 | t9 ();
0x00071ebc lw gp, 0x38(sp) | gp = *(var_38h);
0x00071ec0 beqz v0, 0x71f58 |
| while (v0 != 0) {
0x00071ec4 lw a2, -0x7fac(gp) | a2 = *(gp);
| /* esilref: '/x-' */
0x00071ec8 addiu a2, a2, 0x7840 | a2 += 0x7840;
| label_34:
0x00071ecc lw s2, -0x785c(gp) | s2 = *(gp);
0x00071ed0 lw a3, -0x7fac(gp) | a3 = *(gp);
0x00071ed4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071ed8 lw v0, (s2) | v0 = *(s2);
0x00071edc lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00071ee0 move a0, s1 | a0 = s1;
| /* str.byteranges__boundary */
0x00071ee4 addiu a3, a3, 0x7948 | a3 += aav.0x00007948;
| /* str.multipart */
0x00071ee8 addiu a1, a1, 0x7960 | a1 += 0x7960;
0x00071eec sw zero, 0x14(sp) | *(var_14h) = 0;
0x00071ef0 sw v0, 0x10(sp) | *(var_10h) = v0;
0x00071ef4 jalr t9 | t9 ();
0x00071ef8 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071efc lw s1, 0x44(sp) | s1 = *(var_44h);
0x00071f00 move a1, v0 | a1 = v0;
0x00071f04 lw t9, -0x7d14(gp) | t9 = sym.ap_set_content_type;
0x00071f08 move a0, s1 | a0 = s1;
0x00071f0c bal 0x69440 | sym_ap_set_content_type ();
0x00071f10 lw gp, 0x38(sp) | gp = *(var_38h);
| if (s0 == 0) {
0x00071f14 beqz s0, 0x71fc4 | goto label_108;
| }
0x00071f18 lw v0, -0x7fac(gp) | v0 = *(gp);
0x00071f1c lw a3, -0x7fac(gp) | a3 = *(gp);
0x00071f20 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071f24 lw a0, (s1) | a0 = *(s1);
0x00071f28 lw a2, (s2) | a2 = *(s2);
0x00071f2c lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
| /* str._r_nContent_range:_bytes_ */
0x00071f30 addiu v0, v0, 0x7988 | v0 += 0x7988;
0x00071f34 sw zero, 0x18(sp) | *(var_18h) = 0;
0x00071f38 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00071f3c sw s0, 0x10(sp) | *(var_10h) = s0;
| /* str._r_nContent_type:_ */
0x00071f40 addiu a3, a3, 0x796c | a3 += 0x796c;
| /* str._r_n__ */
0x00071f44 addiu a1, a1, 0x7980 | a1 += 0x7980;
0x00071f48 jalr t9 | t9 ();
0x00071f4c sw v0, 0x98(sp) | *(var_98h) = v0;
0x00071f50 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071f54 b 0x71758 | goto label_33;
0x00071f58 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071f5c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071f60 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00071f64 lw a0, 0xb0(v0) | a0 = *((v0 + 44));
| /* str.User_Agent */
0x00071f68 addiu a1, a1, -0x284 | a1 += -aav.0x00000284;
0x00071f6c jalr t9 | t9 ();
0x00071f70 lw gp, 0x38(sp) | gp = *(var_38h);
| if (v0 == 0) {
0x00071f74 beqz v0, 0x71f94 | goto label_109;
| }
0x00071f78 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071f7c lw t9, -0x75a8(gp) | t9 = sym.imp.strstr;
| /* str.MSIE_3 */
0x00071f80 addiu a1, a1, 0x7940 | a1 += 0x7940;
0x00071f84 move a0, v0 | a0 = v0;
0x00071f88 jalr t9 | t9 ();
0x00071f8c lw gp, 0x38(sp) | gp = *(var_38h);
0x00071f90 bnez v0, 0x71ec4 |
| }
| label_109:
0x00071f94 lw a2, -0x7fac(gp) | a2 = *(gp);
0x00071f98 addiu a2, a2, -0x6a2c | a2 += -0x6a2c;
0x00071f9c b 0x71ecc | goto label_34;
| label_104:
0x00071fa0 sw v0, 0x60(sp) | *(var_60h) = v0;
0x00071fa4 b 0x71d68 | goto label_35;
| label_93:
0x00071fa8 lw t9, -0x7fd4(gp) | t9 = *(gp);
0x00071fac lw a1, 0x6c(sp) | a1 = *(var_6ch);
| /* fcn.00070ae0 */
0x00071fb0 addiu t9, t9, 0xae0 | t9 += aav.0x00000ae0;
0x00071fb4 lw a0, 0x74(sp) | a0 = *(var_74h);
0x00071fb8 bal 0x70ae0 | fcn_00070ae0 ();
0x00071fbc lw gp, 0x38(sp) | gp = *(var_38h);
0x00071fc0 b 0x70d50 | goto label_23;
| label_108:
0x00071fc4 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00071fc8 lw a3, -0x7fac(gp) | a3 = *(gp);
0x00071fcc lw a1, -0x7fac(gp) | a1 = *(gp);
0x00071fd0 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00071fd4 lw a0, (v0) | a0 = *(v0);
0x00071fd8 lw a2, (s2) | a2 = *(s2);
| /* str._r_nContent_range:_bytes_ */
0x00071fdc addiu a3, a3, 0x7988 | a3 += 0x7988;
0x00071fe0 sw zero, 0x10(sp) | *(var_10h) = 0;
| /* str._r_n__ */
0x00071fe4 addiu a1, a1, 0x7980 | a1 += 0x7980;
0x00071fe8 jalr t9 | t9 ();
0x00071fec sw v0, 0x98(sp) | *(var_98h) = v0;
0x00071ff0 lw gp, 0x38(sp) | gp = *(var_38h);
0x00071ff4 b 0x71758 | goto label_33;
| label_84:
0x00071ff8 lw a1, 4(v0) | a1 = *((v0 + 1));
0x00071ffc lw v0, 0x60(a1) | v0 = *((a1 + 24));
| if (v0 == 0) {
0x00072000 beql v0, zero, 0x7209c | goto label_110;
| }
0x00072004 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00072008 lw a0, (v0) | a0 = *(v0);
| if (a0 == 0) {
0x0007200c beql a0, zero, 0x72040 | goto label_37;
| }
0x00072010 lw v0, 4(v0) | v0 = *((v0 + 1));
0x00072014 addu a0, a0, a2 | a0 += a2;
| label_39:
0x00072018 lb v1, (a0) | v1 = *(a0);
0x0007201c slti v0, v1, 8 | v0 = (v1 < 8) ? 1 : 0;
| if (v1 >= 0) {
0x00072020 bgez v1, 0x71458 | goto label_36;
| }
| label_38:
0x00072024 lw v0, 0x60(a1) | v0 = *((a1 + 24));
0x00072028 lw v0, 4(v0) | v0 = *((v0 + 1));
| if (v0 != 0) {
0x0007202c bnel v0, zero, 0x72040 |
0x00072030 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00072034 lw v1, 8(v0) | v1 = *((v0 + 2));
0x00072038 addiu v0, v1, 0x10 | v0 = v1 + 0x10;
| label_40:
0x0007203c lw v0, 4(v0) | v0 = *((v0 + 1));
| }
| label_37:
0x00072040 slti v0, v0, 8 | v0 = (v0 < 8) ? 1 : 0;
0x00072044 xori v0, v0, 1 | v0 ^= 1;
| if (v0 == 0) {
| label_85:
0x00072048 beql v0, zero, 0x70cf8 | goto label_7;
| }
0x0007204c lw v0, 0x44(sp) | v0 = *(var_44h);
0x00072050 lw v0, -0x7fac(gp) | v0 = *(gp);
0x00072054 lw a0, -0x7fac(gp) | a0 = *(gp);
| /* str.Sum_of_ranges_larger_than_file__ignoring. */
0x00072058 addiu v0, v0, 0x78dc | v0 += 0x78dc;
0x0007205c sw v0, 0x18(sp) | *(var_18h) = v0;
0x00072060 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00072064 lw t9, -0x7f08(gp) | t9 = sym.ap_log_rerror_;
0x00072068 sw v0, 0x14(sp) | *(var_14h) = v0;
0x0007206c sw zero, 0x10(sp) | *(var_10h) = 0;
0x00072070 addiu a3, zero, 8 | a3 = 8;
0x00072074 addiu a1, zero, 0x115 | a1 = 0x115;
| /* str._usr_src_debug_apache2_2.4.57_r0_httpd_2.4.57_modules_http_byterange_filter.c */
0x00072078 addiu a0, a0, 0x788c | a0 += 0x788c;
0x0007207c bal 0x530a8 | sym_ap_log_rerror_ ();
0x00072080 lw gp, 0x38(sp) | gp = *(var_38h);
0x00072084 b 0x70cf4 | goto label_6;
| label_83:
0x00072088 lw v0, 4(v0) | v0 = *((v0 + 1));
| if (v0 == 0) {
0x0007208c bnel v0, zero, 0x72040 | goto label_37;
| }
0x00072090 lw v0, 0x44(sp) | v0 = *(var_44h);
0x00072094 lw a1, 4(v0) | a1 = *((v0 + 1));
0x00072098 b 0x72024 | goto label_38;
| label_110:
0x0007209c lw v1, 8(v0) | v1 = *((v0 + 2));
0x000720a0 lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x000720a4 addu a0, a0, a2 | a0 += a2;
| if (a0 == 0) {
0x000720a8 bnel a0, zero, 0x72018 | goto label_39;
| }
0x000720ac addiu v0, v1, 0x10 | v0 = v1 + 0x10;
0x000720b0 b 0x7203c | goto label_40;
| label_81:
0x000720b4 sw v0, 0x84(sp) | *(var_84h) = v0;
0x000720b8 b 0x716f4 | goto label_41;
| label_87:
0x000720bc lw v1, 0x44(sp) | v1 = *(var_44h);
0x000720c0 lw v1, 0x108(v1) | v1 = *(v1);
0x000720c4 lw v1, 4(v1) | v1 = *((v1 + 1));
| if (v1 == 0) {
0x000720c8 bnel v1, zero, 0x716d8 | goto label_42;
| }
0x000720cc lw v1, 0x44(sp) | v1 = *(var_44h);
0x000720d0 lw a1, 4(v1) | a1 = *((v1 + 1));
0x000720d4 b 0x716bc | goto label_43;
| label_90:
0x000720d8 lw v1, 8(v1) | v1 = *((v1 + 2));
0x000720dc lw a0, 0x10(v1) | a0 = *((v1 + 4));
0x000720e0 addu a0, a0, a2 | a0 += a2;
| if (a0 == 0) {
0x000720e4 bnel a0, zero, 0x716b0 | goto label_44;
| }
0x000720e8 addiu v1, v1, 0x10 | v1 += 0x10;
0x000720ec b 0x716d4 | goto label_45;
| label_91:
0x000720f0 lw v0, 0xa0(sp) | v0 = *(var_a0h);
0x000720f4 lw a0, -0x7fac(gp) | a0 = *(gp);
0x000720f8 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x000720fc lw v0, -0x7fac(gp) | v0 = *(gp);
0x00072100 lw v1, 0x64(sp) | v1 = *(var_64h);
| /* str.AH01583:_Range:__s___s___d_:__d_:__lld_ */
0x00072104 addiu v0, v0, 0x7914 | v0 += 0x7914;
0x00072108 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0007210c lw v0, 0x44(sp) | v0 = *(var_44h);
0x00072110 lw t9, -0x7f08(gp) | t9 = sym.ap_log_rerror_;
0x00072114 sw t2, 0x50(sp) | *(var_50h) = t2;
0x00072118 sw t1, 0x4c(sp) | *(var_4ch) = t1;
0x0007211c sw t0, 0x48(sp) | *(var_48h) = t0;
0x00072120 sw s6, 0x30(sp) | *(var_30h) = s6;
0x00072124 sw v1, 0x34(sp) | *(var_34h) = v1;
0x00072128 sw s3, 0x28(sp) | *(var_28h) = s3;
0x0007212c sw s4, 0x24(sp) | *(var_24h) = s4;
0x00072130 sw v0, 0x14(sp) | *(var_14h) = v0;
0x00072134 sw zero, 0x10(sp) | *(var_10h) = 0;
0x00072138 addiu a3, zero, 7 | a3 = 7;
0x0007213c addiu a1, zero, 0x128 | a1 = aav.0x00000128;
| /* str._usr_src_debug_apache2_2.4.57_r0_httpd_2.4.57_modules_http_byterange_filter.c */
0x00072140 addiu a0, a0, 0x788c | a0 += 0x788c;
0x00072144 bal 0x530a8 | sym_ap_log_rerror_ ();
0x00072148 lw gp, 0x38(sp) | gp = *(var_38h);
0x0007214c lw t2, 0x50(sp) | t2 = *(var_50h);
0x00072150 lw t1, 0x4c(sp) | t1 = *(var_4ch);
0x00072154 lw t0, 0x48(sp) | t0 = *(var_48h);
0x00072158 b 0x716e8 | goto label_46;
| label_55:
0x0007215c lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00072160 jalr t9 | t9 ();
0x00072164 nop |
| label_75:
0x00072168 lw s0, 0x50(sp) | s0 = *(var_50h);
| if (v0 != 0) {
0x0007216c bnez v0, 0x70cf4 | goto label_6;
| }
0x00072170 lw a0, 0x64(sp) | a0 = *(var_64h);
| if (a2 != 0) {
0x00072174 bnez a2, 0x71270 | goto label_47;
| }
0x00072178 lw v0, 0x44(sp) | v0 = *(var_44h);
0x0007217c b 0x70cf8 | goto label_7;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x3748c */
| #include <stdint.h>
|
; (fcn) sym.ap_construct_url () | void ap_construct_url () {
0x0003748c lui gp, 7 |
0x00037490 addiu gp, gp, -0x456c |
0x00037494 addu gp, gp, t9 | gp += t9;
0x00037498 addiu sp, sp, -0x38 |
0x0003749c lw t9, -0x7bd0(gp) | t9 = sym.ap_get_server_port;
0x000374a0 sw ra, 0x34(sp) | *(var_34h) = ra;
0x000374a4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x000374a8 sw s4, 0x30(sp) | *(var_30h) = s4;
0x000374ac sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000374b0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000374b4 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000374b8 sw s0, 0x20(sp) | *(var_20h) = s0;
0x000374bc move s2, a0 | s2 = a0;
0x000374c0 move a0, a2 | a0 = a2;
0x000374c4 move s0, a2 | s0 = a2;
0x000374c8 move s4, a1 | s4 = a1;
0x000374cc bal 0x373d0 | sym_ap_get_server_port ();
0x000374d0 lw gp, 0x18(sp) | gp = *(var_18h);
0x000374d4 move a0, s0 | a0 = s0;
0x000374d8 lw t9, -0x7bcc(gp) | t9 = sym.ap_get_server_name_for_url;
0x000374dc move s1, v0 | s1 = v0;
0x000374e0 bal 0x37344 | sym_ap_get_server_name_for_url ();
0x000374e4 lw gp, 0x18(sp) | gp = *(var_18h);
0x000374e8 move a0, s0 | a0 = s0;
0x000374ec lw t9, -0x7ed0(gp) | t9 = sym.ap_run_default_port;
0x000374f0 move s3, v0 | s3 = v0;
0x000374f4 bal 0x2e13c | sym_ap_run_default_port ();
0x000374f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x000374fc move a0, s0 | a0 = s0;
0x00037500 lw t9, -0x7d90(gp) | t9 = sym.ap_run_http_scheme;
| if (s1 != v0) {
0x00037504 beq s1, v0, 0x37558 |
0x00037508 bal 0x2c228 | sym_ap_run_http_scheme ();
0x0003750c nop |
0x00037510 lw gp, 0x18(sp) | gp = *(var_18h);
0x00037514 sw s4, 0x14(sp) | *(var_14h) = s4;
0x00037518 sw s1, 0x10(sp) | *(var_10h) = s1;
0x0003751c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00037520 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00037524 move a3, s3 | a3 = s3;
0x00037528 move a0, s2 | a0 = s2;
0x0003752c move a2, v0 | a2 = v0;
| /* str._s:___s:_u_s */
0x00037530 addiu a1, a1, -0x3a78 | a1 += -0x3a78;
0x00037534 jalr t9 | t9 ();
0x00037538 lw ra, 0x34(sp) | ra = *(var_34h);
0x0003753c lw s4, 0x30(sp) | s4 = *(var_30h);
0x00037540 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00037544 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00037548 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0003754c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00037550 addiu sp, sp, 0x38 |
0x00037554 jr ra | return;
| }
0x00037558 bal 0x2c228 | sym_ap_run_http_scheme ();
0x0003755c nop |
0x00037560 lw gp, 0x18(sp) | gp = *(var_18h);
0x00037564 sw s4, 0x10(sp) | *(var_10h) = s4;
0x00037568 move a3, s3 | a3 = s3;
0x0003756c lw a2, -0x7fac(gp) | a2 = *(gp);
0x00037570 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x00037574 move a0, s2 | a0 = s2;
0x00037578 sw zero, 0x14(sp) | *(var_14h) = 0;
| /* esilref: '://' */
0x0003757c addiu a2, a2, -0x3a7c | a2 += -0x3a7c;
0x00037580 move a1, v0 | a1 = v0;
0x00037584 jalr t9 | t9 ();
0x00037588 lw ra, 0x34(sp) | ra = *(var_34h);
0x0003758c lw s4, 0x30(sp) | s4 = *(var_30h);
0x00037590 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00037594 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00037598 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0003759c lw s0, 0x20(sp) | s0 = *(var_20h);
0x000375a0 addiu sp, sp, 0x38 |
0x000375a4 jr ra | return;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x220bc */
| #include <stdint.h>
|
; (fcn) sym.ap_dir_fnmatch () | void ap_dir_fnmatch () {
| do {
| label_5:
0x000220bc lui gp, 8 |
0x000220c0 addiu gp, gp, 0xe64 |
0x000220c4 addu gp, gp, t9 | gp += t9;
0x000220c8 addiu sp, sp, -0xc8 |
0x000220cc lw t9, -0x72b8(gp) | t9 = sym.imp.strchr;
0x000220d0 sw s3, 0xac(sp) | *(var_ach_2) = s3;
0x000220d4 lw s3, -0x7534(gp) | s3 = *(gp);
0x000220d8 sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x000220dc sw s4, 0xb0(sp) | *(var_b0h_2) = s4;
0x000220e0 lw v0, (s3) | v0 = *(s3);
0x000220e4 sw s2, 0xa8(sp) | *(var_a8h_2) = s2;
0x000220e8 sw s1, 0xa4(sp) | *(var_a4h_2) = s1;
0x000220ec sw s0, 0xa0(sp) | *(var_a0h_2) = s0;
0x000220f0 sw ra, 0xc4(sp) | *(var_c4h) = ra;
0x000220f4 sw fp, 0xc0(sp) | *(var_c0h) = fp;
0x000220f8 sw s7, 0xbc(sp) | *(var_bch_2) = s7;
0x000220fc sw s6, 0xb8(sp) | *(var_b8h_2) = s6;
0x00022100 sw s5, 0xb4(sp) | *(var_b4h_2) = s5;
0x00022104 move s2, a0 | s2 = a0;
0x00022108 move s4, a1 | s4 = a1;
0x0002210c move a0, a2 | a0 = a2;
0x00022110 addiu a1, zero, 0x2f | a1 = 0x2f;
0x00022114 sw v0, 0x9c(sp) | *(var_9ch_2) = v0;
0x00022118 move s0, a2 | s0 = a2;
0x0002211c jalr t9 | t9 ();
0x00022120 move s1, v0 | s1 = v0;
0x00022124 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00022128 beqz v0, 0x2214c |
0x0002212c lw t9, -0x7708(gp) | t9 = sym.imp.apr_pstrmemdup;
0x00022130 lw a0, 4(s2) | a0 = *((s2 + 1));
0x00022134 subu a2, v0, s0 | __asm ("subu a2, v0, s0");
0x00022138 move a1, s0 | a1 = s0;
0x0002213c jalr t9 | t9 ();
0x00022140 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00022144 move s0, v0 | s0 = v0;
0x00022148 addiu s1, s1, 1 | s1++;
| }
0x0002214c lw t9, -0x7604(gp) | t9 = sym.imp.apr_fnmatch_test;
0x00022150 move a0, s0 | a0 = s0;
0x00022154 jalr t9 | t9 ();
0x00022158 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0002215c bnez v0, 0x221f0 | goto label_9;
| }
0x00022160 lw t9, -0x7e84(gp) | t9 = sym.ap_make_full_path;
| if (s4 != 0) {
0x00022164 beqz s4, 0x22180 |
0x00022168 lw a0, 4(s2) | a0 = *((s2 + 1));
0x0002216c move a2, s0 | a2 = s0;
0x00022170 move a1, s4 | a1 = s4;
0x00022174 bal 0x1ebc0 | sym_ap_make_full_path ();
0x00022178 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0002217c move s0, v0 | s0 = v0;
| }
0x00022180 lw t9, -0x7e7c(gp) | t9 = sym.ap_dir_fnmatch;
| if (s1 == 0) {
0x00022184 beqz s1, 0x221d8 | goto label_10;
| }
0x00022188 move a2, s1 | a2 = s1;
0x0002218c move a1, s0 | a1 = s0;
0x00022190 move a0, s2 | a0 = s2;
0x00022194 bal 0x220bc | sym_ap_dir_fnmatch ();
| } while (1);
0x00022198 lw gp, 0x18(sp) | gp = *(var_18h_2);
| do {
| label_0:
0x0002219c lw a0, 0x9c(sp) | a0 = *(var_9ch_2);
0x000221a0 lw v1, (s3) | v1 = *(s3);
0x000221a4 lw ra, 0xc4(sp) | ra = *(var_c4h);
| if (a0 != v1) {
0x000221a8 bne a0, v1, 0x22454 | goto label_11;
| }
0x000221ac lw fp, 0xc0(sp) | fp = *(var_c0h);
0x000221b0 lw s7, 0xbc(sp) | s7 = *(var_bch_2);
0x000221b4 lw s6, 0xb8(sp) | s6 = *(var_b8h_2);
0x000221b8 lw s5, 0xb4(sp) | s5 = *(var_b4h_2);
0x000221bc lw s4, 0xb0(sp) | s4 = *(var_b0h_2);
0x000221c0 lw s3, 0xac(sp) | s3 = *(var_ach_2);
0x000221c4 lw s2, 0xa8(sp) | s2 = *(var_a8h_2);
0x000221c8 lw s1, 0xa4(sp) | s1 = *(var_a4h_2);
0x000221cc lw s0, 0xa0(sp) | s0 = *(var_a0h_2);
0x000221d0 addiu sp, sp, 0xc8 |
0x000221d4 jr ra | return v0;
| label_10:
0x000221d8 lw t9, -0x7e80(gp) | t9 = sym.ap_dir_nofnmatch;
0x000221dc move a1, s0 | a1 = s0;
0x000221e0 move a0, s2 | a0 = s2;
0x000221e4 bal 0x21d88 | sym_ap_dir_nofnmatch ();
0x000221e8 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000221ec b 0x2219c |
| } while (1);
| label_9:
0x000221f0 lw t9, -0x7290(gp) | t9 = sym.imp.apr_dir_open;
0x000221f4 lw a2, 4(s2) | a2 = *((s2 + 1));
0x000221f8 move a1, s4 | a1 = s4;
0x000221fc addiu a0, sp, 0x2c | a0 = sp + 0x2c;
0x00022200 jalr t9 | t9 ();
0x00022204 sw v0, 0x28(sp) | *(var_28h_2) = v0;
0x00022208 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0002220c beqz v0, 0x22260 | goto label_12;
| }
0x00022210 addiu v1, zero, 2 | v1 = 2;
| if (v0 == v1) {
0x00022214 beql v0, v1, 0x2224c | goto label_13;
| }
0x00022218 lw v0, 0x14(s2) | v0 = *((s2 + 5));
0x0002221c lw a2, 8(s2) | a2 = *((s2 + 2));
| do {
0x00022220 lw a0, (s2) | a0 = *(s2);
| if (a2 == 0) {
0x00022224 beqz a2, 0x223a8 | goto label_14;
| }
| label_3:
0x00022228 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0002222c lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00022230 addiu v0, sp, 0x28 | v0 = sp + 0x28;
0x00022234 sw v0, 0x10(sp) | *(var_10h_2) = v0;
0x00022238 move a3, s4 | a3 = s4;
| /* str._sCould_not_open_directory__s:__pm */
0x0002223c addiu a1, a1, -0x6774 | a1 += -0x6774;
0x00022240 jalr t9 | t9 ();
0x00022244 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00022248 b 0x2219c | goto label_0;
| label_13:
0x0002224c andi v0, v0, 1 | v0 &= 1;
0x00022250 beql v0, zero, 0x22220 |
| } while (v0 == 0);
0x00022254 lw a2, 8(s2) | a2 = *((s2 + 2));
| label_4:
0x00022258 move v0, zero | v0 = 0;
0x0002225c b 0x2219c | goto label_0;
| label_12:
0x00022260 lw t9, -0x775c(gp) | t9 = sym.imp.apr_array_make;
0x00022264 lw a0, 4(s2) | a0 = *((s2 + 1));
0x00022268 addiu a2, zero, 4 | a2 = 4;
0x0002226c addiu a1, zero, 1 | a1 = 1;
0x00022270 jalr t9 | t9 ();
0x00022274 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00022278 sw v0, 0x20(sp) | *(var_20h) = v0;
0x0002227c lui s6, 0x200 | s6 = imp.apr_hook_global_pool;
0x00022280 lw v0, -0x7fac(gp) | v0 = *(gp);
0x00022284 lw s7, -0x7fac(gp) | s7 = *(gp);
| /* esilref: '..' */
0x00022288 addiu v0, v0, -0x6750 | v0 += -0x6750;
0x0002228c addiu fp, sp, 0x30 | fp = sp + 0x30;
0x00022290 ori s6, s6, 0x8000 | s6 |= 0x8000;
| /* esilref: '(' */
0x00022294 addiu s7, s7, -0x4df4 | s7 += -0x4df4;
0x00022298 sw v0, 0x24(sp) | *(var_24h) = v0;
| do {
| label_1:
0x0002229c lw t9, -0x76d8(gp) | t9 = sym.imp.apr_dir_read;
| label_2:
0x000222a0 lw a2, 0x2c(sp) | a2 = *(var_2ch);
0x000222a4 move a1, s6 | a1 = s6;
0x000222a8 move a0, fp | a0 = fp;
0x000222ac jalr t9 | t9 ();
0x000222b0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x000222b4 bnez v0, 0x22350 | goto label_15;
| }
0x000222b8 lw s5, 0x8c(sp) | s5 = *(var_8ch);
0x000222bc lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x000222c0 move a1, s7 | a1 = s7;
0x000222c4 move a0, s5 | a0 = s5;
0x000222c8 jalr t9 | t9 ();
0x000222cc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000222d0 beqz v0, 0x2229c |
| } while (v0 == 0);
0x000222d4 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x000222d8 lw a1, 0x24(sp) | a1 = *(var_24h);
0x000222dc move a0, s5 | a0 = s5;
0x000222e0 jalr t9 | t9 ();
0x000222e4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x000222e8 beqz v0, 0x2229c | goto label_1;
| }
0x000222ec lw t9, -0x7618(gp) | t9 = sym.imp.apr_fnmatch;
0x000222f0 addiu a2, zero, 4 | a2 = 4;
0x000222f4 move a1, s5 | a1 = s5;
0x000222f8 move a0, s0 | a0 = s0;
0x000222fc jalr t9 | t9 ();
0x00022300 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x00022304 bnez v0, 0x2229c | goto label_1;
| }
0x00022308 lw t9, -0x7e84(gp) | t9 = sym.ap_make_full_path;
0x0002230c lw a2, 0x8c(sp) | a2 = *(var_8ch);
0x00022310 lw a0, 4(s2) | a0 = *((s2 + 1));
0x00022314 move a1, s4 | a1 = s4;
0x00022318 bal 0x1ebc0 | sym_ap_make_full_path ();
0x0002231c move s5, v0 | s5 = v0;
0x00022320 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s1 == 0) {
0x00022324 beqz s1, 0x22338 | goto label_16;
| }
0x00022328 lw a0, 0x3c(sp) | a0 = *(var_3ch_2);
0x0002232c addiu v0, zero, 2 | v0 = 2;
0x00022330 lw t9, -0x76d8(gp) | t9 = sym.imp.apr_dir_read;
| if (a0 != v0) {
0x00022334 bne a0, v0, 0x222a0 | goto label_2;
| }
| label_16:
0x00022338 lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
0x0002233c lw a0, 0x20(sp) | a0 = *(var_20h);
0x00022340 jalr t9 | t9 ();
0x00022344 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00022348 sw s5, (v0) | *(v0) = s5;
0x0002234c b 0x2229c | goto label_1;
| label_15:
0x00022350 lw t9, -0x748c(gp) | t9 = sym.imp.apr_dir_close;
0x00022354 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00022358 jalr t9 | t9 ();
0x0002235c lw v0, 0x20(sp) | v0 = *(var_20h);
0x00022360 lw a1, 8(v0) | a1 = *((v0 + 2));
0x00022364 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (a1 != 0) {
0x00022368 bnez a1, 0x223b4 | goto label_17;
| }
0x0002236c lw v0, 0x14(s2) | v0 = *((s2 + 5));
0x00022370 andi v0, v0, 1 | v0 &= 1;
0x00022374 move v0, zero | v0 = 0;
| if (v0 != 0) {
0x00022378 bnez v0, 0x2219c | goto label_0;
| }
0x0002237c lw a2, 8(s2) | a2 = *((s2 + 2));
0x00022380 lw a0, (s2) | a0 = *(s2);
| if (a2 == 0) {
0x00022384 beqz a2, 0x22448 | goto label_18;
| }
| label_8:
0x00022388 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0002238c lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00022390 sw s4, 0x10(sp) | *(var_10h_2) = s4;
0x00022394 move a3, s0 | a3 = s0;
| /* str._sNo_matches_for_the_wildcard__s_in__s__failing */
0x00022398 addiu a1, a1, -0x674c | a1 += -0x674c;
0x0002239c jalr t9 | t9 ();
0x000223a0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x000223a4 b 0x2219c | goto label_0;
| label_14:
0x000223a8 lw a2, -0x7fac(gp) | a2 = *(gp);
0x000223ac addiu a2, a2, 0x47dc | a2 += 0x47dc;
0x000223b0 b 0x22228 | goto label_3;
| label_17:
0x000223b4 lw a3, -0x7fbc(gp) | a3 = *(gp);
0x000223b8 lw t9, -0x725c(gp) | t9 = sym.imp.qsort;
0x000223bc move s0, v0 | s0 = v0;
0x000223c0 lw a0, 0x10(v0) | a0 = *((v0 + 4));
0x000223c4 addiu a3, a3, -0x51e0 | a3 += -0x51e0;
0x000223c8 addiu a2, zero, 4 | a2 = 4;
0x000223cc jalr t9 | t9 ();
0x000223d0 lw v0, 8(s0) | v0 = *((s0 + 2));
0x000223d4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 <= 0) {
0x000223d8 blez v0, 0x22258 | goto label_4;
| }
0x000223dc lw s0, -0x7e7c(gp) | s0 = sym.ap_dir_fnmatch;
0x000223e0 lw s4, -0x7e80(gp) | s4 = sym.ap_dir_nofnmatch;
0x000223e4 move s5, zero | s5 = 0;
0x000223e8 lw v0, 0x20(sp) | v0 = *(var_20h);
| label_6:
0x000223ec lw a1, 0x10(v0) | a1 = *((v0 + 4));
0x000223f0 sll v0, s5, 2 | v0 = s5 << 2;
0x000223f4 lwx a1, v0(a1) | __asm ("lwx a1, v0(a1)");
| if (s1 == 0) {
0x000223f8 beqz s1, 0x22434 | goto label_19;
| }
0x000223fc move a2, s1 | a2 = s1;
0x00022400 move t9, s0 | t9 = s0;
0x00022404 move a0, s2 | a0 = s2;
0x00022408 bal 0x220bc | sym_ap_dir_fnmatch ();
| goto label_5;
0x0002240c lw gp, 0x18(sp) | gp = *(var_18h_2);
| label_7:
0x00022410 addiu s5, s5, 1 | s5++;
| if (v0 != 0) {
0x00022414 bnez v0, 0x2219c | goto label_0;
| }
0x00022418 lw v0, 0x20(sp) | v0 = *(var_20h);
0x0002241c lw v0, 8(v0) | v0 = *((v0 + 2));
0x00022420 slt v0, s5, v0 | v0 = (s5 < v0) ? 1 : 0;
0x00022424 lw v0, 0x20(sp) | v0 = *(var_20h);
| if (v0 == 0) {
0x00022428 bnel v0, zero, 0x223ec | goto label_6;
| }
0x0002242c move v0, zero | v0 = 0;
0x00022430 b 0x2219c | goto label_0;
| label_19:
0x00022434 move t9, s4 | t9 = s4;
0x00022438 move a0, s2 | a0 = s2;
0x0002243c bal 0x21d88 | sym_ap_dir_nofnmatch ();
0x00022440 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x00022444 b 0x22410 | goto label_7;
| label_18:
0x00022448 lw a2, -0x7fac(gp) | a2 = *(gp);
0x0002244c addiu a2, a2, 0x47dc | a2 += 0x47dc;
0x00022450 b 0x22388 | goto label_8;
| label_11:
0x00022454 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00022458 jalr t9 | t9 ();
0x0002245c nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x21d88 */
| #include <stdint.h>
|
; (fcn) sym.ap_dir_nofnmatch () | void ap_dir_nofnmatch () {
| label_3:
0x00021d88 lui gp, 8 |
0x00021d8c addiu gp, gp, 0x1198 |
0x00021d90 addu gp, gp, t9 | gp += t9;
0x00021d94 addiu sp, sp, -0xc0 |
0x00021d98 lw v0, 0x14(a0) | v0 = *((a0 + 5));
0x00021d9c sw s1, 0x9c(sp) | *(var_9ch) = s1;
0x00021da0 lw s1, -0x7534(gp) | s1 = *(gp);
0x00021da4 sw s0, 0x98(sp) | *(var_98h) = s0;
0x00021da8 move s0, a0 | s0 = a0;
0x00021dac lw a0, (s1) | a0 = *(s1);
0x00021db0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00021db4 andi v1, v0, 2 | v1 = v0 & 2;
0x00021db8 sw s2, 0xa0(sp) | *(var_a0h) = s2;
0x00021dbc sw ra, 0xbc(sp) | *(var_bch) = ra;
0x00021dc0 sw fp, 0xb8(sp) | *(var_b8h) = fp;
0x00021dc4 sw s7, 0xb4(sp) | *(var_b4h) = s7;
0x00021dc8 sw s6, 0xb0(sp) | *(var_b0h) = s6;
0x00021dcc sw s5, 0xac(sp) | *(var_ach) = s5;
0x00021dd0 sw s4, 0xa8(sp) | *(var_a8h) = s4;
0x00021dd4 sw s3, 0xa4(sp) | *(var_a4h) = s3;
0x00021dd8 move s2, a1 | s2 = a1;
0x00021ddc sw a0, 0x94(sp) | *(var_94h) = a0;
0x00021de0 andi v0, v0, 1 | v0 &= 1;
| if (v1 != 0) {
0x00021de4 bnez v1, 0x21e40 | goto label_7;
| }
0x00021de8 lw t9, -0x7250(gp) | t9 = sym.imp.apr_stat;
| if (v0 != 0) {
0x00021dec bnez v0, 0x21e84 | goto label_8;
| }
0x00021df0 lw t9, 0xc(s0) | t9 = *((s0 + 3));
| do {
| label_0:
0x00021df4 move a1, s2 | a1 = s2;
0x00021df8 move a0, s0 | a0 = s0;
0x00021dfc jalr t9 | t9 ();
0x00021e00 lw gp, 0x18(sp) | gp = *(var_18h);
| label_1:
0x00021e04 lw a0, 0x94(sp) | a0 = *(var_94h);
0x00021e08 lw v1, (s1) | v1 = *(s1);
0x00021e0c lw ra, 0xbc(sp) | ra = *(var_bch);
| if (a0 != v1) {
0x00021e10 bne a0, v1, 0x220b0 | goto label_9;
| }
0x00021e14 lw fp, 0xb8(sp) | fp = *(var_b8h);
0x00021e18 lw s7, 0xb4(sp) | s7 = *(var_b4h);
0x00021e1c lw s6, 0xb0(sp) | s6 = *(var_b0h);
0x00021e20 lw s5, 0xac(sp) | s5 = *(var_ach);
0x00021e24 lw s4, 0xa8(sp) | s4 = *(var_a8h);
0x00021e28 lw s3, 0xa4(sp) | s3 = *(var_a4h);
0x00021e2c lw s2, 0xa0(sp) | s2 = *(var_a0h);
0x00021e30 lw s1, 0x9c(sp) | s1 = *(var_9ch);
0x00021e34 lw s0, 0x98(sp) | s0 = *(var_98h);
0x00021e38 addiu sp, sp, 0xc0 |
0x00021e3c jr ra | return v1;
| label_7:
0x00021e40 lw t9, -0x7250(gp) | t9 = sym.imp.apr_stat;
0x00021e44 addiu s3, sp, 0x28 | s3 = sp + 0x28;
0x00021e48 lw a3, 4(s0) | a3 = *((s0 + 1));
0x00021e4c ori a2, zero, 0x8000 | a2 = 0x8000;
0x00021e50 move a0, s3 | a0 = s3;
0x00021e54 jalr t9 | t9 ();
0x00021e58 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00021e5c bnez v0, 0x21e70 |
0x00021e60 lw v1, 0x34(sp) | v1 = *(var_34h_2);
0x00021e64 addiu v0, zero, 2 | v0 = 2;
0x00021e68 lw t9, -0x7654(gp) | t9 = sym.imp.apr_pstrdup;
| if (v1 == v0) {
0x00021e6c beq v1, v0, 0x21eb4 | goto label_10;
| }
| }
0x00021e70 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x00021e74 andi v0, v0, 1 | v0 &= 1;
0x00021e78 beql v0, zero, 0x21df4 |
| } while (v0 == 0);
0x00021e7c lw t9, 0xc(s0) | t9 = *((s0 + 3));
0x00021e80 lw t9, -0x7250(gp) | t9 = sym.imp.apr_stat;
| label_8:
0x00021e84 lw a3, 4(s0) | a3 = *((s0 + 1));
0x00021e88 ori a2, zero, 0x8000 | a2 = 0x8000;
0x00021e8c move a1, s2 | a1 = s2;
0x00021e90 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00021e94 jalr t9 | t9 ();
0x00021e98 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00021e9c bnez v0, 0x21eac | goto label_11;
| }
0x00021ea0 lw v0, 0x34(sp) | v0 = *(var_34h_2);
0x00021ea4 lw t9, 0xc(s0) | t9 = *((s0 + 3));
| if (v0 == 0) {
0x00021ea8 bnel v0, zero, 0x21df4 | goto label_0;
| }
| label_11:
0x00021eac move v0, zero | v0 = 0;
0x00021eb0 b 0x21e04 | goto label_1;
| label_10:
0x00021eb4 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00021eb8 move a1, s2 | a1 = s2;
0x00021ebc jalr t9 | t9 ();
0x00021ec0 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x00021ec4 move s5, v0 | s5 = v0;
0x00021ec8 addiu v0, v1, 1 | v0 = v1 + 1;
0x00021ecc sltiu v1, v0, 0x81 | v1 = (v0 < 0x81) ? 1 : 0;
0x00021ed0 lw gp, 0x18(sp) | gp = *(var_18h);
0x00021ed4 sw v0, 0x18(s0) | *((s0 + 6)) = v0;
| if (v1 == 0) {
0x00021ed8 bnez v1, 0x21f0c |
0x00021edc lw a2, 8(s0) | a2 = *((s0 + 2));
0x00021ee0 lw a0, (s0) | a0 = *(s0);
| if (a2 == 0) {
0x00021ee4 beqz a2, 0x22098 | goto label_12;
| }
| label_5:
0x00021ee8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00021eec lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00021ef0 addiu v0, zero, 0x80 | v0 = 0x80;
0x00021ef4 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00021ef8 move a3, s5 | a3 = s5;
| /* str._sDirectory__s_exceeds_the_maximum_include_directory_nesting_level_of__u._You_have_probably_a_recursion_somewhere. */
0x00021efc addiu a1, a1, -0x67ec | a1 += -aav.0x000067ec;
0x00021f00 jalr t9 | t9 ();
0x00021f04 lw gp, 0x18(sp) | gp = *(var_18h);
0x00021f08 b 0x21e04 | goto label_1;
| }
0x00021f0c lw t9, -0x7290(gp) | t9 = sym.imp.apr_dir_open;
0x00021f10 lw a2, 4(s0) | a2 = *((s0 + 1));
0x00021f14 move a1, s5 | a1 = s5;
0x00021f18 addiu a0, sp, 0x24 | a0 = sp + 0x24;
0x00021f1c jalr t9 | t9 ();
0x00021f20 sw v0, 0x20(sp) | *(var_20h_3) = v0;
0x00021f24 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00021f28 beqz v0, 0x21f5c |
0x00021f2c lw a2, 8(s0) | a2 = *((s0 + 2));
0x00021f30 lw a0, (s0) | a0 = *(s0);
| if (a2 == 0) {
0x00021f34 beqz a2, 0x220a4 | goto label_13;
| }
| label_6:
0x00021f38 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00021f3c lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00021f40 addiu v0, sp, 0x20 | v0 = sp + 0x20;
0x00021f44 sw v0, 0x10(sp) | *(var_10h_3) = v0;
0x00021f48 move a3, s5 | a3 = s5;
| /* str._sCould_not_open_directory__s:__pm */
0x00021f4c addiu a1, a1, -0x6774 | a1 += -0x6774;
0x00021f50 jalr t9 | t9 ();
0x00021f54 lw gp, 0x18(sp) | gp = *(var_18h);
0x00021f58 b 0x21e04 | goto label_1;
| }
0x00021f5c lw t9, -0x775c(gp) | t9 = sym.imp.apr_array_make;
0x00021f60 lw a0, 4(s0) | a0 = *((s0 + 1));
0x00021f64 addiu a2, zero, 4 | a2 = 4;
0x00021f68 addiu a1, zero, 1 | a1 = 1;
0x00021f6c jalr t9 | t9 ();
0x00021f70 lw gp, 0x18(sp) | gp = *(var_18h);
0x00021f74 move s6, v0 | s6 = v0;
0x00021f78 lw s4, -0x7fac(gp) | s4 = *(gp);
0x00021f7c lw s7, -0x7fac(gp) | s7 = *(gp);
0x00021f80 lw fp, -0x7e84(gp) | fp = sym.ap_make_full_path;
| /* esilref: '(' */
0x00021f84 addiu s4, s4, -0x4df4 | s4 += -0x4df4;
| /* esilref: '..' */
0x00021f88 addiu s7, s7, -0x6750 | s7 += -0x6750;
| do {
| label_2:
0x00021f8c lw t9, -0x76d8(gp) | t9 = sym.imp.apr_dir_read;
0x00021f90 lw a2, 0x24(sp) | a2 = *(var_24h_2);
0x00021f94 lui a1, 0x200 | a1 = imp.apr_hook_global_pool;
0x00021f98 move a0, s3 | a0 = s3;
0x00021f9c jalr t9 | t9 ();
0x00021fa0 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x00021fa4 bnez v0, 0x2200c | goto label_14;
| }
0x00021fa8 lw s2, 0x84(sp) | s2 = *(var_84h);
0x00021fac lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x00021fb0 move a1, s4 | a1 = s4;
0x00021fb4 move a0, s2 | a0 = s2;
0x00021fb8 jalr t9 | t9 ();
0x00021fbc lw gp, 0x18(sp) | gp = *(var_18h);
0x00021fc0 beqz v0, 0x21f8c |
| } while (v0 == 0);
0x00021fc4 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x00021fc8 move a1, s7 | a1 = s7;
0x00021fcc move a0, s2 | a0 = s2;
0x00021fd0 jalr t9 | t9 ();
0x00021fd4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x00021fd8 beqz v0, 0x21f8c | goto label_2;
| }
0x00021fdc lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
0x00021fe0 move a0, s6 | a0 = s6;
0x00021fe4 jalr t9 | t9 ();
0x00021fe8 lw a2, 0x84(sp) | a2 = *(var_84h);
0x00021fec lw a0, 4(s0) | a0 = *((s0 + 1));
0x00021ff0 move s2, v0 | s2 = v0;
0x00021ff4 move t9, fp | t9 = fp;
0x00021ff8 move a1, s5 | a1 = s5;
0x00021ffc bal 0x1ebc0 | sym_ap_make_full_path ();
0x00022000 lw gp, 0x18(sp) | gp = *(var_18h);
0x00022004 sw v0, (s2) | *(s2) = v0;
0x00022008 b 0x21f8c | goto label_2;
| label_14:
0x0002200c lw t9, -0x748c(gp) | t9 = sym.imp.apr_dir_close;
0x00022010 lw a0, 0x24(sp) | a0 = *(var_24h_2);
0x00022014 jalr t9 | t9 ();
0x00022018 lw a1, 8(s6) | a1 = *((s6 + 2));
0x0002201c lw gp, 0x18(sp) | gp = *(var_18h);
| if (a1 == 0) {
0x00022020 beqz a1, 0x22084 | goto label_15;
| }
0x00022024 lw a3, -0x7fbc(gp) | a3 = *(gp);
0x00022028 lw t9, -0x725c(gp) | t9 = sym.imp.qsort;
0x0002202c lw a0, 0x10(s6) | a0 = *((s6 + 4));
0x00022030 addiu a3, a3, -0x51e0 | a3 += -0x51e0;
0x00022034 addiu a2, zero, 4 | a2 = 4;
0x00022038 jalr t9 | t9 ();
0x0002203c lw v0, 8(s6) | v0 = *((s6 + 2));
0x00022040 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 <= 0) {
0x00022044 blez v0, 0x22084 | goto label_15;
| }
0x00022048 lw s3, -0x7e80(gp) | s3 = sym.ap_dir_nofnmatch;
0x0002204c move s2, zero | s2 = 0;
0x00022050 lw a1, 0x10(s6) | a1 = *((s6 + 4));
| label_4:
0x00022054 sll v0, s2, 2 | v0 = s2 << 2;
0x00022058 move a0, s0 | a0 = s0;
0x0002205c move t9, s3 | t9 = s3;
0x00022060 lwx a1, v0(a1) | __asm ("lwx a1, v0(a1)");
0x00022064 bal 0x21d88 | sym_ap_dir_nofnmatch ();
| goto label_3;
0x00022068 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0002206c bnez v0, 0x21e04 | goto label_1;
| }
0x00022070 lw v0, 8(s6) | v0 = *((s6 + 2));
0x00022074 addiu s2, s2, 1 | s2++;
0x00022078 slt v0, s2, v0 | v0 = (s2 < v0) ? 1 : 0;
0x0002207c lw a1, 0x10(s6) | a1 = *((s6 + 4));
| if (v0 == 0) {
0x00022080 bnel v0, zero, 0x22054 | goto label_4;
| }
| label_15:
0x00022084 lw v1, 0x18(s0) | v1 = *((s0 + 6));
0x00022088 move v0, zero | v0 = 0;
0x0002208c addiu v1, v1, -1 | v1 += -1;
0x00022090 sw v1, 0x18(s0) | *((s0 + 6)) = v1;
0x00022094 b 0x21e04 | goto label_1;
| label_12:
0x00022098 lw a2, -0x7fac(gp) | a2 = *(gp);
0x0002209c addiu a2, a2, 0x47dc | a2 += 0x47dc;
0x000220a0 b 0x21ee8 | goto label_5;
| label_13:
0x000220a4 lw a2, -0x7fac(gp) | a2 = *(gp);
0x000220a8 addiu a2, a2, 0x47dc | a2 += 0x47dc;
0x000220ac b 0x21f38 | goto label_6;
| label_9:
0x000220b0 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x000220b4 jalr t9 | t9 ();
0x000220b8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x1e334 */
| #include <stdint.h>
|
; (fcn) sym.ap_escape_html2 () | void ap_escape_html2 () {
0x0001e334 lui gp, 8 |
0x0001e338 addiu gp, gp, 0x4bec |
0x0001e33c addu gp, gp, t9 | gp += t9;
0x0001e340 addiu sp, sp, -0x50 |
0x0001e344 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0001e348 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0001e34c sw fp, 0x48(sp) | *(var_48h) = fp;
0x0001e350 sw s7, 0x44(sp) | *(var_44h) = s7;
0x0001e354 sw s6, 0x40(sp) | *(var_40h) = s6;
0x0001e358 sw s5, 0x3c(sp) | *(var_3ch) = s5;
0x0001e35c sw s4, 0x38(sp) | *(var_38h) = s4;
0x0001e360 sw s3, 0x34(sp) | *(var_34h) = s3;
0x0001e364 sw s2, 0x30(sp) | *(var_30h) = s2;
0x0001e368 sw s1, 0x2c(sp) | *(var_2ch) = s1;
0x0001e36c sw s0, 0x28(sp) | *(var_28h) = s0;
0x0001e370 lb v0, (a1) | v0 = *(a1);
0x0001e374 move s4, a2 | s4 = a2;
| if (v0 == 0) {
0x0001e378 beqz v0, 0x1e5a0 | goto label_2;
| }
0x0001e37c addiu t2, zero, -3 | t2 = -3;
0x0001e380 addiu t1, zero, 0x3c | t1 = 0x3c;
0x0001e384 and t0, v0, t2 | t0 = v0 & t2;
0x0001e388 move s1, a0 | s1 = a0;
0x0001e38c move s0, a1 | s0 = a1;
0x0001e390 move a3, zero | a3 = 0;
0x0001e394 move v1, zero | v1 = 0;
0x0001e398 addiu t3, zero, 0x26 | t3 = 0x26;
0x0001e39c addiu t4, zero, 0x22 | t4 = 0x22;
0x0001e3a0 addiu t5, zero, -0x80 | t5 = -0x80;
| if (t0 == t1) {
0x0001e3a4 beq t0, t1, 0x1e3f8 | goto label_3;
| }
| do {
| if (v0 != t3) {
0x0001e3a8 beql v0, t3, 0x1e3cc |
0x0001e3ac addiu a3, a3, 4 | a3 += 4;
| if (v0 == t4) {
0x0001e3b0 beql v0, t4, 0x1e3cc | goto label_4;
| }
0x0001e3b4 addiu a3, a3, 5 | a3 += 5;
0x0001e3b8 addiu a2, v1, 1 | a2 = v1 + 1;
| if (s4 == 0) {
0x0001e3bc beqz s4, 0x1e3d0 | goto label_5;
| }
0x0001e3c0 and v0, v0, t5 | v0 &= t5;
| if (v0 < 0) {
0x0001e3c4 bltzl v0, 0x1e3d0 | goto label_5;
| }
0x0001e3c8 addiu a3, a3, 5 | a3 += 5;
| }
| label_4:
0x0001e3cc addiu a2, v1, 1 | a2 = v1 + 1;
| label_5:
0x0001e3d0 addu v0, s0, a2 | v0 = s0 + a2;
0x0001e3d4 lb v0, (v0) | v0 = *(v0);
| if (v0 == 0) {
0x0001e3d8 beqz v0, 0x1e40c | goto label_6;
| }
0x0001e3dc nop |
| label_0:
0x0001e3e0 addu v1, a3, a2 | v1 = a3 + a2;
0x0001e3e4 sltiu v1, v1, -6 | v1 = (v1 < -6) ? 1 : 0;
0x0001e3e8 and t0, v0, t2 | t0 = v0 & t2;
| if (v1 == 0) {
0x0001e3ec beqz v1, 0x1e5e0 | goto label_7;
| }
0x0001e3f0 move v1, a2 | v1 = a2;
0x0001e3f4 bne t0, t1, 0x1e3a8 |
| } while (t0 != t1);
| label_3:
0x0001e3f8 addiu a2, v1, 1 | a2 = v1 + 1;
0x0001e3fc addu v0, s0, a2 | v0 = s0 + a2;
0x0001e400 lb v0, (v0) | v0 = *(v0);
0x0001e404 addiu a3, a3, 3 | a3 += 3;
| if (v0 != 0) {
0x0001e408 bnez v0, 0x1e3e0 | goto label_0;
| }
| label_6:
0x0001e40c lw t9, -0x7544(gp) | t9 = sym.imp.apr_palloc;
| if (a3 == 0) {
0x0001e410 beqz a3, 0x1e5a4 | goto label_8;
| }
0x0001e414 addu a1, a3, v1 | a1 = a3 + v1;
0x0001e418 addiu a1, a1, 2 | a1 += 2;
0x0001e41c move a0, s1 | a0 = s1;
0x0001e420 jalr t9 | t9 ();
0x0001e424 lb v1, (s0) | v1 = *(s0);
0x0001e428 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001e42c move s5, v0 | s5 = v0;
| if (v1 == 0) {
0x0001e430 beqz v1, 0x1e5d8 | goto label_9;
| }
0x0001e434 lw a3, -0x7fac(gp) | a3 = *(gp);
0x0001e438 lw fp, -0x7fac(gp) | fp = *(gp);
0x0001e43c lw v0, -0x7fac(gp) | v0 = *(gp);
0x0001e440 lw t2, -0x7fac(gp) | t2 = *(gp);
0x0001e444 lw t0, -0x6a08(a3) | t0 = *((a3 - 6786));
0x0001e448 lw s7, -0x6a10(fp) | s7 = *(var_6a10h);
0x0001e44c lw s6, -0x6a18(v0) | s6 = *((v0 - 6790));
0x0001e450 lw t1, -0x7fac(gp) | t1 = *(gp);
0x0001e454 addiu s0, s0, 1 | s0++;
0x0001e458 move s3, zero | s3 = 0;
| do {
0x0001e45c addiu v0, zero, 0x3c | v0 = 0x3c;
0x0001e460 addu s2, s5, s3 | s2 = s5 + s3;
| if (v1 == v0) {
0x0001e464 beq v1, v0, 0x1e4e4 | goto label_10;
| }
0x0001e468 addiu v0, zero, 0x3e | v0 = 0x3e;
0x0001e46c addiu v0, zero, 0x26 | v0 = 0x26;
| if (v1 == v0) {
0x0001e470 beq v1, v0, 0x1e4f8 | goto label_11;
| }
0x0001e474 addiu v0, zero, 0x22 | v0 = 0x22;
| if (v1 == v0) {
0x0001e478 beq v1, v0, 0x1e508 | goto label_12;
| }
| if (v1 == v0) {
0x0001e47c beql v1, v0, 0x1e524 | goto label_13;
| }
| /* str.quot_ */
0x0001e480 addiu v0, a3, -0x6a08 | v0 = a3 + -0x6a08;
| if (s4 != 0) {
0x0001e484 beql s4, zero, 0x1e498 |
0x0001e488 sb v1, (s2) | *(s2) = v1;
0x0001e48c andi a2, v1, 0xff | a2 = v1 & 0xff;
| if (v1 < 0) {
0x0001e490 bltz v1, 0x1e544 | goto label_14;
| }
0x0001e494 sb v1, (s2) | *(s2) = v1;
| }
| label_1:
0x0001e498 addiu s0, s0, 1 | s0++;
0x0001e49c lb v1, -1(s0) | v1 = *((s0 - 1));
0x0001e4a0 addiu s3, s3, 1 | s3++;
0x0001e4a4 bnez v1, 0x1e45c |
| } while (v1 != 0);
0x0001e4a8 addu s3, s5, s3 | s3 = s5 + s3;
| do {
0x0001e4ac sb zero, (s3) | *(s3) = 0;
0x0001e4b0 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0001e4b4 move v0, s5 | v0 = s5;
0x0001e4b8 lw fp, 0x48(sp) | fp = *(var_48h);
0x0001e4bc lw s7, 0x44(sp) | s7 = *(var_44h);
0x0001e4c0 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0001e4c4 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0001e4c8 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0001e4cc lw s3, 0x34(sp) | s3 = *(var_34h);
0x0001e4d0 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0001e4d4 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0001e4d8 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0001e4dc addiu sp, sp, 0x50 |
0x0001e4e0 jr ra | return v0;
| label_10:
0x0001e4e4 lw v0, -0x6a20(t1) | v0 = *((t1 - 6792));
0x0001e4e8 addiu s3, s3, 3 | s3 += 3;
0x0001e4ec swl v0, 3(s2) | __asm ("swl v0, 3(s2)");
0x0001e4f0 swr v0, (s2) | __asm ("swr v0, (s2)");
0x0001e4f4 b 0x1e498 | goto label_1;
| label_11:
0x0001e4f8 swl s6, 3(s2) | __asm ("swl s6, 3(s2)");
0x0001e4fc swr s6, (s2) | __asm ("swr s6, (s2)");
0x0001e500 addiu s3, s3, 3 | s3 += 3;
0x0001e504 b 0x1e498 | goto label_1;
| /* str.amp_ */
| label_12:
0x0001e508 addiu v0, fp, -0x6a10 | v0 = fp + -0x6a10;
0x0001e50c swl s7, 3(s2) | __asm ("swl s7, 3(s2)");
0x0001e510 lbu v0, 4(v0) | v0 = *((v0 + 4));
0x0001e514 swr s7, (s2) | __asm ("swr s7, (s2)");
0x0001e518 addiu s3, s3, 4 | s3 += 4;
0x0001e51c sb v0, 4(s2) | *((s2 + 4)) = v0;
0x0001e520 b 0x1e498 | goto label_1;
| label_13:
0x0001e524 swl t0, 3(s2) | __asm ("swl t0, 3(s2)");
0x0001e528 lbu v1, 4(v0) | v1 = *((v0 + 4));
0x0001e52c lbu v0, 5(v0) | v0 = *((v0 + 5));
0x0001e530 swr t0, (s2) | __asm ("swr t0, (s2)");
0x0001e534 addiu s3, s3, 5 | s3 += 5;
0x0001e538 sb v1, 4(s2) | *((s2 + 4)) = v1;
0x0001e53c sb v0, 5(s2) | *((s2 + 5)) = v0;
0x0001e540 b 0x1e498 | goto label_1;
| label_14:
0x0001e544 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0001e548 sw t1, 0x24(sp) | *(var_24h_2) = t1;
0x0001e54c sw t0, 0x20(sp) | *(var_20h_2) = t0;
0x0001e550 sw a3, 0x1c(sp) | *(var_1ch_2) = a3;
| /* str._3.3d_ */
0x0001e554 addiu a1, t2, -0x6a00 | a1 = t2 + -0x6a00;
0x0001e558 sw t2, 0x18(sp) | *(var_18h) = t2;
0x0001e55c move a0, s1 | a0 = s1;
0x0001e560 jalr t9 | t9 ();
0x0001e564 lwl v1, 3(v0) | __asm ("lwl v1, 3(v0)");
0x0001e568 lw gp, 0x10(sp) | gp = *(var_10h);
0x0001e56c addiu s3, s3, 5 | s3 += 5;
0x0001e570 lwr v1, (v0) | __asm ("lwr v1, (v0)");
0x0001e574 lw t2, 0x18(sp) | t2 = *(var_18h);
0x0001e578 swl v1, 3(s2) | __asm ("swl v1, 3(s2)");
0x0001e57c swr v1, (s2) | __asm ("swr v1, (s2)");
0x0001e580 lbu v1, 4(v0) | v1 = *((v0 + 4));
0x0001e584 lw a3, 0x1c(sp) | a3 = *(var_1ch_2);
0x0001e588 sb v1, 4(s2) | *((s2 + 4)) = v1;
0x0001e58c lbu v0, 5(v0) | v0 = *((v0 + 5));
0x0001e590 lw t0, 0x20(sp) | t0 = *(var_20h_2);
0x0001e594 sb v0, 5(s2) | *((s2 + 5)) = v0;
0x0001e598 lw t1, 0x24(sp) | t1 = *(var_24h_2);
0x0001e59c b 0x1e498 | goto label_1;
| label_2:
0x0001e5a0 move a2, zero | a2 = 0;
| label_8:
0x0001e5a4 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0001e5a8 lw fp, 0x48(sp) | fp = *(var_48h);
0x0001e5ac lw s7, 0x44(sp) | s7 = *(var_44h);
0x0001e5b0 lw s6, 0x40(sp) | s6 = *(var_40h);
0x0001e5b4 lw s5, 0x3c(sp) | s5 = *(var_3ch);
0x0001e5b8 lw s4, 0x38(sp) | s4 = *(var_38h);
0x0001e5bc lw s3, 0x34(sp) | s3 = *(var_34h);
0x0001e5c0 lw s2, 0x30(sp) | s2 = *(var_30h);
0x0001e5c4 lw s1, 0x2c(sp) | s1 = *(var_2ch);
0x0001e5c8 lw s0, 0x28(sp) | s0 = *(var_28h);
0x0001e5cc lw t9, -0x7708(gp) | t9 = sym.imp.apr_pstrmemdup;
0x0001e5d0 addiu sp, sp, 0x50 |
0x0001e5d4 jr t9 | t9 ();
| label_9:
0x0001e5d8 move s3, v0 | s3 = v0;
0x0001e5dc b 0x1e4ac |
| } while (1);
| label_7:
0x0001e5e0 lw t9, -0x71f4(gp) | t9 = *(gp);
0x0001e5e4 jalr t9 | t9 ();
0x0001e5e8 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x48180 */
| #include <stdint.h>
|
; (fcn) sym.ap_expr_parse () | void ap_expr_parse () {
0x00048180 lui gp, 6 |
0x00048184 addiu gp, gp, -0x5260 |
0x00048188 addu gp, gp, t9 | gp += t9;
0x0004818c addiu sp, sp, -0x2070 |
0x00048190 lw t9, -0x74c4(gp) | t9 = sym.imp.strlen;
0x00048194 sw s2, 0x2060(sp) | *(arg_2060h) = s2;
0x00048198 lw s2, -0x7534(gp) | s2 = *(gp);
0x0004819c sw s4, 0x2068(sp) | *(arg_2068h) = s4;
0x000481a0 sw s3, 0x2064(sp) | *(arg_2064h) = s3;
0x000481a4 lw v0, (s2) | v0 = *(s2);
0x000481a8 move s4, a2 | s4 = a2;
0x000481ac move s3, a0 | s3 = a0;
0x000481b0 sw gp, 0x10(sp) | *(arg_10h) = gp;
0x000481b4 sw s1, 0x205c(sp) | *(arg_205ch) = s1;
0x000481b8 sw s0, 0x2058(sp) | *(arg_2058h) = s0;
0x000481bc sw ra, 0x206c(sp) | *(arg_206ch) = ra;
0x000481c0 move a0, a3 | a0 = a3;
0x000481c4 sw v0, 0x2054(sp) | *(arg_2054h) = v0;
0x000481c8 sw s3, 0x2038(sp) | *(arg_2038h) = s3;
0x000481cc sw a1, 0x203c(sp) | *(arg_203ch) = a1;
0x000481d0 sw a3, 0x1c(sp) | *(arg_1ch) = a3;
0x000481d4 move s0, a3 | s0 = a3;
0x000481d8 lw s1, 0x2080(sp) | s1 = *(arg_2080h);
0x000481dc jalr t9 | t9 ();
0x000481e0 lw v1, 0xc(s4) | v1 = *((s4 + 3));
0x000481e4 sw v0, 0x20(sp) | *(arg_20h) = v0;
0x000481e8 addiu v0, sp, 0x30 | v0 = sp + 0x30;
0x000481ec lw gp, 0x10(sp) | gp = *(arg_10h);
0x000481f0 sw s0, 0x24(sp) | *(arg_24h) = s0;
0x000481f4 sw zero, 0x2040(sp) | *(arg_2040h) = 0;
0x000481f8 sw zero, 0x2044(sp) | *(arg_2044h) = 0;
0x000481fc sw zero, 0x2048(sp) | *(arg_2048h) = 0;
0x00048200 sw v1, 0x204c(sp) | *(arg_204ch) = v1;
0x00048204 sb zero, 0x2030(sp) | *(arg_2030h) = 0;
0x00048208 sb zero, 0x30(sp) | *(arg_30h) = 0;
0x0004820c sw v0, 0x2c(sp) | *(arg_2ch) = v0;
| if (s1 == 0) {
0x00048210 beqz s1, 0x482e4 | goto label_2;
| }
| label_1:
0x00048214 lw t9, -0x7a44(gp) | t9 = sym.ap_expr_yylex_init;
0x00048218 addiu v0, zero, 1 | v0 = 1;
0x0004821c addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x00048220 sw s1, 0x2050(sp) | *(arg_2050h) = s1;
0x00048224 sw v0, 0x2034(sp) | *(arg_2034h) = v0;
0x00048228 bal 0x626c8 | sym_ap_expr_yylex_init ();
0x0004822c lw gp, 0x10(sp) | gp = *(arg_10h);
0x00048230 lw a1, 0x28(sp) | a1 = *(arg_28h);
0x00048234 addiu s0, sp, 0x1c | s0 = sp + 0x1c;
0x00048238 lw t9, -0x7a40(gp) | t9 = sym.ap_expr_yyset_extra;
0x0004823c move a0, s0 | a0 = s0;
0x00048240 bal 0x6263c | sym_ap_expr_yyset_extra ();
0x00048244 lw gp, 0x10(sp) | gp = *(arg_10h);
0x00048248 lw t9, -0x7a3c(gp) | t9 = sym.ap_expr_yyparse;
0x0004824c move a0, s0 | a0 = s0;
0x00048250 bal 0x5fca4 | sym_ap_expr_yyparse ();
0x00048254 lw gp, 0x10(sp) | gp = *(arg_10h);
0x00048258 lw a0, 0x28(sp) | a0 = *(arg_28h);
0x0004825c lw t9, -0x7a38(gp) | t9 = sym.ap_expr_yylex_destroy;
0x00048260 move s0, v0 | s0 = v0;
0x00048264 bal 0x628a4 | sym_ap_expr_yylex_destroy ();
0x00048268 lw v0, 0x2044(sp) | v0 = *(arg_2044h);
0x0004826c lw gp, 0x10(sp) | gp = *(arg_10h);
| if (v0 == 0) {
0x00048270 beqz v0, 0x482c4 | goto label_3;
| }
0x00048274 lw a3, 0x2048(sp) | a3 = *(arg_2048h);
0x00048278 lw a1, -0x7fac(gp) | a1 = *(gp);
| if (a3 == 0) {
0x0004827c beqz a3, 0x48298 | goto label_0;
| }
0x00048280 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00048284 move a2, v0 | a2 = v0;
| /* esilref: '&s: &s' */
0x00048288 addiu a1, a1, -0x11c0 | a1 += -0x11c0;
0x0004828c move a0, s3 | a0 = s3;
0x00048290 jalr t9 | t9 ();
0x00048294 lw gp, 0x10(sp) | gp = *(arg_10h);
| do {
| label_0:
0x00048298 lw a0, 0x2054(sp) | a0 = *(arg_2054h);
0x0004829c lw v1, (s2) | v1 = *(s2);
0x000482a0 lw ra, 0x206c(sp) | ra = *(arg_206ch);
| if (a0 != v1) {
0x000482a4 bne a0, v1, 0x482f4 | goto label_4;
| }
0x000482a8 lw s4, 0x2068(sp) | s4 = *(arg_2068h);
0x000482ac lw s3, 0x2064(sp) | s3 = *(arg_2064h);
0x000482b0 lw s2, 0x2060(sp) | s2 = *(arg_2060h);
0x000482b4 lw s1, 0x205c(sp) | s1 = *(arg_205ch);
0x000482b8 lw s0, 0x2058(sp) | s0 = *(arg_2058h);
0x000482bc addiu sp, sp, 0x2070 |
0x000482c0 jr ra | return v1;
| label_3:
0x000482c4 lw v0, 0x2048(sp) | v0 = *(arg_2048h);
0x000482c8 bnez v0, 0x48298 |
| } while (v0 != 0);
0x000482cc nop |
0x000482d0 lw v1, 0x2040(sp) | v1 = *(arg_2040h);
| if (s0 != 0) {
0x000482d4 beqz s0, 0x482ec |
0x000482d8 lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str.syntax_error */
0x000482dc addiu v0, v0, -0x464 | v0 += -aav.0x00000464;
0x000482e0 b 0x48298 | goto label_0;
| label_2:
0x000482e4 lw s1, -0x7a34(gp) | s1 = sym.ap_expr_lookup_default;
0x000482e8 b 0x48214 | goto label_1;
| }
0x000482ec sw v1, (s4) | *(s4) = v1;
0x000482f0 b 0x48298 | goto label_0;
| label_4:
0x000482f4 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x000482f8 jalr t9 | t9 ();
0x000482fc nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x48300 */
| #include <stdint.h>
|
; (fcn) sym.ap_expr_parse_cmd_mi () | void ap_expr_parse_cmd_mi () {
0x00048300 lui gp, 6 |
0x00048304 addiu gp, gp, -0x53e0 |
0x00048308 addu gp, gp, t9 | gp += t9;
0x0004830c addiu sp, sp, -0x38 |
0x00048310 lw t9, -0x7544(gp) | t9 = sym.imp.apr_palloc;
0x00048314 sw s1, 0x24(sp) | *(var_24h) = s1;
0x00048318 move s1, a0 | s1 = a0;
0x0004831c lw a0, 0x28(a0) | a0 = *((a0 + 10));
0x00048320 sw ra, 0x34(sp) | *(var_34h) = ra;
0x00048324 sw s4, 0x30(sp) | *(var_30h) = s4;
0x00048328 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x0004832c sw s2, 0x28(sp) | *(var_28h) = s2;
0x00048330 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00048334 sw gp, 0x18(sp) | *(var_18h) = gp;
0x00048338 move s3, a1 | s3 = a1;
0x0004833c addiu a1, zero, 0x14 | a1 = 0x14;
0x00048340 move s2, a3 | s2 = a3;
0x00048344 move s4, a2 | s4 = a2;
0x00048348 jalr t9 | t9 ();
0x0004834c lw gp, 0x18(sp) | gp = *(var_18h);
0x00048350 addiu a2, zero, 0x14 | a2 = 0x14;
0x00048354 move a1, zero | a1 = 0;
0x00048358 lw t9, -0x7308(gp) | t9 = sym.imp.memset;
0x0004835c move a0, v0 | a0 = v0;
0x00048360 jalr t9 | t9 ();
0x00048364 lw v1, 0x24(s1) | v1 = *((s1 + 9));
0x00048368 move s0, v0 | s0 = v0;
0x0004836c lw gp, 0x18(sp) | gp = *(var_18h);
0x00048370 lw v0, 0x1c(v1) | v0 = *((v1 + 7));
0x00048374 lw a1, 0x2c(s1) | a1 = *((s1 + 11));
0x00048378 lw a2, 0x18(v1) | a2 = *((v1 + 6));
0x0004837c lw a0, 0x28(s1) | a0 = *((s1 + 10));
0x00048380 sw v0, 8(s0) | *((s0 + 2)) = v0;
0x00048384 lw v0, 0x4c(sp) | v0 = *(arg_4ch);
0x00048388 lw t9, -0x7a30(gp) | t9 = sym.ap_expr_parse;
0x0004838c sw v0, 0x10(s0) | *((s0 + 4)) = v0;
0x00048390 lw v0, 0x48(sp) | v0 = *(arg_10h);
0x00048394 sw a2, 4(s0) | *((s0 + 1)) = a2;
0x00048398 sw s4, 0xc(s0) | *((s0 + 3)) = s4;
0x0004839c move a3, s3 | a3 = s3;
0x000483a0 move a2, s0 | a2 = s0;
0x000483a4 sw v0, 0x10(sp) | *(var_10h) = v0;
0x000483a8 bal 0x48180 | sym_ap_expr_parse ();
0x000483ac lw ra, 0x34(sp) | ra = *(var_34h);
| if (v0 == 0) {
0x000483b0 movn s0, zero, v0 | s0 = 0;
| }
0x000483b4 sw v0, (s2) | *(s2) = v0;
0x000483b8 lw s4, 0x30(sp) | s4 = *(var_30h);
0x000483bc move v0, s0 | v0 = s0;
0x000483c0 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000483c4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000483c8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000483cc lw s0, 0x20(sp) | s0 = *(var_20h);
0x000483d0 addiu sp, sp, 0x38 |
0x000483d4 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x30578 */
| #include <stdint.h>
|
; (fcn) sym.ap_limit_section () | void ap_limit_section () {
0x00030578 lui gp, 7 |
0x0003057c addiu gp, gp, 0x29a8 |
0x00030580 addu gp, gp, t9 | gp += t9;
0x00030584 lw v0, -0x7534(gp) | v0 = *(gp);
0x00030588 addiu sp, sp, -0x58 |
0x0003058c lw t9, -0x7358(gp) | t9 = sym.imp.strrchr;
0x00030590 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x00030594 lw v0, (v0) | v0 = *(v0);
0x00030598 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0003059c sw s1, 0x34(sp) | *(var_34h) = s1;
0x000305a0 sw s0, 0x30(sp) | *(var_30h) = s0;
0x000305a4 sw ra, 0x54(sp) | *(var_54h) = ra;
0x000305a8 move s0, a0 | s0 = a0;
0x000305ac sw fp, 0x50(sp) | *(var_50h) = fp;
0x000305b0 sw s7, 0x4c(sp) | *(var_4ch) = s7;
0x000305b4 sw s6, 0x48(sp) | *(var_48h) = s6;
0x000305b8 sw s5, 0x44(sp) | *(var_44h) = s5;
0x000305bc sw s4, 0x40(sp) | *(var_40h) = s4;
0x000305c0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x000305c4 sw s2, 0x38(sp) | *(var_38h) = s2;
0x000305c8 addiu a1, zero, 0x3e | a1 = 0x3e;
0x000305cc move a0, a2 | a0 = a2;
0x000305d0 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x000305d4 move s1, a2 | s1 = a2;
0x000305d8 jalr t9 | t9 ();
0x000305dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000305e0 lw v1, 0x38(s0) | v1 = *((s0 + 14));
| if (v0 == 0) {
0x000305e4 beqz v0, 0x307c0 | goto label_4;
| }
0x000305e8 subu a2, v0, s1 | __asm ("subu a2, v0, s1");
0x000305ec lw v0, 8(v1) | v0 = *((v1 + 2));
0x000305f0 lw t9, -0x7708(gp) | t9 = sym.imp.apr_pstrmemdup;
0x000305f4 sw v0, 0x18(sp) | *(var_18h) = v0;
0x000305f8 lw v0, 0x10(s0) | v0 = *((s0 + 4));
0x000305fc lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x00030600 sw v0, 0x20(sp) | *(var_20h) = v0;
0x00030604 lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x00030608 move a1, s1 | a1 = s1;
0x0003060c sw v0, 0x24(sp) | *(var_24h) = v0;
0x00030610 jalr t9 | t9 ();
0x00030614 sw v0, 0x28(sp) | *(var_28h) = v0;
0x00030618 lb v0, (v0) | v0 = *(v0);
0x0003061c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00030620 beqz v0, 0x307e4 | goto label_5;
| }
0x00030624 move s2, zero | s2 = 0;
0x00030628 move s1, zero | s1 = 0;
0x0003062c addiu s6, sp, 0x28 | s6 = sp + 0x28;
0x00030630 addiu s3, zero, 6 | s3 = 6;
0x00030634 addiu s4, zero, 0x1a | s4 = 0x1a;
0x00030638 addiu s5, zero, 1 | s5 = 1;
0x0003063c b 0x30670 |
| while (v0 != s3) {
| if (v0 == s4) {
0x00030640 beql v0, s4, 0x30778 | goto label_6;
| }
0x00030644 lw fp, 0x28(s0) | fp = *((s0 + 10));
0x00030648 andi a0, v0, 0x20 | a0 = v0 & 0x20;
0x0003064c sllv v0, s5, v0 | v0 = s5 << v0;
0x00030650 move v1, v0 | v1 = v0;
| if (a0 != 0) {
0x00030654 movz v1, zero, a0 | v1 = 0;
| }
| if (a0 == 0) {
0x00030658 movn v0, zero, a0 | v0 = 0;
| }
| label_1:
0x0003065c or s2, s2, v0 | s2 |= v0;
0x00030660 lw v0, 0x28(sp) | v0 = *(var_28h);
0x00030664 lb v0, (v0) | v0 = *(v0);
0x00030668 or s1, s1, v1 | s1 |= v1;
| if (v0 == 0) {
0x0003066c beqz v0, 0x306c0 | goto label_7;
| }
| label_0:
0x00030670 lw t9, -0x7f00(gp) | t9 = sym.ap_getword_conf;
0x00030674 lw a0, 0x2c(s0) | a0 = *((s0 + 11));
0x00030678 move a1, s6 | a1 = s6;
0x0003067c bal 0x1c75c | sym_ap_getword_conf ();
0x00030680 lw gp, 0x10(sp) | gp = *(var_10h);
0x00030684 move a0, v0 | a0 = v0;
0x00030688 lw t9, -0x7d88(gp) | t9 = sym.ap_method_number_of;
0x0003068c move s7, v0 | s7 = v0;
0x00030690 jalr t9 | t9 ();
0x00030694 lw gp, 0x10(sp) | gp = *(var_10h);
0x00030698 bne v0, s3, 0x30640 |
| }
0x0003069c lw v0, 0x18(sp) | v0 = *(var_18h);
0x000306a0 move v1, zero | v1 = 0;
| if (v0 == 0) {
0x000306a4 beqz v0, 0x3080c | goto label_8;
| }
0x000306a8 addiu v0, zero, 0x40 | v0 = 0x40;
0x000306ac or s2, s2, v0 | s2 |= v0;
0x000306b0 lw v0, 0x28(sp) | v0 = *(var_28h);
0x000306b4 lb v0, (v0) | v0 = *(v0);
0x000306b8 or s1, s1, v1 | s1 |= v1;
| if (v0 != 0) {
0x000306bc bnez v0, 0x30670 | goto label_0;
| }
| label_7:
0x000306c0 lw v0, 0x18(sp) | v0 = *(var_18h);
0x000306c4 lw v0, 0x20(sp) | v0 = *(var_20h);
| if (v0 != 0) {
0x000306c8 beqz v0, 0x306d4 |
0x000306cc nor s2, zero, s2 | __asm ("nor s2, zero, s2");
0x000306d0 nor s1, zero, s1 | __asm ("nor s1, zero, s1");
| }
0x000306d4 lw v1, 0x24(sp) | v1 = *(var_24h);
0x000306d8 and v0, s2, v0 | v0 = s2 & v0;
0x000306dc and v1, s1, v1 | v1 = s1 & v1;
0x000306e0 or a0, v0, v1 | a0 = v0 | v1;
0x000306e4 lw a0, 0x20(sp) | a0 = *(var_20h);
| if (a0 == 0) {
0x000306e8 beqz a0, 0x30840 | goto label_9;
| }
0x000306ec lw v0, 0x24(sp) | v0 = *(var_24h);
| if (v0 == a0) {
0x000306f0 beq v0, a0, 0x30868 | goto label_10;
| }
0x000306f4 lw a0, 0x24(s0) | a0 = *((s0 + 9));
| label_3:
0x000306f8 lw v1, 0x10(s0) | v1 = *((s0 + 4));
0x000306fc lw v0, 0x14(s0) | v0 = *((s0 + 5));
0x00030700 and s2, v1, s2 | s2 = v1 & s2;
0x00030704 lw t9, -0x7d24(gp) | t9 = sym.ap_walk_config;
0x00030708 lw a0, 0xc(a0) | a0 = *((a0 + 3));
0x0003070c and s1, v0, s1 | s1 = v0 & s1;
0x00030710 lw a2, 0x3c(s0) | a2 = *((s0 + 15));
0x00030714 sw s2, 0x10(s0) | *((s0 + 4)) = s2;
0x00030718 sw s1, 0x14(s0) | *((s0 + 5)) = s1;
0x0003071c move a1, s0 | a1 = s0;
0x00030720 bal 0x4ca70 | sym_ap_walk_config ();
0x00030724 lw v1, 0x20(sp) | v1 = *(var_20h);
0x00030728 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003072c sw v1, 0x10(s0) | *((s0 + 4)) = v1;
0x00030730 lw v1, 0x24(sp) | v1 = *(var_24h);
0x00030734 sw v1, 0x14(s0) | *((s0 + 5)) = v1;
| do {
| label_2:
0x00030738 lw v1, 0x1c(sp) | v1 = *(var_1ch);
0x0003073c lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x00030740 lw v1, (v1) | v1 = *(v1);
0x00030744 lw ra, 0x54(sp) | ra = *(var_54h);
| if (a0 != v1) {
0x00030748 bne a0, v1, 0x30898 | goto label_11;
| }
0x0003074c lw fp, 0x50(sp) | fp = *(var_50h);
0x00030750 lw s7, 0x4c(sp) | s7 = *(var_4ch);
0x00030754 lw s6, 0x48(sp) | s6 = *(var_48h);
0x00030758 lw s5, 0x44(sp) | s5 = *(var_44h);
0x0003075c lw s4, 0x40(sp) | s4 = *(var_40h);
0x00030760 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x00030764 lw s2, 0x38(sp) | s2 = *(var_38h);
0x00030768 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0003076c lw s0, 0x30(sp) | s0 = *(var_30h);
0x00030770 addiu sp, sp, 0x58 |
0x00030774 jr ra | return v0;
| label_6:
0x00030778 lw v0, 0x2c(s0) | v0 = *((s0 + 11));
0x0003077c lw t9, -0x7654(gp) | t9 = sym.imp.apr_pstrdup;
| if (fp == v0) {
0x00030780 beq fp, v0, 0x30818 | goto label_12;
| }
0x00030784 move a1, s7 | a1 = s7;
0x00030788 move a0, fp | a0 = fp;
0x0003078c jalr t9 | t9 ();
0x00030790 lw gp, 0x10(sp) | gp = *(var_10h);
0x00030794 move a0, fp | a0 = fp;
0x00030798 lw t9, -0x7d20(gp) | t9 = sym.ap_method_register;
0x0003079c move a1, v0 | a1 = v0;
0x000307a0 jalr t9 | t9 ();
0x000307a4 andi a0, v0, 0x20 | a0 = v0 & 0x20;
0x000307a8 sllv v0, s5, v0 | v0 = s5 << v0;
0x000307ac move v1, v0 | v1 = v0;
0x000307b0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (a0 != 0) {
0x000307b4 movz v1, zero, a0 | v1 = 0;
| }
| if (a0 == 0) {
0x000307b8 movn v0, zero, a0 | v0 = 0;
| }
0x000307bc b 0x3065c | goto label_1;
| label_4:
0x000307c0 lw a2, -0x7fac(gp) | a2 = *(gp);
0x000307c4 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x000307c8 lw a1, (v1) | a1 = *(v1);
0x000307cc lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x000307d0 move a3, zero | a3 = 0;
| /* str.__directive_missing_closing__ */
0x000307d4 addiu a2, a2, -0x4cb0 | a2 += -0x4cb0;
0x000307d8 jalr t9 | t9 ();
0x000307dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000307e0 b 0x30738 |
| } while (1);
| label_5:
0x000307e4 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x000307e8 lw a2, -0x7fac(gp) | a2 = *(gp);
0x000307ec lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x000307f0 lw a1, (v0) | a1 = *(v0);
0x000307f4 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x000307f8 move a3, zero | a3 = 0;
| /* str.__directive_requires_additional_arguments */
0x000307fc addiu a2, a2, -0x4c90 | a2 += -0x4c90;
0x00030800 jalr t9 | t9 ();
0x00030804 lw gp, 0x10(sp) | gp = *(var_10h);
0x00030808 b 0x30738 | goto label_2;
| label_8:
0x0003080c lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str.TRACE_cannot_be_controlled_by__Limit___see_TraceEnable */
0x00030810 addiu v0, v0, -0x4ce8 | v0 += -0x4ce8;
0x00030814 b 0x30738 | goto label_2;
| label_12:
0x00030818 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x0003081c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00030820 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x00030824 lw a3, (v0) | a3 = *(v0);
0x00030828 move a2, s7 | a2 = s7;
| /* str.Could_not_register_method__s_for__s_from_.htaccess_configuration */
0x0003082c addiu a1, a1, -0x4c64 | a1 += -0x4c64;
0x00030830 move a0, fp | a0 = fp;
0x00030834 jalr t9 | t9 ();
0x00030838 lw gp, 0x10(sp) | gp = *(var_10h);
0x0003083c b 0x30738 | goto label_2;
| label_9:
0x00030840 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x00030844 lw a2, -0x7fac(gp) | a2 = *(gp);
0x00030848 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x0003084c lw a1, (v0) | a1 = *(v0);
0x00030850 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x00030854 move a3, zero | a3 = 0;
| /* str.__directive_excludes_all_methods */
0x00030858 addiu a2, a2, -0x4c20 | a2 += -0x4c20;
0x0003085c jalr t9 | t9 ();
0x00030860 lw gp, 0x10(sp) | gp = *(var_10h);
0x00030864 b 0x30738 | goto label_2;
| label_10:
0x00030868 lw a0, 0x24(s0) | a0 = *((s0 + 9));
| if (v1 == v0) {
0x0003086c bnel v1, v0, 0x306f8 | goto label_3;
| }
0x00030870 lw v0, 0x38(s0) | v0 = *((s0 + 14));
0x00030874 lw a2, -0x7fac(gp) | a2 = *(gp);
0x00030878 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x0003087c lw a1, (v0) | a1 = *(v0);
0x00030880 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x00030884 move a3, zero | a3 = 0;
| /* str.__directive_specifies_methods_already_excluded */
0x00030888 addiu a2, a2, -0x4bfc | a2 += -0x4bfc;
0x0003088c jalr t9 | t9 ();
0x00030890 lw gp, 0x10(sp) | gp = *(var_10h);
0x00030894 b 0x30738 | goto label_2;
| label_11:
0x00030898 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0003089c jalr t9 | t9 ();
0x000308a0 nop |
0x000308a4 lui gp, 7 |
0x000308a8 addiu gp, gp, 0x267c |
0x000308ac addu gp, gp, t9 | gp += t9;
0x000308b0 lw v0, -0x7f84(gp) | v0 = *(gp);
0x000308b4 lw t9, -0x7d9c(gp) | t9 = sym.ap_array_str_contains;
0x000308b8 lw a0, (v0) | a0 = *(v0);
0x000308bc b 0x21b0c | return void (*0x21b0c)() ();
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x736c0 */
| #include <stdint.h>
|
; (fcn) sym.ap_os_create_privileged_process () | void ap_os_create_privileged_process () {
0x000736c0 lui gp, 3 |
0x000736c4 addiu gp, gp, -0x7a0 |
0x000736c8 addu gp, gp, t9 | gp += t9;
0x000736cc addiu sp, sp, -0x48 |
0x000736d0 lw t9, -0x77d8(gp) | t9 = sym.ap_run_get_suexec_identity;
0x000736d4 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000736d8 sw s5, 0x34(sp) | *(var_34h) = s5;
0x000736dc sw s4, 0x30(sp) | *(var_30h) = s4;
0x000736e0 sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000736e4 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000736e8 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000736ec sw s0, 0x20(sp) | *(var_20h) = s0;
0x000736f0 sw ra, 0x44(sp) | *(var_44h) = ra;
0x000736f4 sw fp, 0x40(sp) | *(var_40h) = fp;
0x000736f8 sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x000736fc sw s6, 0x38(sp) | *(var_38h) = s6;
0x00073700 move s4, a1 | s4 = a1;
0x00073704 move s2, a2 | s2 = a2;
0x00073708 move s0, a3 | s0 = a3;
0x0007370c lw s5, 0x58(sp) | s5 = *(arg_58h);
0x00073710 lw s3, 0x5c(sp) | s3 = *(arg_5ch);
0x00073714 lw s1, 0x60(sp) | s1 = *(arg_60h);
0x00073718 bal 0x7360c | sym_ap_run_get_suexec_identity ();
0x0007371c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x00073720 beqz v0, 0x738bc | goto label_2;
| }
0x00073724 move s7, v0 | s7 = v0;
0x00073728 lw v0, -0x77dc(gp) | v0 = *(gp);
0x0007372c lw v0, 0x10(v0) | v0 = *((v0 + 4));
0x00073730 lw t9, -0x7358(gp) | t9 = sym.imp.strrchr;
| if (v0 == 0) {
0x00073734 beqz v0, 0x738bc | goto label_2;
| }
0x00073738 addiu a1, zero, 0x2f | a1 = 0x2f;
0x0007373c move a0, s2 | a0 = s2;
0x00073740 jalr t9 | t9 ();
0x00073744 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00073748 beqz v0, 0x73750 |
0x0007374c addiu s2, v0, 1 | s2 = v0 + 1;
| }
0x00073750 lw v0, 8(s7) | v0 = *((s7 + 2));
0x00073754 lw a2, (s7) | a2 = *(s7);
| if (v0 != 0) {
0x00073758 bnez v0, 0x73898 | goto label_3;
| }
0x0007375c lw fp, -0x7fac(gp) | fp = *(gp);
0x00073760 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
| /* esilref: '&ld' */
0x00073764 addiu a1, fp, 0x7de0 | a1 = fp + 0x7de0;
0x00073768 move a0, s1 | a0 = s1;
0x0007376c jalr t9 | t9 ();
0x00073770 lw gp, 0x10(sp) | gp = *(var_10h);
0x00073774 move s6, v0 | s6 = v0;
| label_0:
0x00073778 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0007377c lw a2, 4(s7) | a2 = *((s7 + 1));
| /* esilref: '&ld' */
0x00073780 addiu a1, fp, 0x7de0 | a1 = fp + 0x7de0;
0x00073784 move a0, s1 | a0 = s1;
0x00073788 jalr t9 | t9 ();
0x0007378c move fp, v0 | fp = v0;
0x00073790 lw gp, 0x10(sp) | gp = *(var_10h);
| if (s6 == 0) {
0x00073794 beqz s6, 0x73908 | goto label_4;
| }
0x00073798 lw ra, 0x44(sp) | ra = *(var_44h);
| if (v0 == 0) {
0x0007379c beqz v0, 0x7390c | goto label_5;
| }
0x000737a0 lw v0, (s0) | v0 = *(s0);
0x000737a4 addiu v0, s0, 4 | v0 = s0 + 4;
| if (v0 == 0) {
0x000737a8 beqz v0, 0x73970 | goto label_6;
| }
0x000737ac move a1, zero | a1 = 0;
0x000737b0 b 0x737b8 |
| while (v1 != 0) {
0x000737b4 move a1, a0 | a1 = a0;
0x000737b8 addiu v0, v0, 4 | v0 += 4;
0x000737bc lw v1, -4(v0) | v1 = *((v0 - 1));
0x000737c0 addiu a0, a1, 1 | a0 = a1 + 1;
0x000737c4 bnez v1, 0x737b4 |
| }
0x000737c8 addiu a1, a1, 5 | a1 += 5;
0x000737cc sll a1, a1, 2 | a1 <<= 2;
| label_1:
0x000737d0 lw t9, -0x7544(gp) | t9 = sym.imp.apr_palloc;
0x000737d4 move a0, s1 | a0 = s1;
0x000737d8 jalr t9 | t9 ();
0x000737dc lw gp, 0x10(sp) | gp = *(var_10h);
0x000737e0 move s7, v0 | s7 = v0;
0x000737e4 move a1, s2 | a1 = s2;
0x000737e8 lw t0, -0x7fac(gp) | t0 = *(gp);
0x000737ec lw t9, -0x7654(gp) | t9 = sym.imp.apr_pstrdup;
| /* str._usr_sbin_suexec */
0x000737f0 addiu v0, t0, 0x7bc4 | v0 = t0 + 0x7bc4;
0x000737f4 sw t0, 0x1c(sp) | *(var_1ch) = t0;
0x000737f8 move a0, s1 | a0 = s1;
0x000737fc sw v0, (s7) | *(s7) = v0;
0x00073800 sw s6, 4(s7) | *((s7 + 1)) = s6;
0x00073804 sw fp, 8(s7) | *((s7 + 2)) = fp;
0x00073808 jalr t9 | t9 ();
0x0007380c lw gp, 0x10(sp) | gp = *(var_10h);
0x00073810 sw v0, 0xc(s7) | *((s7 + 3)) = v0;
0x00073814 addiu a1, zero, 1 | a1 = 1;
0x00073818 lw t9, -0x7304(gp) | t9 = sym.imp.apr_procattr_cmdtype_set;
0x0007381c move a0, s3 | a0 = s3;
0x00073820 jalr t9 | t9 ();
0x00073824 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00073828 bnez v0, 0x7393c | goto label_7;
| }
0x0007382c lw t0, 0x1c(sp) | t0 = *(var_1ch);
0x00073830 addiu a3, s0, 4 | a3 = s0 + 4;
0x00073834 addiu v0, s7, 0x10 | v0 = s7 + 0x10;
| do {
0x00073838 lw v1, (a3) | v1 = *(a3);
0x0007383c addiu v0, v0, 4 | v0 += 4;
0x00073840 addiu a3, a3, 4 | a3 += 4;
0x00073844 sw v1, -4(v0) | *((v0 - 1)) = v1;
0x00073848 bnez v1, 0x73838 |
| } while (v1 != 0);
0x0007384c sw s1, 0x5c(sp) | *(arg_5ch) = s1;
0x00073850 sw s3, 0x58(sp) | *(arg_58h) = s3;
0x00073854 lw ra, 0x44(sp) | ra = *(var_44h);
0x00073858 lw fp, 0x40(sp) | fp = *(var_40h);
0x0007385c lw s6, 0x38(sp) | s6 = *(var_38h);
0x00073860 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00073864 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00073868 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0007386c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00073870 move a3, s5 | a3 = s5;
0x00073874 move a2, s7 | a2 = s7;
0x00073878 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0007387c lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x00073880 move a0, s4 | a0 = s4;
0x00073884 lw t9, -0x72e4(gp) | t9 = sym.imp.apr_proc_create;
0x00073888 lw s4, 0x30(sp) | s4 = *(var_30h);
0x0007388c addiu a1, t0, 0x7bc4 | a1 = t0 + 0x7bc4;
0x00073890 addiu sp, sp, 0x48 |
0x00073894 jr t9 | t9 ();
| label_3:
0x00073898 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0007389c lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
| /* str._ld */
0x000738a0 addiu a1, a1, 0x7dd8 | a1 += 0x7dd8;
0x000738a4 move a0, s1 | a0 = s1;
0x000738a8 jalr t9 | t9 ();
0x000738ac lw gp, 0x10(sp) | gp = *(var_10h);
0x000738b0 move s6, v0 | s6 = v0;
0x000738b4 lw fp, -0x7fac(gp) | fp = *(gp);
0x000738b8 b 0x73778 | goto label_0;
| label_2:
0x000738bc sw s1, 0x5c(sp) | *(arg_5ch) = s1;
0x000738c0 sw s3, 0x58(sp) | *(arg_58h) = s3;
0x000738c4 lw ra, 0x44(sp) | ra = *(var_44h);
0x000738c8 lw fp, 0x40(sp) | fp = *(var_40h);
0x000738cc lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x000738d0 lw s6, 0x38(sp) | s6 = *(var_38h);
0x000738d4 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000738d8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000738dc move a3, s5 | a3 = s5;
0x000738e0 move a2, s0 | a2 = s0;
0x000738e4 lw s5, 0x34(sp) | s5 = *(var_34h);
0x000738e8 lw s0, 0x20(sp) | s0 = *(var_20h);
0x000738ec move a1, s2 | a1 = s2;
0x000738f0 move a0, s4 | a0 = s4;
0x000738f4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000738f8 lw s4, 0x30(sp) | s4 = *(var_30h);
0x000738fc lw t9, -0x72e4(gp) | t9 = sym.imp.apr_proc_create;
0x00073900 addiu sp, sp, 0x48 |
0x00073904 jr t9 | t9 ();
| label_4:
0x00073908 lw ra, 0x44(sp) | ra = *(var_44h);
| label_5:
0x0007390c lw fp, 0x40(sp) | fp = *(var_40h);
0x00073910 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x00073914 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00073918 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0007391c lw s4, 0x30(sp) | s4 = *(var_30h);
0x00073920 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00073924 lw s2, 0x28(sp) | s2 = *(var_28h);
0x00073928 lw s1, 0x24(sp) | s1 = *(var_24h);
0x0007392c lw s0, 0x20(sp) | s0 = *(var_20h);
0x00073930 addiu v0, zero, 0xc | v0 = 0xc;
0x00073934 addiu sp, sp, 0x48 |
0x00073938 jr ra | return v0;
| label_7:
0x0007393c lw ra, 0x44(sp) | ra = *(var_44h);
0x00073940 lw fp, 0x40(sp) | fp = *(var_40h);
0x00073944 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x00073948 lw s6, 0x38(sp) | s6 = *(var_38h);
0x0007394c lw s5, 0x34(sp) | s5 = *(var_34h);
0x00073950 lw s4, 0x30(sp) | s4 = *(var_30h);
0x00073954 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x00073958 lw s2, 0x28(sp) | s2 = *(var_28h);
0x0007395c lw s1, 0x24(sp) | s1 = *(var_24h);
0x00073960 lw s0, 0x20(sp) | s0 = *(var_20h);
0x00073964 addiu v0, zero, 0x4e2e | v0 = 0x4e2e;
0x00073968 addiu sp, sp, 0x48 |
0x0007396c jr ra | return v0;
| label_6:
0x00073970 addiu a1, zero, 0x10 | a1 = 0x10;
0x00073974 b 0x737d0 | goto label_1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x1ce94 */
| #include <stdint.h>
|
; (fcn) sym.ap_pcfg_strerror () | void ap_pcfg_strerror () {
0x0001ce94 lui gp, 8 |
0x0001ce98 addiu gp, gp, 0x608c |
0x0001ce9c addu gp, gp, t9 | gp += t9;
0x0001cea0 addiu sp, sp, -0x28 |
0x0001cea4 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0001cea8 sw ra, 0x24(sp) | *(var_24h) = ra;
0x0001ceac sw a2, 0x30(sp) | *(arg_30h) = a2;
| if (a2 != 0) {
0x0001ceb0 beqz a2, 0x1ceec |
0x0001ceb4 move v0, a2 | v0 = a2;
0x0001ceb8 addiu v1, zero, 0x1c | v1 = 0x1c;
0x0001cebc lw a2, 0x10(a1) | a2 = *((a1 + 4));
0x0001cec0 lw a3, 0x14(a1) | a3 = *((a1 + 5));
0x0001cec4 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
| if (v0 == v1) {
0x0001cec8 beq v0, v1, 0x1cefc | goto label_0;
| }
0x0001cecc lw a1, -0x7fac(gp) | a1 = *(gp);
0x0001ced0 addiu v0, sp, 0x30 | v0 = sp + 0x30;
0x0001ced4 sw v0, 0x10(sp) | *(var_10h) = v0;
| /* str.Error_reading__s_at_line__d:__pm */
0x0001ced8 addiu a1, a1, -0x6aa8 | a1 += -0x6aa8;
0x0001cedc jalr t9 | t9 ();
0x0001cee0 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001cee4 addiu sp, sp, 0x28 |
0x0001cee8 jr ra | return v0;
| }
0x0001ceec lw ra, 0x24(sp) | ra = *(var_24h);
0x0001cef0 move v0, zero | v0 = 0;
0x0001cef4 addiu sp, sp, 0x28 |
0x0001cef8 jr ra | return v0;
| label_0:
0x0001cefc lw a1, -0x7fac(gp) | a1 = *(gp);
| /* str.Error_reading__s_at_line__d:_Line_too_long */
0x0001cf00 addiu a1, a1, -0x6ad4 | a1 += -0x6ad4;
0x0001cf04 jalr t9 | t9 ();
0x0001cf08 lw ra, 0x24(sp) | ra = *(var_24h);
0x0001cf0c addiu sp, sp, 0x28 |
0x0001cf10 jr ra | return v0;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x4d89c */
| #include <stdint.h>
|
; (fcn) sym.ap_process_resource_config () | void ap_process_resource_config () {
| label_4:
0x0004d89c lui gp, 5 |
0x0004d8a0 addiu gp, gp, 0x5684 |
0x0004d8a4 addu gp, gp, t9 | gp += t9;
0x0004d8a8 addiu sp, sp, -0xb0 |
0x0004d8ac lw v0, -0x7fac(gp) | v0 = *(gp);
0x0004d8b0 sw s2, 0x90(sp) | *(var_90h) = s2;
0x0004d8b4 lw s2, -0x7534(gp) | s2 = *(gp);
0x0004d8b8 sw s3, 0x94(sp) | *(var_94h) = s3;
0x0004d8bc sw s1, 0x8c(sp) | *(var_8ch) = s1;
0x0004d8c0 lw v1, (s2) | v1 = *(s2);
0x0004d8c4 addiu s3, sp, 0x38 | s3 = sp + 0x38;
0x0004d8c8 addiu v0, v0, 0xc58 | v0 += 0xc58;
0x0004d8cc lw s1, 0xc0(sp) | s1 = *(var_c0h);
0x0004d8d0 sw s5, 0x9c(sp) | *(var_9ch) = s5;
0x0004d8d4 sw s4, 0x98(sp) | *(var_98h) = s4;
0x0004d8d8 sw s0, 0x88(sp) | *(var_88h) = s0;
0x0004d8dc sw gp, 0x18(sp) | *(var_18h_2) = gp;
0x0004d8e0 move t0, a0 | t0 = a0;
0x0004d8e4 sw v1, 0x84(sp) | *(var_84h) = v1;
0x0004d8e8 sw ra, 0xac(sp) | *(var_ach) = ra;
0x0004d8ec sw fp, 0xa8(sp) | *(var_a8h) = fp;
0x0004d8f0 sw s7, 0xa4(sp) | *(var_a4h) = s7;
0x0004d8f4 sw s6, 0xa0(sp) | *(var_a0h) = s6;
0x0004d8f8 move s4, a1 | s4 = a1;
0x0004d8fc move s5, a2 | s5 = a2;
0x0004d900 move s0, a3 | s0 = a3;
0x0004d904 move v1, s3 | v1 = s3;
0x0004d908 addiu a0, v0, 0x40 | a0 = v0 + 0x40;
| do {
0x0004d90c lw t1, (v0) | t1 = *(v0);
0x0004d910 lw a3, 4(v0) | a3 = *((v0 + 1));
0x0004d914 lw a2, 8(v0) | a2 = *((v0 + 2));
0x0004d918 lw a1, 0xc(v0) | a1 = *((v0 + 3));
0x0004d91c addiu v0, v0, 0x10 | v0 += 0x10;
0x0004d920 sw t1, (v1) | *(v1) = t1;
0x0004d924 sw a3, 4(v1) | *((v1 + 1)) = a3;
0x0004d928 sw a2, 8(v1) | *((v1 + 2)) = a2;
0x0004d92c sw a1, 0xc(v1) | *((v1 + 3)) = a1;
0x0004d930 addiu v1, v1, 0x10 | v1 += 0x10;
0x0004d934 bne v0, a0, 0x4d90c |
| } while (v0 != a0);
0x0004d938 lw a0, (v0) | a0 = *(v0);
0x0004d93c lw v0, 4(v0) | v0 = *((v0 + 1));
0x0004d940 sw a0, (v1) | *(v1) = a0;
0x0004d944 sw v0, 4(v1) | *((v1 + 1)) = v0;
0x0004d948 addiu v0, zero, 0x96 | v0 = 0x96;
0x0004d94c lw t9, -0x79d8(gp) | t9 = sym.ap_pcfg_openfile;
0x0004d950 sw v0, 0x3c(sp) | *(var_3ch_2) = v0;
0x0004d954 addiu v0, zero, 0xef | v0 = 0xef;
0x0004d958 move a2, s4 | a2 = s4;
0x0004d95c move a1, s0 | a1 = s0;
0x0004d960 addiu a0, sp, 0x28 | a0 = sp + 0x28;
0x0004d964 sw s0, 0x60(sp) | *(var_60h_2) = s0;
0x0004d968 sw s1, 0x64(sp) | *(var_64h_2) = s1;
0x0004d96c sw t0, 0x68(sp) | *(var_68h_2) = t0;
0x0004d970 sw v0, 0x40(sp) | *(var_40h) = v0;
0x0004d974 jalr t9 | t9 ();
0x0004d978 sw v0, 0x2c(sp) | *(var_2ch_3) = v0;
0x0004d97c lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 != 0) {
0x0004d980 bnez v0, 0x4db2c | goto label_5;
| }
0x0004d984 lw a0, -0x7fac(gp) | a0 = *(gp);
0x0004d988 lw t9, -0x7ef8(gp) | t9 = sym.ap_exists_config_define;
| /* str.DUMP_INCLUDES */
0x0004d98c addiu a0, a0, -0x7e44 | a0 += -0x7e44;
0x0004d990 bal 0x3ac6c | sym_ap_exists_config_define ();
0x0004d994 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0004d998 bnez v0, 0x4da48 |
| label_0:
0x0004d99c lw v0, 0x28(sp) | v0 = *(var_28h_2);
0x0004d9a0 lw t9, -0x79e0(gp) | t9 = sym.ap_build_config;
0x0004d9a4 move a2, s1 | a2 = s1;
0x0004d9a8 move a3, s5 | a3 = s5;
0x0004d9ac move a1, s0 | a1 = s0;
0x0004d9b0 move a0, s3 | a0 = s3;
0x0004d9b4 sw v0, 0x58(sp) | *(var_58h_2) = v0;
0x0004d9b8 bal 0x4cce8 | sym_ap_build_config ();
0x0004d9bc lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004d9c0 lw a0, 0x28(sp) | a0 = *(var_28h_2);
0x0004d9c4 lw t9, -0x79dc(gp) | t9 = sym.ap_cfg_closefile;
0x0004d9c8 move s1, v0 | s1 = v0;
0x0004d9cc jalr t9 | t9 ();
0x0004d9d0 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (s1 != 0) {
0x0004d9d4 beqz s1, 0x4da08 |
0x0004d9d8 lw v0, 0x78(sp) | v0 = *(var_78h);
0x0004d9dc lw a1, -0x7fac(gp) | a1 = *(gp);
| if (v0 == 0) {
0x0004d9e0 beqz v0, 0x4da08 | goto label_1;
| }
0x0004d9e4 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0004d9e8 lw a3, 0x18(v0) | a3 = *((v0 + 6));
0x0004d9ec lw a2, 0x1c(v0) | a2 = *((v0 + 7));
| /* str.Syntax_error_on_line__d_of__s:__s */
0x0004d9f0 addiu a1, a1, 0x8d8 | a1 += 0x8d8;
0x0004d9f4 sw s1, 0x10(sp) | *(var_10h_3) = s1;
0x0004d9f8 move a0, s0 | a0 = s0;
0x0004d9fc jalr t9 | t9 ();
0x0004da00 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004da04 move s1, v0 | s1 = v0;
| }
| label_1:
0x0004da08 lw a0, 0x84(sp) | a0 = *(var_84h);
0x0004da0c lw v1, (s2) | v1 = *(s2);
0x0004da10 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0004da14 bne a0, v1, 0x4db90 | goto label_6;
| }
0x0004da18 lw ra, 0xac(sp) | ra = *(var_ach);
0x0004da1c lw fp, 0xa8(sp) | fp = *(var_a8h);
0x0004da20 lw s7, 0xa4(sp) | s7 = *(var_a4h);
0x0004da24 lw s6, 0xa0(sp) | s6 = *(var_a0h);
0x0004da28 lw s5, 0x9c(sp) | s5 = *(var_9ch);
0x0004da2c lw s4, 0x98(sp) | s4 = *(var_98h);
0x0004da30 lw s3, 0x94(sp) | s3 = *(var_94h);
0x0004da34 lw s2, 0x90(sp) | s2 = *(var_90h);
0x0004da38 lw s1, 0x8c(sp) | s1 = *(var_8ch);
0x0004da3c lw s0, 0x88(sp) | s0 = *(var_88h);
0x0004da40 addiu sp, sp, 0xb0 |
0x0004da44 jr ra | return v1;
| }
0x0004da48 lw t9, -0x7360(gp) | t9 = sym.imp.apr_file_open_stdout;
0x0004da4c move a1, s0 | a1 = s0;
0x0004da50 addiu a0, sp, 0x34 | a0 = sp + 0x34;
0x0004da54 sw zero, 0x34(sp) | *(var_34h_2) = 0;
0x0004da58 jalr t9 | t9 ();
0x0004da5c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004da60 addiu v0, sp, 0x30 | v0 = sp + 0x30;
0x0004da64 sw v0, 0x24(sp) | *(var_24h_3) = v0;
0x0004da68 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004da6c lw t9, -0x74f8(gp) | t9 = sym.imp.apr_pool_userdata_get;
0x0004da70 move a2, s0 | a2 = s0;
| /* str.ap_include_sentinel */
0x0004da74 addiu a1, a1, -0x42c4 | a1 += -0x42c4;
0x0004da78 move a0, v0 | a0 = v0;
0x0004da7c jalr t9 | t9 ();
0x0004da80 lw v0, 0x30(sp) | v0 = *(var_30h_2);
0x0004da84 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0004da88 beqz v0, 0x4db54 | goto label_7;
| }
0x0004da8c lw s6, (v0) | s6 = *(v0);
0x0004da90 addiu s6, s6, 1 | s6++;
0x0004da94 lw a1, -0x7fac(gp) | a1 = *(gp);
| if (s6 == 0) {
0x0004da98 beqz s6, 0x4dacc | goto label_8;
| }
0x0004da9c lw s7, -0x7fac(gp) | s7 = *(gp);
0x0004daa0 move fp, zero | fp = 0;
| /* esilref: ' ' */
0x0004daa4 addiu s7, s7, 0x8c0 | s7 += 0x8c0;
| do {
0x0004daa8 lw t9, -0x769c(gp) | t9 = sym.imp.apr_file_printf;
0x0004daac lw a0, 0x34(sp) | a0 = *(var_34h_2);
0x0004dab0 move a1, s7 | a1 = s7;
0x0004dab4 addiu fp, fp, 1 | fp++;
0x0004dab8 jalr t9 | t9 ();
0x0004dabc sltu v0, fp, s6 | v0 = (fp < s6) ? 1 : 0;
0x0004dac0 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004dac4 bnez v0, 0x4daa8 |
| } while (v0 != 0);
| do {
0x0004dac8 lw a1, -0x7fac(gp) | a1 = *(gp);
| label_8:
0x0004dacc lw t9, -0x74f8(gp) | t9 = sym.imp.apr_pool_userdata_get;
0x0004dad0 lw a0, 0x24(sp) | a0 = *(var_24h_3);
0x0004dad4 move a2, s0 | a2 = s0;
| /* str.ap_include_lineno */
0x0004dad8 addiu a1, a1, -0x4250 | a1 += -0x4250;
0x0004dadc jalr t9 | t9 ();
0x0004dae0 lw v0, 0x30(sp) | v0 = *(var_30h_2);
0x0004dae4 lw gp, 0x18(sp) | gp = *(var_18h_2);
| if (v0 == 0) {
0x0004dae8 beqz v0, 0x4db88 | goto label_9;
| }
0x0004daec lw a2, (v0) | a2 = *(v0);
0x0004daf0 lw a0, 0x34(sp) | a0 = *(var_34h_2);
| if (a2 != 0) {
0x0004daf4 bnez a2, 0x4db70 | goto label_10;
| }
| label_3:
0x0004daf8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004dafc lw t9, -0x769c(gp) | t9 = sym.imp.apr_file_printf;
| /* esilref: '(*)' */
0x0004db00 addiu a1, a1, 0x8cc | a1 += 0x8cc;
0x0004db04 jalr t9 | t9 ();
0x0004db08 lw gp, 0x18(sp) | gp = *(var_18h_2);
| label_2:
0x0004db0c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004db10 lw t9, -0x769c(gp) | t9 = sym.imp.apr_file_printf;
0x0004db14 lw a0, 0x34(sp) | a0 = *(var_34h_2);
0x0004db18 move a2, s4 | a2 = s4;
| /* str.__s_n */
0x0004db1c addiu a1, a1, 0x8d0 | a1 += 0x8d0;
0x0004db20 jalr t9 | t9 ();
0x0004db24 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004db28 b 0x4d99c | goto label_0;
| label_5:
0x0004db2c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004db30 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0004db34 addiu a3, sp, 0x2c | a3 = sp + 0x2c;
0x0004db38 move a2, s4 | a2 = s4;
| /* str.Could_not_open_configuration_file__s:__pm */
0x0004db3c addiu a1, a1, 0x894 | a1 += 0x894;
0x0004db40 move a0, s0 | a0 = s0;
0x0004db44 jalr t9 | t9 ();
0x0004db48 move s1, v0 | s1 = v0;
0x0004db4c lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004db50 b 0x4da08 | goto label_1;
| label_7:
0x0004db54 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004db58 lw t9, -0x769c(gp) | t9 = sym.imp.apr_file_printf;
0x0004db5c lw a0, 0x34(sp) | a0 = *(var_34h_2);
| /* esilref: ' ' */
0x0004db60 addiu a1, a1, 0x8c0 | a1 += 0x8c0;
0x0004db64 jalr t9 | t9 ();
0x0004db68 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004db6c b 0x4dac8 |
| } while (1);
| label_10:
0x0004db70 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004db74 lw t9, -0x769c(gp) | t9 = sym.imp.apr_file_printf;
| /* str.__u_ */
0x0004db78 addiu a1, a1, 0x8c4 | a1 += 0x8c4;
0x0004db7c jalr t9 | t9 ();
0x0004db80 lw gp, 0x18(sp) | gp = *(var_18h_2);
0x0004db84 b 0x4db0c | goto label_2;
| label_9:
0x0004db88 lw a0, 0x34(sp) | a0 = *(var_34h_2);
0x0004db8c b 0x4daf8 | goto label_3;
| label_6:
0x0004db90 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0004db94 jalr t9 | t9 ();
0x0004db98 nop |
0x0004db9c lui gp, 5 |
0x0004dba0 addiu gp, gp, 0x5384 |
0x0004dba4 addu gp, gp, t9 | gp += t9;
0x0004dba8 lw v0, 0x10(a0) | v0 = *((a0 + 4));
0x0004dbac addiu sp, sp, -0x28 |
0x0004dbb0 lw v1, 4(a0) | v1 = *((a0 + 1));
0x0004dbb4 lw a3, (a0) | a3 = *(a0);
0x0004dbb8 lw a2, 4(v0) | a2 = *((v0 + 1));
0x0004dbbc lw a0, (v0) | a0 = *(v0);
0x0004dbc0 lw t9, -0x79d4(gp) | t9 = sym.ap_process_resource_config;
0x0004dbc4 sw ra, 0x24(sp) | *(var_24h_2) = ra;
0x0004dbc8 sw gp, 0x18(sp) | *(var_18h_3) = gp;
0x0004dbcc sw v1, 0x10(sp) | *(var_10h_2) = v1;
0x0004dbd0 bal 0x4d89c | sym_ap_process_resource_config ();
| goto label_4;
0x0004dbd4 nop |
0x0004dbd8 lw ra, 0x24(sp) | ra = *(var_24h_2);
0x0004dbdc addiu sp, sp, 0x28 |
0x0004dbe0 jr ra | return v1;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x4d164 */
| #include <stdint.h>
|
; (fcn) sym.ap_set_int_slot () | void ap_set_int_slot () {
0x0004d164 lui gp, 5 |
0x0004d168 addiu gp, gp, 0x5dbc |
0x0004d16c addu gp, gp, t9 | gp += t9;
0x0004d170 addiu sp, sp, -0x38 |
0x0004d174 lw t9, -0x73d0(gp) | t9 = sym.imp.strtol;
0x0004d178 sw s2, 0x2c(sp) | *(var_2ch) = s2;
0x0004d17c lw s2, -0x7534(gp) | s2 = *(gp);
0x0004d180 sw s0, 0x24(sp) | *(var_24h) = s0;
0x0004d184 lw s0, (a0) | s0 = *(a0);
0x0004d188 lw v0, (s2) | v0 = *(s2);
0x0004d18c sw s3, 0x30(sp) | *(var_30h) = s3;
0x0004d190 move s3, a2 | s3 = a2;
0x0004d194 sw gp, 0x10(sp) | *(var_10h) = gp;
0x0004d198 sw s1, 0x28(sp) | *(var_28h) = s1;
0x0004d19c addu s0, s0, a1 | s0 += a1;
0x0004d1a0 sw ra, 0x34(sp) | *(var_34h) = ra;
0x0004d1a4 move s1, a0 | s1 = a0;
0x0004d1a8 addiu a2, zero, 0xa | a2 = 0xa;
0x0004d1ac addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x0004d1b0 move a0, s3 | a0 = s3;
0x0004d1b4 sw v0, 0x1c(sp) | *(var_1ch) = v0;
0x0004d1b8 jalr t9 | t9 ();
0x0004d1bc nop |
0x0004d1c0 lw gp, 0x10(sp) | gp = *(var_10h);
0x0004d1c4 sw v0, (s0) | *(s0) = v0;
0x0004d1c8 lb v0, (s3) | v0 = *(s3);
0x0004d1cc lw v0, 0x18(sp) | v0 = *(var_18h);
| if (v0 != 0) {
0x0004d1d0 beqz v0, 0x4d1e0 |
0x0004d1d4 lb v0, (v0) | v0 = *(v0);
0x0004d1d8 move v0, zero | v0 = 0;
| if (v0 == 0) {
0x0004d1dc beqz v0, 0x4d200 | goto label_0;
| }
| }
0x0004d1e0 lw v0, 0x24(s1) | v0 = *((s1 + 9));
0x0004d1e4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0004d1e8 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0004d1ec lw a2, (v0) | a2 = *(v0);
0x0004d1f0 lw a0, 0x28(s1) | a0 = *((s1 + 10));
| /* str.Invalid_value_for_directive__s__expected_integer */
0x0004d1f4 addiu a1, a1, 0x81c | a1 += 0x81c;
0x0004d1f8 jalr t9 | t9 ();
0x0004d1fc lw gp, 0x10(sp) | gp = *(var_10h);
| label_0:
0x0004d200 lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x0004d204 lw v1, (s2) | v1 = *(s2);
0x0004d208 lw ra, 0x34(sp) | ra = *(var_34h);
| if (a0 == v1) {
0x0004d20c bne a0, v1, 0x4d228 |
0x0004d210 lw s3, 0x30(sp) | s3 = *(var_30h);
0x0004d214 lw s2, 0x2c(sp) | s2 = *(var_2ch);
0x0004d218 lw s1, 0x28(sp) | s1 = *(var_28h);
0x0004d21c lw s0, 0x24(sp) | s0 = *(var_24h);
0x0004d220 addiu sp, sp, 0x38 |
0x0004d224 jr ra | return v1;
| }
0x0004d228 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0004d22c jalr t9 | t9 ();
0x0004d230 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x67680 */
| #include <stdint.h>
|
; (fcn) sym.ap_set_keepalive () | void ap_set_keepalive () {
0x00067680 lui gp, 4 |
0x00067684 addiu gp, gp, -0x4760 |
0x00067688 addu gp, gp, t9 | gp += t9;
0x0006768c addiu sp, sp, -0x48 |
0x00067690 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00067694 sw s0, 0x20(sp) | *(var_20h) = s0;
0x00067698 move s0, a0 | s0 = a0;
0x0006769c sw s3, 0x2c(sp) | *(var_2ch) = s3;
0x000676a0 lw s3, -0x7534(gp) | s3 = *(gp);
0x000676a4 lw a0, 8(a0) | a0 = *((a0 + 2));
0x000676a8 lw v0, 4(s0) | v0 = *((s0 + 1));
0x000676ac lw v1, (s3) | v1 = *(s3);
0x000676b0 sw s2, 0x28(sp) | *(var_28h) = s2;
0x000676b4 lw s2, -0x7fac(gp) | s2 = *(gp);
0x000676b8 sw s1, 0x24(sp) | *(var_24h) = s1;
0x000676bc lw v0, 0x5c(v0) | v0 = *((v0 + 23));
0x000676c0 lw s1, 0x50(a0) | s1 = *((a0 + 20));
0x000676c4 lw a0, 0xb4(s0) | a0 = *((s0 + 45));
0x000676c8 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x000676cc sw ra, 0x44(sp) | *(var_44h) = ra;
0x000676d0 sw gp, 0x10(sp) | *(var_10h) = gp;
0x000676d4 sw s7, 0x3c(sp) | *(var_3ch) = s7;
0x000676d8 sw s6, 0x38(sp) | *(var_38h) = s6;
0x000676dc sw s5, 0x34(sp) | *(var_34h) = s5;
0x000676e0 sw s4, 0x30(sp) | *(var_30h) = s4;
| /* str.Connection */
0x000676e4 addiu a1, s2, -0x4950 | a1 = s2 + -0x4950;
0x000676e8 sw fp, 0x40(sp) | *(var_40h) = fp;
0x000676ec lw s5, (s0) | s5 = *(s0);
0x000676f0 lw s4, -0x7fac(gp) | s4 = *(gp);
0x000676f4 subu s1, s1, v0 | __asm ("subu s1, s1, v0");
0x000676f8 jalr t9 | t9 ();
0x000676fc lw gp, 0x10(sp) | gp = *(var_10h);
0x00067700 move a0, s5 | a0 = s5;
| /* esilref: 'close' */
0x00067704 addiu a2, s4, 0x1920 | a2 = s4 + aav.0x00001920;
0x00067708 lw t9, -0x7cec(gp) | t9 = sym.ap_find_token;
0x0006770c move a1, v0 | a1 = v0;
0x00067710 jalr t9 | t9 ();
0x00067714 lw gp, 0x10(sp) | gp = *(var_10h);
0x00067718 lw a0, 0xb0(s0) | a0 = *((s0 + 44));
| /* str.Connection */
0x0006771c addiu a1, s2, -0x4950 | a1 = s2 + -0x4950;
0x00067720 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00067724 move s6, v0 | s6 = v0;
0x00067728 jalr t9 | t9 ();
0x0006772c lw v1, 4(s0) | v1 = *((s0 + 1));
0x00067730 move s7, v0 | s7 = v0;
0x00067734 addiu s5, zero, 1 | s5 = 1;
0x00067738 lw v0, 0x58(v1) | v0 = *((v1 + 22));
0x0006773c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == s5) {
0x00067740 beq v0, s5, 0x679dc | goto label_11;
| }
0x00067744 lw v0, 0x94(s0) | v0 = *((s0 + 37));
| if (v0 == 0) {
0x00067748 beql v0, zero, 0x677b8 | goto label_12;
| }
0x0006774c lw v0, 0x24(s0) | v0 = *((s0 + 9));
0x00067750 lw t9, -0x76cc(gp) | t9 = sym.imp.apr_table_mergen;
| if (s6 == 0) {
0x00067754 beqz s6, 0x679e8 | goto label_13;
| }
0x00067758 lw v0, 8(s0) | v0 = *((s0 + 2));
| label_1:
0x0006775c lw v0, 0x50(v0) | v0 = *((v0 + 20));
0x00067760 addiu v0, zero, 1 | v0 = 1;
| if (v0 != 0) {
0x00067764 beqz v0, 0x67774 |
| if (s1 == 0) {
0x00067768 beql s1, zero, 0x67a00 | goto label_14;
| }
0x0006776c lw v0, 0x5c(v1) | v0 = *((v1 + 23));
| label_5:
0x00067770 addiu v0, zero, 1 | v0 = 1;
| }
| label_3:
0x00067774 sw v0, 0x58(v1) | *((v1 + 22)) = v0;
| label_2:
0x00067778 move v0, zero | v0 = 0;
| do {
0x0006777c lw a0, 0x1c(sp) | a0 = *(var_1ch);
0x00067780 lw v1, (s3) | v1 = *(s3);
0x00067784 lw ra, 0x44(sp) | ra = *(var_44h);
| if (a0 != v1) {
0x00067788 bne a0, v1, 0x67a84 | goto label_15;
| }
0x0006778c lw fp, 0x40(sp) | fp = *(var_40h);
0x00067790 lw s7, 0x3c(sp) | s7 = *(var_3ch);
0x00067794 lw s6, 0x38(sp) | s6 = *(var_38h);
0x00067798 lw s5, 0x34(sp) | s5 = *(var_34h);
0x0006779c lw s4, 0x30(sp) | s4 = *(var_30h);
0x000677a0 lw s3, 0x2c(sp) | s3 = *(var_2ch);
0x000677a4 lw s2, 0x28(sp) | s2 = *(var_28h);
0x000677a8 lw s1, 0x24(sp) | s1 = *(var_24h);
0x000677ac lw s0, 0x20(sp) | s0 = *(var_20h);
0x000677b0 addiu sp, sp, 0x48 |
0x000677b4 jr ra | return v0;
| label_12:
0x000677b8 lw v0, 8(s0) | v0 = *((s0 + 2));
| if (v0 != 0) {
0x000677bc bnel v0, zero, 0x677f8 |
0x000677c0 lw v0, 0x44(s0) | v0 = *((s0 + 17));
0x000677c4 addiu v1, zero, 0xcc | v1 = 0xcc;
0x000677c8 addiu v1, zero, 0x130 | v1 = aav.0x00000130;
| if (v0 != v1) {
0x000677cc beq v0, v1, 0x677f4 |
| if (v0 == v1) {
0x000677d0 beql v0, v1, 0x677f8 | goto label_16;
| }
0x000677d4 lw v0, 8(s0) | v0 = *((s0 + 2));
0x000677d8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x000677dc lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x000677e0 lw a0, 0xb4(s0) | a0 = *((s0 + 45));
| /* str.Content_Length */
0x000677e4 addiu a1, a1, -0x688c | a1 += -aav.0x0000688c;
0x000677e8 jalr t9 | t9 ();
0x000677ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000677f0 beqz v0, 0x67a38 | goto label_17;
| }
| }
| label_9:
0x000677f4 lw v0, 8(s0) | v0 = *((s0 + 2));
| }
| label_16:
0x000677f8 lw v1, 0x54(v0) | v1 = *((v0 + 21));
| if (v1 == 0) {
0x000677fc beqz v1, 0x679b8 | goto label_6;
| }
0x00067800 nop |
0x00067804 lw v1, 0x4c(v0) | v1 = *((v0 + 19));
| if (v1 <= 0) {
0x00067808 blez v1, 0x67a0c | goto label_18;
| }
0x0006780c nop |
0x00067810 lw v0, 0x50(v0) | v0 = *((v0 + 20));
| if (v0 != 0) {
| label_7:
0x00067814 bnez v0, 0x67a28 | goto label_19;
| }
0x00067818 nop |
0x0006781c lw v1, 0x44(s0) | v1 = *((s0 + 17));
| label_8:
0x00067820 addiu a0, v1, -0x190 | a0 = v1 + -aav.0x00000190;
0x00067824 sltiu v0, a0, 0xf | v0 = (a0 < 0xf) ? 1 : 0;
0x00067828 addiu v0, zero, 0x6901 | v0 = 0x6901;
| if (v0 != 0) {
0x0006782c bnez v0, 0x679a8 | goto label_20;
| }
0x00067830 addiu v0, v1, -0x1f4 | v0 = v1 + -aav.0x000001f4;
0x00067834 sltiu v0, v0, 2 | v0 = (v0 < 2) ? 1 : 0;
0x00067838 addiu v0, zero, 0x1f7 | v0 = 0x1f7;
| if (v0 != 0) {
0x0006783c bnez v0, 0x679b8 | goto label_6;
| }
| if (v1 == v0) {
0x00067840 beq v1, v0, 0x679b8 | goto label_6;
| }
0x00067844 nop |
| label_0:
0x00067848 lw v1, 4(s0) | v1 = *((s0 + 1));
| if (s6 == 0) {
0x0006784c bnel s6, zero, 0x679c4 | goto label_21;
| }
0x00067850 lw t9, -0x7cec(gp) | t9 = sym.ap_find_token;
0x00067854 lw a0, (s0) | a0 = *(s0);
| /* esilref: 'close' */
0x00067858 addiu a2, s4, 0x1920 | a2 = s4 + aav.0x00001920;
0x0006785c move a1, s7 | a1 = s7;
0x00067860 jalr t9 | t9 ();
0x00067864 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00067868 bnez v0, 0x679e4 | goto label_22;
| }
0x0006786c lw a1, -0x7fac(gp) | a1 = *(gp);
0x00067870 lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00067874 lw a0, 0xbc(s0) | a0 = *((s0 + 47));
| /* str.nokeepalive */
0x00067878 addiu a1, a1, 0x52c0 | a1 += 0x52c0;
0x0006787c jalr t9 | t9 ();
0x00067880 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00067884 beqz v0, 0x678a4 |
0x00067888 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0006788c lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00067890 lw a0, 0xb0(s0) | a0 = *((s0 + 44));
| /* esilref: 'Via' */
0x00067894 addiu a1, a1, 0x52d8 | a1 += 0x52d8;
0x00067898 jalr t9 | t9 ();
0x0006789c lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000678a0 beqz v0, 0x679e4 | goto label_22;
| }
| }
0x000678a4 lw a2, -0x7fac(gp) | a2 = *(gp);
0x000678a8 lw t9, -0x7cec(gp) | t9 = sym.ap_find_token;
0x000678ac lw a0, (s0) | a0 = *(s0);
| /* str.keep_alive */
0x000678b0 addiu a2, a2, 0x52cc | a2 += 0x52cc;
0x000678b4 move a1, s7 | a1 = s7;
0x000678b8 jalr t9 | t9 ();
0x000678bc move s5, v0 | s5 = v0;
0x000678c0 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 == 0) {
0x000678c4 bnez v0, 0x678d8 |
0x000678c8 lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x000678cc slti v0, v0, 0x3e9 | v0 = (v0 < 0x3e9) ? 1 : 0;
0x000678d0 lw t9, -0x76cc(gp) | t9 = sym.imp.apr_table_mergen;
| if (v0 != 0) {
0x000678d4 bnez v0, 0x679e8 | goto label_13;
| }
| }
0x000678d8 lw t9, -0x7fc4(gp) | t9 = sym.ap_mpm_query;
0x000678dc addiu a1, sp, 0x18 | a1 = sp + 0x18;
0x000678e0 addiu a0, zero, 0xd | a0 = 0xd;
0x000678e4 sw zero, 0x18(sp) | *(var_18h) = 0;
0x000678e8 jalr t9 | t9 ();
0x000678ec lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x000678f0 bnez v0, 0x679e4 | goto label_22;
| }
0x000678f4 lw v0, 0x18(sp) | v0 = *(var_18h);
0x000678f8 addiu a0, zero, 2 | a0 = 2;
0x000678fc lw t9, -0x76cc(gp) | t9 = sym.imp.apr_table_mergen;
| if (v0 == a0) {
0x00067900 beq v0, a0, 0x679e8 | goto label_13;
| }
0x00067904 lw v0, 4(s0) | v0 = *((s0 + 1));
0x00067908 lw v1, 0x5c(v0) | v1 = *((v0 + 23));
0x0006790c sw a0, 0x58(v0) | *((v0 + 22)) = a0;
0x00067910 addiu v1, v1, 1 | v1++;
0x00067914 sw v1, 0x5c(v0) | *((v0 + 23)) = v1;
| if (s5 != 0) {
0x00067918 beqz s5, 0x679a0 |
0x0006791c lw s5, 8(s0) | s5 = *((s0 + 2));
0x00067920 lw t9, -0x797c(gp) | t9 = *(gp);
0x00067924 lui a2, 0xf | a2 = 0xf0000;
0x00067928 lw a0, 0x48(s5) | a0 = *((s5 + 18));
0x0006792c lw a1, 0x4c(s5) | a1 = *((s5 + 19));
0x00067930 ori a2, a2, 0x4240 | a2 |= 0x4240;
0x00067934 move a3, zero | a3 = 0;
0x00067938 lw s4, 0xb4(s0) | s4 = *((s0 + 45));
0x0006793c bal 0x74340 | fcn_00074340 ();
0x00067940 lw gp, 0x10(sp) | gp = *(var_10h);
0x00067944 lw v1, 0x50(s5) | v1 = *((s5 + 20));
0x00067948 lw a0, (s0) | a0 = *(s0);
0x0006794c move a2, v0 | a2 = v0;
0x00067950 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
| if (v1 == 0) {
0x00067954 beqz v1, 0x67a90 | goto label_23;
| }
0x00067958 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0006795c move a3, s1 | a3 = s1;
0x00067960 lw s1, -0x7fac(gp) | s1 = *(gp);
| /* str.timeout_d__max_d */
0x00067964 addiu a1, a1, 0x52dc | a1 += 0x52dc;
0x00067968 jalr t9 | t9 ();
0x0006796c lw gp, 0x10(sp) | gp = *(var_10h);
| label_10:
0x00067970 lw t9, -0x7590(gp) | t9 = sym.imp.apr_table_setn;
0x00067974 move a2, v0 | a2 = v0;
| /* str.Keep_Alive */
0x00067978 addiu a1, s1, 0x52f0 | a1 = s1 + 0x52f0;
0x0006797c move a0, s4 | a0 = s4;
0x00067980 jalr t9 | t9 ();
0x00067984 lw gp, 0x10(sp) | gp = *(var_10h);
0x00067988 lw a0, 0xb4(s0) | a0 = *((s0 + 45));
| /* str.Keep_Alive */
0x0006798c addiu a2, s1, 0x52f0 | a2 = s1 + 0x52f0;
0x00067990 lw t9, -0x76cc(gp) | t9 = sym.imp.apr_table_mergen;
| /* str.Connection */
0x00067994 addiu a1, s2, -0x4950 | a1 = s2 + -0x4950;
0x00067998 jalr t9 | t9 ();
0x0006799c lw gp, 0x10(sp) | gp = *(var_10h);
| }
0x000679a0 addiu v0, zero, 1 | v0 = 1;
0x000679a4 b 0x6777c |
| } while (1);
| label_20:
0x000679a8 srlv v0, v0, a0 | v0 >>= a0;
0x000679ac ext v0, v0, 0, 1 | __asm ("ext v0, v0, 0, 1");
| if (v0 == 0) {
0x000679b0 beqz v0, 0x67848 | goto label_0;
| }
0x000679b4 nop |
| label_6:
0x000679b8 lw t9, -0x76cc(gp) | t9 = sym.imp.apr_table_mergen;
| if (s6 == 0) {
0x000679bc beqz s6, 0x679e8 | goto label_13;
| }
| label_4:
0x000679c0 lw v1, 4(s0) | v1 = *((s0 + 1));
| label_21:
0x000679c4 addiu v0, zero, 1 | v0 = 1;
0x000679c8 lw a0, 0x58(v1) | a0 = *((v1 + 22));
0x000679cc lw v0, 8(s0) | v0 = *((s0 + 2));
| if (a0 == v0) {
0x000679d0 bnel a0, v0, 0x6775c | goto label_1;
| }
0x000679d4 sw v0, 0x58(v1) | *((v1 + 22)) = v0;
0x000679d8 b 0x67778 | goto label_2;
| label_11:
0x000679dc addiu v0, zero, 1 | v0 = 1;
| if (s6 != 0) {
0x000679e0 bnez s6, 0x67774 | goto label_3;
| }
| label_22:
0x000679e4 lw t9, -0x76cc(gp) | t9 = sym.imp.apr_table_mergen;
| label_13:
0x000679e8 lw a0, 0xb4(s0) | a0 = *((s0 + 45));
| /* esilref: 'close' */
0x000679ec addiu a2, s4, 0x1920 | a2 = s4 + aav.0x00001920;
| /* str.Connection */
0x000679f0 addiu a1, s2, -0x4950 | a1 = s2 + -0x4950;
0x000679f4 jalr t9 | t9 ();
0x000679f8 lw gp, 0x10(sp) | gp = *(var_10h);
0x000679fc b 0x679c0 | goto label_4;
| label_14:
0x00067a00 addiu v0, v0, 1 | v0++;
0x00067a04 sw v0, 0x5c(v1) | *((v1 + 23)) = v0;
0x00067a08 b 0x67770 | goto label_5;
| if (v1 != 0) {
| label_18:
0x00067a0c bnez v1, 0x679b8 | goto label_6;
| }
0x00067a10 nop |
0x00067a14 lw v1, 0x48(v0) | v1 = *((v0 + 18));
0x00067a18 lw v0, 0x50(v0) | v0 = *((v0 + 20));
| if (v1 == 0) {
0x00067a1c bnel v1, zero, 0x67814 | goto label_7;
| }
0x00067a20 b 0x679b8 | goto label_6;
0x00067a24 nop |
| if (s1 > 0) {
| label_19:
0x00067a28 bgtzl s1, 0x67820 | goto label_8;
| }
0x00067a2c lw v1, 0x44(s0) | v1 = *((s0 + 17));
0x00067a30 b 0x679b8 | goto label_6;
0x00067a34 nop |
| label_17:
0x00067a38 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00067a3c lw t9, -0x7668(gp) | t9 = sym.imp.apr_table_get;
0x00067a40 lw a0, 0xb4(s0) | a0 = *((s0 + 45));
| /* str.Transfer_Encoding */
0x00067a44 addiu a1, a1, -0x68a0 | a1 += -0x68a0;
0x00067a48 lw fp, (s0) | fp = *(s0);
0x00067a4c jalr t9 | t9 ();
0x00067a50 lw gp, 0x10(sp) | gp = *(var_10h);
0x00067a54 move a1, v0 | a1 = v0;
0x00067a58 lw t9, -0x7d70(gp) | t9 = sym.ap_is_chunked;
0x00067a5c move a0, fp | a0 = fp;
0x00067a60 jalr t9 | t9 ();
0x00067a64 lw gp, 0x10(sp) | gp = *(var_10h);
| if (v0 != 0) {
0x00067a68 bnez v0, 0x677f4 | goto label_9;
| }
0x00067a6c lw v0, 0x28(s0) | v0 = *((s0 + 10));
0x00067a70 slti v0, v0, 0x3e9 | v0 = (v0 < 0x3e9) ? 1 : 0;
| if (v0 != 0) {
0x00067a74 bnez v0, 0x679b8 | goto label_6;
| }
0x00067a78 nop |
0x00067a7c sw s5, 0x88(s0) | *((s0 + 34)) = s5;
0x00067a80 b 0x677f4 | goto label_9;
| label_15:
0x00067a84 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x00067a88 jalr t9 | t9 ();
0x00067a8c nop |
| label_23:
0x00067a90 lw a1, -0x7fac(gp) | a1 = *(gp);
0x00067a94 lw s1, -0x7fac(gp) | s1 = *(gp);
| /* str.timeout_d */
0x00067a98 addiu a1, a1, 0x52fc | a1 += aav.0x000052fc;
0x00067a9c jalr t9 | t9 ();
0x00067aa0 lw gp, 0x10(sp) | gp = *(var_10h);
0x00067aa4 b 0x67970 | goto label_10;
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x5a2d4 */
| #include <stdint.h>
|
; (fcn) sym.ap_set_mutex () | void ap_set_mutex () {
0x0005a2d4 lui gp, 5 |
0x0005a2d8 addiu gp, gp, -0x73b4 |
0x0005a2dc addu gp, gp, t9 | gp += t9;
0x0005a2e0 addiu sp, sp, -0x60 |
0x0005a2e4 lw t9, -0x7e54(gp) | t9 = sym.ap_check_cmd_context;
0x0005a2e8 sw s3, 0x44(sp) | *(var_44h) = s3;
0x0005a2ec lw s3, -0x7534(gp) | s3 = *(gp);
0x0005a2f0 sw gp, 0x18(sp) | *(var_18h) = gp;
0x0005a2f4 sw s2, 0x40(sp) | *(var_40h) = s2;
0x0005a2f8 lw v0, (s3) | v0 = *(s3);
0x0005a2fc sw s1, 0x3c(sp) | *(var_3ch) = s1;
0x0005a300 sw v0, 0x34(sp) | *(var_34h) = v0;
0x0005a304 lw v0, 0x28(a0) | v0 = *((a0 + 10));
0x0005a308 sw s0, 0x38(sp) | *(var_38h) = s0;
0x0005a30c sw ra, 0x5c(sp) | *(var_5ch) = ra;
0x0005a310 sw fp, 0x58(sp) | *(var_58h) = fp;
0x0005a314 sw s7, 0x54(sp) | *(var_54h) = s7;
0x0005a318 sw s6, 0x50(sp) | *(var_50h) = s6;
0x0005a31c sw s5, 0x4c(sp) | *(var_4ch) = s5;
0x0005a320 sw s4, 0x48(sp) | *(var_48h) = s4;
0x0005a324 addiu a1, zero, 0x5f | a1 = 0x5f;
0x0005a328 sw a2, 0x24(sp) | *(var_24h) = a2;
0x0005a32c sw v0, 0x20(sp) | *(var_20h) = v0;
0x0005a330 move s0, a0 | s0 = a0;
0x0005a334 lw s2, 0x2c(a0) | s2 = *((a0 + 11));
0x0005a338 jalr t9 | t9 ();
0x0005a33c move s1, v0 | s1 = v0;
0x0005a340 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a344 beqz v0, 0x5a388 |
| while (1) {
| label_0:
0x0005a348 lw a0, 0x34(sp) | a0 = *(var_34h);
0x0005a34c lw v1, (s3) | v1 = *(s3);
0x0005a350 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0005a354 bne a0, v1, 0x5a5f8 | goto label_4;
| }
0x0005a358 lw ra, 0x5c(sp) | ra = *(var_5ch);
0x0005a35c lw fp, 0x58(sp) | fp = *(var_58h);
0x0005a360 lw s7, 0x54(sp) | s7 = *(var_54h);
0x0005a364 lw s6, 0x50(sp) | s6 = *(var_50h);
0x0005a368 lw s5, 0x4c(sp) | s5 = *(var_4ch);
0x0005a36c lw s4, 0x48(sp) | s4 = *(var_48h);
0x0005a370 lw s3, 0x44(sp) | s3 = *(var_44h);
0x0005a374 lw s2, 0x40(sp) | s2 = *(var_40h);
0x0005a378 lw s1, 0x3c(sp) | s1 = *(var_3ch);
0x0005a37c lw s0, 0x38(sp) | s0 = *(var_38h);
0x0005a380 addiu sp, sp, 0x60 |
0x0005a384 jr ra | return v1;
0x0005a388 lw t9, -0x7f00(gp) | t9 = sym.ap_getword_conf;
0x0005a38c addiu s5, sp, 0x24 | s5 = sp + 0x24;
0x0005a390 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x0005a394 move a1, s5 | a1 = s5;
0x0005a398 jalr t9 | t9 ();
0x0005a39c move s4, v0 | s4 = v0;
0x0005a3a0 lb v0, (v0) | v0 = *(v0);
0x0005a3a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0005a3a8 bnez v0, 0x5a3b8 | goto label_5;
| }
0x0005a3ac lw s1, -0x7fac(gp) | s1 = *(gp);
| /* str.Mutex_requires_at_least_a_mechanism_argument__Mutex_mechanisms_are:_none__default__flock:_path_to_file__fcntl:_path_to_file__file:_path_to_file__sysvsem__sem_ */
0x0005a3b0 addiu s1, s1, 0x2048 | s1 += 0x2048;
0x0005a3b4 b 0x5a348 |
| }
| label_5:
0x0005a3b8 lw t9, -0x7938(gp) | t9 = sym.ap_parse_mutex;
0x0005a3bc lw a1, 0x20(sp) | a1 = *(var_20h);
0x0005a3c0 addiu a3, sp, 0x30 | a3 = sp + 0x30;
0x0005a3c4 addiu a2, sp, 0x2c | a2 = sp + 0x2c;
0x0005a3c8 move a0, s4 | a0 = s4;
0x0005a3cc bal 0x5a080 | sym_ap_parse_mutex ();
0x0005a3d0 lui v1, 1 | v1 = 0x10000;
0x0005a3d4 move s7, v0 | s7 = v0;
| /* esilref: 't_name_virtual_host' */
0x0005a3d8 addiu v0, v1, 0x1187 | v0 = v1 + 0x1187;
0x0005a3dc lw gp, 0x18(sp) | gp = *(var_18h);
| if (s7 == v0) {
0x0005a3e0 beq s7, v0, 0x5a5c8 | goto label_6;
| }
| /* esilref: 'hack_ap_set_name_virtual_host' */
0x0005a3e4 addiu v1, v1, 0x117d | v1 += 0x117d;
0x0005a3e8 lw a1, -0x7fac(gp) | a1 = *(gp);
| if (s7 == v1) {
0x0005a3ec beq s7, v1, 0x5a53c | goto label_7;
| }
0x0005a3f0 lw a1, 0x30(sp) | a1 = *(var_30h);
0x0005a3f4 lw t9, -0x7bc0(gp) | t9 = sym.ap_is_directory;
| if (a1 != 0) {
0x0005a3f8 beqz a1, 0x5a40c |
0x0005a3fc move a0, s2 | a0 = s2;
0x0005a400 jalr t9 | t9 ();
0x0005a404 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005a408 beqz v0, 0x5a538 | goto label_8;
| }
| }
0x0005a40c lw t9, -0x775c(gp) | t9 = sym.imp.apr_array_make;
0x0005a410 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x0005a414 addiu a2, zero, 4 | a2 = 4;
0x0005a418 addiu a1, zero, 4 | a1 = 4;
0x0005a41c jalr t9 | t9 ();
0x0005a420 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a424 move fp, v0 | fp = v0;
0x0005a428 move s4, zero | s4 = 0;
0x0005a42c lw s6, -0x7fac(gp) | s6 = *(gp);
| /* str.omitpid */
0x0005a430 addiu s6, s6, 0x2138 | s6 += 0x2138;
0x0005a434 b 0x5a468 |
| while (v0 != 0) {
0x0005a438 lw a0, 0x28(s0) | a0 = *((s0 + 10));
0x0005a43c move a1, s5 | a1 = s5;
0x0005a440 jalr t9 | t9 ();
0x0005a444 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a448 move a1, s6 | a1 = s6;
0x0005a44c move a0, v0 | a0 = v0;
0x0005a450 lw t9, -0x7564(gp) | t9 = sym.imp.strcasecmp;
0x0005a454 move s2, v0 | s2 = v0;
0x0005a458 jalr t9 | t9 ();
0x0005a45c lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0005a460 bnez v0, 0x5a520 | goto label_9;
| }
0x0005a464 addiu s4, zero, 1 | s4 = 1;
| label_2:
0x0005a468 lw v0, 0x24(sp) | v0 = *(var_24h);
0x0005a46c lb v0, (v0) | v0 = *(v0);
0x0005a470 lw t9, -0x7f00(gp) | t9 = sym.ap_getword_conf;
0x0005a474 bnez v0, 0x5a438 |
| }
0x0005a478 lw t9, -0x72ec(gp) | t9 = sym.imp.apr_is_empty_array;
0x0005a47c move a0, fp | a0 = fp;
0x0005a480 jalr t9 | t9 ();
0x0005a484 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 != 0) {
0x0005a488 bnez v0, 0x5a584 | goto label_10;
| }
| label_3:
0x0005a48c lw s2, -0x7f14(gp) | s2 = *((gp - 8133));
0x0005a490 addiu s0, zero, 1 | s0 = 1;
0x0005a494 addiu s5, zero, 0x4e29 | s5 = 0x4e29;
| label_1:
0x0005a498 lw t9, -0x7370(gp) | t9 = *(gp);
0x0005a49c move a0, fp | a0 = fp;
0x0005a4a0 jalr t9 | t9 ();
0x0005a4a4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005a4a8 beqz v0, 0x5a348 | goto label_0;
| }
| do {
0x0005a4ac lw s6, (v0) | s6 = *(v0);
0x0005a4b0 lw t9, -0x7200(gp) | t9 = sym.imp.apr_hash_get;
0x0005a4b4 lw a0, -0x33b0(s2) | a0 = *((s2 - 3308));
0x0005a4b8 addiu a2, zero, -1 | a2 = -1;
0x0005a4bc move a1, s6 | a1 = s6;
0x0005a4c0 jalr t9 | t9 ();
0x0005a4c4 lw gp, 0x18(sp) | gp = *(var_18h);
| if (v0 == 0) {
0x0005a4c8 beqz v0, 0x5a560 | goto label_11;
| }
0x0005a4cc sw zero, 8(v0) | *((v0 + 2)) = 0;
0x0005a4d0 sw s4, 0xc(v0) | *((v0 + 3)) = s4;
0x0005a4d4 sw s0, 4(v0) | *((v0 + 1)) = s0;
| if (s7 != s5) {
0x0005a4d8 bne s7, s5, 0x5a508 | goto label_12;
| }
0x0005a4dc lw v1, (v0) | v1 = *(v0);
0x0005a4e0 andi v1, v1, 1 | v1 &= 1;
0x0005a4e4 lw t9, -0x7370(gp) | t9 = *(gp);
| if (v1 == 0) {
0x0005a4e8 beqz v1, 0x5a5a4 | goto label_13;
| }
0x0005a4ec sw s0, 8(v0) | *((v0 + 2)) = s0;
0x0005a4f0 move a0, fp | a0 = fp;
0x0005a4f4 jalr t9 | t9 ();
0x0005a4f8 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a4fc bnez v0, 0x5a4ac |
| } while (v0 != 0);
0x0005a500 b 0x5a348 | goto label_0;
0x0005a504 nop |
| label_12:
0x0005a508 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0005a50c lw v1, 0x30(sp) | v1 = *(var_30h);
0x0005a510 sw a0, 0x10(v0) | *((v0 + 4)) = a0;
| if (v1 == 0) {
0x0005a514 beqz v1, 0x5a498 | goto label_1;
| }
0x0005a518 sw v1, 0x14(v0) | *((v0 + 5)) = v1;
0x0005a51c b 0x5a498 | goto label_1;
| label_9:
0x0005a520 lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
0x0005a524 move a0, fp | a0 = fp;
0x0005a528 jalr t9 | t9 ();
0x0005a52c lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a530 sw s2, (v0) | *(v0) = s2;
0x0005a534 b 0x5a468 | goto label_2;
| label_8:
0x0005a538 lw a1, -0x7fac(gp) | a1 = *(gp);
| label_7:
0x0005a53c lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x0005a540 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0005a544 move a3, zero | a3 = 0;
0x0005a548 move a2, s4 | a2 = s4;
| /* str.Invalid_Mutex_directory_in_argument_ */
0x0005a54c addiu a1, a1, 0x2110 | a1 += 0x2110;
0x0005a550 jalr t9 | t9 ();
0x0005a554 move s1, v0 | s1 = v0;
0x0005a558 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a55c b 0x5a348 | goto label_0;
| label_11:
0x0005a560 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005a564 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0005a568 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0005a56c move a2, s6 | a2 = s6;
| /* str.Mutex_type__s_is_not_valid */
0x0005a570 addiu a1, a1, 0x2140 | a1 += 0x2140;
0x0005a574 jalr t9 | t9 ();
0x0005a578 move s1, v0 | s1 = v0;
0x0005a57c lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a580 b 0x5a348 | goto label_0;
| label_10:
0x0005a584 lw t9, -0x7324(gp) | t9 = sym.imp.apr_array_push;
0x0005a588 move a0, fp | a0 = fp;
0x0005a58c jalr t9 | t9 ();
0x0005a590 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a594 lw v1, -0x7fac(gp) | v1 = *(gp);
| /* esilref: 'default' */
0x0005a598 addiu v1, v1, 0x1a88 | v1 += 0x1a88;
0x0005a59c sw v1, (v0) | *(v0) = v1;
0x0005a5a0 b 0x5a48c | goto label_3;
| label_13:
0x0005a5a4 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005a5a8 lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0005a5ac lw a0, 0x20(sp) | a0 = *(var_20h);
0x0005a5b0 move a2, s6 | a2 = s6;
| /* str.None_is_not_allowed_for_mutex_type__s */
0x0005a5b4 addiu a1, a1, 0x215c | a1 += aav.0x0000215c;
0x0005a5b8 jalr t9 | t9 ();
0x0005a5bc move s1, v0 | s1 = v0;
0x0005a5c0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a5c4 b 0x5a348 | goto label_0;
| label_6:
0x0005a5c8 lw a3, -0x7fac(gp) | a3 = *(gp);
0x0005a5cc lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005a5d0 lw t9, -0x76e8(gp) | t9 = sym.imp.apr_pstrcat;
0x0005a5d4 lw a0, 0x20(sp) | a0 = *(var_20h);
0x0005a5d8 sw zero, 0x10(sp) | *(var_10h) = 0;
| /* esilref: ' (Mutex mechanisms are: 'none', 'default', 'flock:/path/to/file', 'fcntl:/path/to/file', 'file:/path/to/file', 'sysvsem', 'sem')' */
0x0005a5dc addiu a3, a3, 0x2074 | a3 += aav.0x00002074;
0x0005a5e0 move a2, s4 | a2 = s4;
| /* str.Invalid_Mutex_argument_ */
0x0005a5e4 addiu a1, a1, 0x20f8 | a1 += 0x20f8;
0x0005a5e8 jalr t9 | t9 ();
0x0005a5ec move s1, v0 | s1 = v0;
0x0005a5f0 lw gp, 0x18(sp) | gp = *(var_18h);
0x0005a5f4 b 0x5a348 | goto label_0;
| label_4:
0x0005a5f8 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0005a5fc jalr t9 | t9 ();
0x0005a600 nop |
| }
; assembly | /* r2dec pseudo code output */
| /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/sbin/httpd @ 0x5b4c4 */
| #include <stdint.h>
|
; (fcn) sym.ap_signal_server () | void ap_signal_server () {
0x0005b4c4 lui gp, 4 |
0x0005b4c8 addiu gp, gp, 0x7a5c |
0x0005b4cc addu gp, gp, t9 | gp += t9;
0x0005b4d0 addiu sp, sp, -0x50 |
0x0005b4d4 lw t9, -0x792c(gp) | t9 = sym.ap_read_pid;
0x0005b4d8 sw s0, 0x30(sp) | *(var_30h) = s0;
0x0005b4dc lw s0, -0x7534(gp) | s0 = *(gp);
0x0005b4e0 sw s3, 0x3c(sp) | *(var_3ch) = s3;
0x0005b4e4 lw s3, -0x7e78(gp) | s3 = *(gp);
0x0005b4e8 lw v0, (s0) | v0 = *(s0);
0x0005b4ec sw gp, 0x20(sp) | *(var_20h) = gp;
0x0005b4f0 sw s1, 0x34(sp) | *(var_34h) = s1;
0x0005b4f4 move s1, a1 | s1 = a1;
0x0005b4f8 lw a1, (s3) | a1 = *(s3);
0x0005b4fc sw s2, 0x38(sp) | *(var_38h) = s2;
0x0005b500 sw ra, 0x4c(sp) | *(var_4ch) = ra;
0x0005b504 sw s6, 0x48(sp) | *(var_48h) = s6;
0x0005b508 sw s5, 0x44(sp) | *(var_44h) = s5;
0x0005b50c sw s4, 0x40(sp) | *(var_40h) = s4;
0x0005b510 move s2, a0 | s2 = a0;
0x0005b514 sw zero, (a0) | *(a0) = 0;
0x0005b518 addiu a2, sp, 0x28 | a2 = sp + 0x28;
0x0005b51c move a0, s1 | a0 = s1;
0x0005b520 sw v0, 0x2c(sp) | *(var_2ch) = v0;
0x0005b524 bal 0x52478 | sym_ap_read_pid ();
0x0005b528 nop |
0x0005b52c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b530 beqz v0, 0x5b6a8 | goto label_6;
| }
0x0005b534 addiu v1, zero, 2 | v1 = 2;
0x0005b538 lw v1, (s3) | v1 = *(s3);
| if (v0 != v1) {
0x0005b53c bnel v0, v1, 0x5b5fc |
0x0005b540 lw s3, -0x7fac(gp) | s3 = *(gp);
| /* str.httpd__no_pid_file__not_running */
0x0005b544 addiu s3, s3, 0x245c | s3 += 0x245c;
| label_3:
0x0005b548 lw s4, -0x7f14(gp) | s4 = *((gp - 8133));
0x0005b54c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b550 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x0005b554 lw s1, -0x3398(s4) | s1 = *(s4);
| /* str.start */
0x0005b558 addiu a1, a1, 0x2508 | a1 += 0x2508;
0x0005b55c move a0, s1 | a0 = s1;
0x0005b560 jalr t9 | t9 ();
0x0005b564 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b568 bnez v0, 0x5b734 | goto label_7;
| }
0x0005b56c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b570 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.stop */
0x0005b574 addiu a1, a1, 0x256c | a1 += 0x256c;
0x0005b578 move a0, s1 | a0 = s1;
0x0005b57c jalr t9 | t9 ();
0x0005b580 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b584 beqz v0, 0x5b71c | goto label_0;
| }
0x0005b588 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b58c lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.restart */
0x0005b590 addiu a1, a1, 0x2574 | a1 += 0x2574;
0x0005b594 move a0, s1 | a0 = s1;
0x0005b598 jalr t9 | t9 ();
0x0005b59c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b5a0 bnez v0, 0x5b7e8 | goto label_8;
| }
| label_1:
0x0005b5a4 lw s1, -0x7fac(gp) | s1 = *(gp);
0x0005b5a8 lw t9, -0x7678(gp) | t9 = sym.imp.puts;
| /* str.httpd_not_running__trying_to_start */
0x0005b5ac addiu a0, s1, 0x252c | a0 = s1 + 0x252c;
0x0005b5b0 jalr t9 | t9 ();
0x0005b5b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b5b8 lw s2, -0x3398(s4) | s2 = *(s4);
0x0005b5bc lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b5c0 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful */
0x0005b5c4 addiu a1, a1, 0x2550 | a1 += 0x2550;
0x0005b5c8 move a0, s2 | a0 = s2;
0x0005b5cc jalr t9 | t9 ();
0x0005b5d0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b5d4 beqz v0, 0x5b808 | goto label_9;
| }
0x0005b5d8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b5dc lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful_stop */
0x0005b5e0 addiu a1, a1, 0x255c | a1 += 0x255c;
0x0005b5e4 move a0, s2 | a0 = s2;
0x0005b5e8 jalr t9 | t9 ();
0x0005b5ec lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b5f0 beqz v0, 0x5b71c | goto label_0;
| }
| label_4:
0x0005b5f4 move s1, zero | s1 = 0;
0x0005b5f8 b 0x5b670 |
| } else {
0x0005b5fc lw s1, -0x7fac(gp) | s1 = *(gp);
0x0005b600 sw v1, 0x1c(sp) | *(var_1ch) = v1;
0x0005b604 lw v1, -0x7fac(gp) | v1 = *(gp);
0x0005b608 lw t9, -0x7fb0(gp) | t9 = sym.ap_log_error_;
| /* str.AH00058:_Error_retrieving_pid_file__s */
0x0005b60c addiu v1, v1, 0x2484 | v1 += 0x2484;
| /* str._usr_src_debug_apache2_2.4.57_r0_httpd_2.4.57_server_mpm_unix.c */
0x0005b610 addiu a0, s1, 0x22a8 | a0 = s1 + aav.0x000022a8;
0x0005b614 addiu a3, zero, 0x40 | a3 = 0x40;
0x0005b618 move a2, zero | a2 = 0;
0x0005b61c addiu a1, zero, 0x319 | a1 = 0x319;
0x0005b620 sw v1, 0x18(sp) | *(var_18h) = v1;
0x0005b624 sw v0, 0x10(sp) | *(var_10h) = v0;
0x0005b628 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0005b62c bal 0x515e8 | sym_ap_log_error_ ();
0x0005b630 lw gp, 0x20(sp) | gp = *(var_20h);
| /* str._usr_src_debug_apache2_2.4.57_r0_httpd_2.4.57_server_mpm_unix.c */
0x0005b634 addiu a0, s1, 0x22a8 | a0 = s1 + aav.0x000022a8;
0x0005b638 sw zero, 0x14(sp) | *(var_14h) = 0;
0x0005b63c lw v0, -0x7fac(gp) | v0 = *(gp);
0x0005b640 lw t9, -0x7fb0(gp) | t9 = sym.ap_log_error_;
| /* str.AH00059:_Remove_it_before_continuing_if_it_is_corrupted. */
0x0005b644 addiu v0, v0, 0x24ac | v0 += 0x24ac;
0x0005b648 sw v0, 0x18(sp) | *(var_18h) = v0;
0x0005b64c sw zero, 0x10(sp) | *(var_10h) = 0;
0x0005b650 addiu a3, zero, 0x40 | a3 = 0x40;
0x0005b654 move a2, zero | a2 = 0;
0x0005b658 addiu a1, zero, 0x31b | a1 = 0x31b;
0x0005b65c bal 0x515e8 | sym_ap_log_error_ ();
0x0005b660 addiu v0, zero, 1 | v0 = 1;
0x0005b664 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b668 addiu s1, zero, 1 | s1 = 1;
0x0005b66c sw v0, (s2) | *(s2) = v0;
| }
| do {
| label_2:
0x0005b670 lw a0, 0x2c(sp) | a0 = *(var_2ch);
0x0005b674 lw v1, (s0) | v1 = *(s0);
0x0005b678 move v0, s1 | v0 = s1;
| if (a0 != v1) {
0x0005b67c bne a0, v1, 0x5b940 | goto label_10;
| }
0x0005b680 lw ra, 0x4c(sp) | ra = *(var_4ch);
0x0005b684 lw s6, 0x48(sp) | s6 = *(var_48h);
0x0005b688 lw s5, 0x44(sp) | s5 = *(var_44h);
0x0005b68c lw s4, 0x40(sp) | s4 = *(var_40h);
0x0005b690 lw s3, 0x3c(sp) | s3 = *(var_3ch);
0x0005b694 lw s2, 0x38(sp) | s2 = *(var_38h);
0x0005b698 lw s1, 0x34(sp) | s1 = *(var_34h);
0x0005b69c lw s0, 0x30(sp) | s0 = *(var_30h);
0x0005b6a0 addiu sp, sp, 0x50 |
0x0005b6a4 jr ra | return v0;
| label_6:
0x0005b6a8 lw t9, -0x7224(gp) | t9 = sym.imp.getpid;
0x0005b6ac jalr t9 | t9 ();
0x0005b6b0 nop |
0x0005b6b4 lw a2, 0x28(sp) | a2 = *(var_28h);
0x0005b6b8 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == a2) {
0x0005b6bc beq v0, a2, 0x5b7c8 | goto label_11;
| }
0x0005b6c0 lw t9, -0x7704(gp) | t9 = sym.imp.kill;
0x0005b6c4 move a1, zero | a1 = 0;
0x0005b6c8 move a0, a2 | a0 = a2;
0x0005b6cc jalr t9 | t9 ();
0x0005b6d0 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b6d4 bnez v0, 0x5b7c4 | goto label_12;
| }
0x0005b6d8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b6dc lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
0x0005b6e0 lw a2, 0x28(sp) | a2 = *(var_28h);
0x0005b6e4 move a0, s1 | a0 = s1;
0x0005b6e8 lw s4, -0x7f14(gp) | s4 = *((gp - 8133));
| /* str.httpd__pid__d__already_running */
0x0005b6ec addiu a1, a1, 0x24e8 | a1 += 0x24e8;
0x0005b6f0 jalr t9 | t9 ();
0x0005b6f4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b6f8 lw s1, -0x3398(s4) | s1 = *(s4);
0x0005b6fc move s3, v0 | s3 = v0;
0x0005b700 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b704 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.start */
0x0005b708 addiu a1, a1, 0x2508 | a1 += 0x2508;
0x0005b70c move a0, s1 | a0 = s1;
0x0005b710 jalr t9 | t9 ();
0x0005b714 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b718 bnez v0, 0x5b860 | goto label_13;
| }
| label_0:
0x0005b71c lw t9, -0x7678(gp) | t9 = sym.imp.puts;
0x0005b720 move a0, s3 | a0 = s3;
0x0005b724 jalr t9 | t9 ();
0x0005b728 addiu s1, zero, 1 | s1 = 1;
0x0005b72c lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b730 b 0x5b670 |
| } while (1);
| label_7:
0x0005b734 lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str.noarg */
0x0005b738 addiu v0, v0, 0x247c | v0 += 0x247c;
0x0005b73c lw a1, -0x7fac(gp) | a1 = *(gp);
| if (s1 == v0) {
0x0005b740 beq s1, v0, 0x5b83c | goto label_14;
| }
0x0005b744 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.stop */
0x0005b748 addiu a1, a1, 0x256c | a1 += 0x256c;
0x0005b74c move a0, s1 | a0 = s1;
0x0005b750 jalr t9 | t9 ();
0x0005b754 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b758 beqz v0, 0x5b71c | goto label_0;
| }
0x0005b75c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b760 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.restart */
0x0005b764 addiu a1, a1, 0x2574 | a1 += 0x2574;
0x0005b768 move a0, s1 | a0 = s1;
0x0005b76c jalr t9 | t9 ();
0x0005b770 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b774 beqz v0, 0x5b5a4 | goto label_1;
| }
0x0005b778 move s1, zero | s1 = 0;
| label_5:
0x0005b77c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b780 lw s6, -0x3398(s4) | s6 = *(s4);
0x0005b784 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful */
0x0005b788 addiu a1, a1, 0x2550 | a1 += 0x2550;
0x0005b78c move a0, s6 | a0 = s6;
0x0005b790 jalr t9 | t9 ();
0x0005b794 move s5, v0 | s5 = v0;
0x0005b798 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b79c bnez v0, 0x5b8dc | goto label_15;
| }
0x0005b7a0 lw t9, -0x7704(gp) | t9 = sym.imp.kill;
| if (s1 != 0) {
0x0005b7a4 beqz s1, 0x5b804 |
0x0005b7a8 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0005b7ac addiu a1, zero, 0x10 | a1 = 0x10;
0x0005b7b0 jalr t9 | t9 ();
0x0005b7b4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 < 0) {
0x0005b7b8 bltz v0, 0x5b8bc | goto label_16;
| }
0x0005b7bc sw s5, (s2) | *(s2) = s5;
0x0005b7c0 b 0x5b670 | goto label_2;
| label_12:
0x0005b7c4 lw a2, 0x28(sp) | a2 = *(var_28h);
| label_11:
0x0005b7c8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b7cc lw t9, -0x7540(gp) | t9 = sym.imp.apr_psprintf
| /* str.httpd__pid__d___not_running */
0x0005b7d0 addiu a1, a1, 0x2510 | a1 += 0x2510;
0x0005b7d4 move a0, s1 | a0 = s1;
0x0005b7d8 jalr t9 | t9 ();
0x0005b7dc move s3, v0 | s3 = v0;
0x0005b7e0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b7e4 b 0x5b548 | goto label_3;
| label_8:
0x0005b7e8 lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b7ec lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful */
0x0005b7f0 addiu a1, a1, 0x2550 | a1 += 0x2550;
0x0005b7f4 move a0, s1 | a0 = s1;
0x0005b7f8 jalr t9 | t9 ();
0x0005b7fc lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b800 bnez v0, 0x5b83c | goto label_14;
| }
| }
0x0005b804 lw s1, -0x7fac(gp) | s1 = *(gp);
| label_9:
0x0005b808 lw t9, -0x7678(gp) | t9 = sym.imp.puts;
| /* str.httpd_not_running__trying_to_start */
0x0005b80c addiu a0, s1, 0x252c | a0 = s1 + 0x252c;
0x0005b810 jalr t9 | t9 ();
0x0005b814 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b818 lw a0, -0x3398(s4) | a0 = *(s4);
0x0005b81c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b820 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful_stop */
0x0005b824 addiu a1, a1, 0x255c | a1 += 0x255c;
0x0005b828 jalr t9 | t9 ();
0x0005b82c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b830 beqz v0, 0x5b71c | goto label_0;
| }
0x0005b834 move s1, zero | s1 = 0;
0x0005b838 b 0x5b670 | goto label_2;
| label_14:
0x0005b83c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b840 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful_stop */
0x0005b844 addiu a1, a1, 0x255c | a1 += 0x255c;
0x0005b848 move a0, s1 | a0 = s1;
0x0005b84c jalr t9 | t9 ();
0x0005b850 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 == 0) {
0x0005b854 beqz v0, 0x5b71c | goto label_0;
| }
0x0005b858 move s1, zero | s1 = 0;
0x0005b85c b 0x5b670 | goto label_2;
| label_13:
0x0005b860 lw v0, -0x7fac(gp) | v0 = *(gp);
| /* str.noarg */
0x0005b864 addiu v0, v0, 0x247c | v0 += 0x247c;
0x0005b868 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| if (s1 == v0) {
0x0005b86c beq s1, v0, 0x5b71c | goto label_0;
| }
0x0005b870 lw a1, -0x7fac(gp) | a1 = *(gp);
| /* str.stop */
0x0005b874 addiu a1, a1, 0x256c | a1 += 0x256c;
0x0005b878 move a0, s1 | a0 = s1;
0x0005b87c jalr t9 | t9 ();
0x0005b880 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b884 bnez v0, 0x5b94c | goto label_17;
| }
0x0005b888 lw t9, -0x7704(gp) | t9 = sym.imp.kill;
0x0005b88c lw a0, 0x28(sp) | a0 = *(var_28h);
0x0005b890 addiu a1, zero, 0xf | a1 = 0xf;
0x0005b894 jalr t9 | t9 ();
0x0005b898 addiu s1, zero, 1 | s1 = 1;
0x0005b89c lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x0005b8a0 bgez v0, 0x5b670 | goto label_2;
| }
0x0005b8a4 lw t9, -0x7944(gp) | t9 = *(gp);
| /* fcn.0005b020 */
0x0005b8a8 addiu t9, t9, -0x4fe0 | t9 += -0x4fe0;
0x0005b8ac bal 0x5b020 | fcn_0005b020 ();
0x0005b8b0 nop |
0x0005b8b4 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b8b8 b 0x5b670 | goto label_2;
| label_16:
0x0005b8bc lw t9, -0x7944(gp) | t9 = *(gp);
| /* fcn.0005b020 */
0x0005b8c0 addiu t9, t9, -0x4fe0 | t9 += -0x4fe0;
0x0005b8c4 bal 0x5b020 | fcn_0005b020 ();
0x0005b8c8 nop |
0x0005b8cc move s5, v0 | s5 = v0;
0x0005b8d0 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b8d4 sw s5, (s2) | *(s2) = s5;
0x0005b8d8 b 0x5b670 | goto label_2;
| label_15:
0x0005b8dc lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b8e0 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
| /* str.graceful_stop */
0x0005b8e4 addiu a1, a1, 0x255c | a1 += 0x255c;
0x0005b8e8 move a0, s6 | a0 = s6;
0x0005b8ec jalr t9 | t9 ();
0x0005b8f0 move s4, v0 | s4 = v0;
0x0005b8f4 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b8f8 bnez v0, 0x5b5f4 | goto label_4;
| }
0x0005b8fc lw t9, -0x7704(gp) | t9 = sym.imp.kill;
| if (s1 == 0) {
0x0005b900 beqz s1, 0x5b71c | goto label_0;
| }
0x0005b904 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0005b908 addiu a1, zero, 0x14 | a1 = 0x14;
0x0005b90c jalr t9 | t9 ();
0x0005b910 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x0005b914 bltz v0, 0x5b920 |
0x0005b918 sw s4, (s2) | *(s2) = s4;
0x0005b91c b 0x5b670 | goto label_2;
| }
0x0005b920 lw t9, -0x7944(gp) | t9 = *(gp);
| /* fcn.0005b020 */
0x0005b924 addiu t9, t9, -0x4fe0 | t9 += -0x4fe0;
0x0005b928 bal 0x5b020 | fcn_0005b020 ();
0x0005b92c nop |
0x0005b930 move s4, v0 | s4 = v0;
0x0005b934 lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b938 sw s4, (s2) | *(s2) = s4;
0x0005b93c b 0x5b670 | goto label_2;
| label_10:
0x0005b940 lw t9, -0x75e8(gp) | t9 = sym.imp.__stack_chk_fail;
0x0005b944 jalr t9 | t9 ();
0x0005b948 nop |
| label_17:
0x0005b94c lw a1, -0x7fac(gp) | a1 = *(gp);
0x0005b950 lw t9, -0x7740(gp) | t9 = sym.imp.strcmp;
0x0005b954 move a0, s1 | a0 = s1;
| /* str.restart */
0x0005b958 addiu a1, a1, 0x2574 | a1 += 0x2574;
0x0005b95c jalr t9 | t9 ();
0x0005b960 move s1, v0 | s1 = v0;
0x0005b964 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 != 0) {
0x0005b968 beqz v0, 0x5b974 |
0x0005b96c addiu s1, zero, 1 | s1 = 1;
0x0005b970 b 0x5b77c | goto label_5;
| }
0x0005b974 lw t9, -0x7704(gp) | t9 = sym.imp.kill;
0x0005b978 lw a0, 0x28(sp) | a0 = *(var_28h);
0x0005b97c addiu a1, zero, 1 | a1 = 1;
0x0005b980 jalr t9 | t9 ();
0x0005b984 lw gp, 0x20(sp) | gp = *(var_20h);
| if (v0 >= 0) {
0x0005b988 bltz v0, 0x5b998 |
0x0005b98c sw s1, (s2) | *(s2) = s1;
0x0005b990 addiu s1, zero, 1 | s1 = 1;
0x0005b994 b 0x5b670 | goto label_2;
| }
0x0005b998 lw t9, -0x7944(gp) | t9 = *(gp);
| /* fcn.0005b020 */
0x0005b99c addiu t9, t9, -0x4fe0 | t9 += -0x4fe0;
0x0005b9a0 bal 0x5b020 | fcn_0005b020 ();
0x0005b9a4 nop |
0x0005b9a8 move s1, v0 | s1 = v0;
0x0005b9ac lw gp, 0x20(sp) | gp = *(var_20h);
0x0005b9b0 sw s1, (s2) | *(s2) = s1;
0x0005b9b4 addiu s1, zero, 1 | s1 = 1;
0x0005b9b8 b 0x5b670 | goto label_2;
| }
[*] Function sprintf used 33 times httpd