[*] Binary protection state of set.cgi

  
  	Full RELRO     Canary found      NX disabled  PIE enabled  No RPATH     No RUNPATH   No Symbols


[*] Function printf tear down of set.cgi

    ; assembly                           | /* r2dec pseudo code output */
                                         | /* /logs/firmware/unblob_extracted/firmware_extract/4325012-58052244.squashfs_v4_le_extract/usr/html/axis-cgi/geolocation/set.cgi @ 0x1300 */
                                         | #include <stdint.h>
                                         |  
    ; (fcn) main ()                      | int32_t main () {
                                         |     /* [13] -r-x section size 18864 named .text */
    0x00001300 lui gp, 2                 |     
    0x00001304 addiu gp, gp, -0x22f0     |     
    0x00001308 addu gp, gp, t9           |     gp += t9;
    0x0000130c addiu sp, sp, -0x200      |     
    0x00001310 lw t9, -0x7f14(gp)        |     t9 = sym.imp.memset;
    0x00001314 sw s5, 0x1ec(sp)          |     *(var_1ech) = s5;
    0x00001318 lw s5, -0x7ea8(gp)        |     s5 = *((gp - 8106));
    0x0000131c sw s2, 0x1e0(sp)          |     *(var_1e0h) = s2;
    0x00001320 addiu s2, sp, 0x74        |     s2 = sp + 0x74;
    0x00001324 lw v0, (s5)               |     v0 = *(s5);
    0x00001328 sw ra, 0x1fc(sp)          |     *(var_1fch) = ra;
    0x0000132c sw v0, 0x1d4(sp)          |     *(var_1d4h) = v0;
    0x00001330 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001334 addiu a2, zero, 0x15e     |     a2 = 0x15e;
    0x00001338 addiu v0, v0, 0x62cc      |     v0 += str.Invalid_parameter;
    0x0000133c sw v0, 0x68(sp)           |     *(var_68h) = v0;
    0x00001340 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001344 sw gp, 0x20(sp)           |     *(var_20h) = gp;
    0x00001348 addiu v0, v0, 0x62e0      |     v0 += str.Invalid_value;
    0x0000134c sw v0, 0x6c(sp)           |     *(var_6ch) = v0;
    0x00001350 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001354 move a0, s2               |     a0 = s2;
    0x00001358 addiu v0, v0, 0x62f0      |     v0 += str.Internal_error;
    0x0000135c sw s6, 0x1f0(sp)          |     *(var_1f0h) = s6;
    0x00001360 sw s4, 0x1e8(sp)          |     *(var_1e8h) = s4;
    0x00001364 sw s3, 0x1e4(sp)          |     *(var_1e4h) = s3;
    0x00001368 sw s1, 0x1dc(sp)          |     *(var_1dch) = s1;
    0x0000136c sw s0, 0x1d8(sp)          |     *(var_1d8h) = s0;
    0x00001370 sw fp, 0x1f8(sp)          |     *(var_1f8h) = fp;
    0x00001374 sw s7, 0x1f4(sp)          |     *(var_1f4h) = s7;
    0x00001378 move s0, a1               |     s0 = a1;
    0x0000137c sw zero, 0x3c(sp)         |     *(var_3ch) = 0;
    0x00001380 sw v0, 0x70(sp)           |     *(var_70h) = v0;
    0x00001384 sw zero, 0x40(sp)         |     *(var_40h) = 0;
    0x00001388 move a1, zero             |     a1 = 0;
    0x0000138c jalr t9                   |     t9 ();
    0x00001390 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001394 lw t9, -0x7ed0(gp)        |     t9 = sym.imp.CGI_save_env;
    0x00001398 addiu s3, sp, 0x40        |     s3 = sp + 0x40;
    0x0000139c jalr t9                   |     t9 ();
    0x000013a0 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000013a4 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000013a8 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.CGI_get_value;
    0x000013ac addiu a0, a0, 0x6300      |     a0 += 0x6300;
    0x000013b0 jalr t9                   |     t9 ();
    0x000013b4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000013b8 move s1, v0               |     s1 = v0;
    0x000013bc lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000013c0 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.CGI_get_value;
    0x000013c4 addiu a0, a0, 0x6304      |     a0 += 0x6304;
    0x000013c8 jalr t9                   |     t9 ();
    0x000013cc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000013d0 move s4, v0               |     s4 = v0;
    0x000013d4 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000013d8 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.CGI_get_value;
    0x000013dc addiu a0, a0, 0x6274      |     a0 += str.text;
    0x000013e0 jalr t9                   |     t9 ();
    0x000013e4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000013e8 sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
    0x000013ec lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000013f0 lw t9, -0x7ef4(gp)        |     t9 = sym.imp.CGI_get_value;
    0x000013f4 addiu a0, a0, 0x626c      |     a0 += str.heading;
    0x000013f8 jalr t9                   |     t9 ();
    0x000013fc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001400 move a0, s3               |     a0 = s3;
    0x00001404 lw t9, -0x7fd8(gp)        |     t9 = sym.dbus_init;
    0x00001408 move s6, v0               |     s6 = v0;
    0x0000140c bal 0x31f0                |     sym_dbus_init ();
    0x00001410 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001414 beqz v0, 0x1b0c           |         goto label_12;
                                         |     }
    0x00001418 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x0000141c lw t9, -0x7f50(gp)        |     t9 = sym.imp.strncmp;
    0x00001420 lw a0, (s0)               |     a0 = *(s0);
    0x00001424 addiu a2, zero, 3         |     a2 = 3;
    0x00001428 addiu a1, a1, 0x6308      |     a1 += 0x6308;
    0x0000142c jalr t9                   |     t9 ();
    0x00001430 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001434 beqz v0, 0x1820           |         goto label_13;
                                         |     }
    0x00001438 lw t9, -0x7f00(gp)        |     t9 = sym.imp.strlen;
                                         |     if (s1 == 0) {
    0x0000143c beqz s1, 0x1b78           |         goto label_14;
                                         |     }
    0x00001440 move a0, s1               |     a0 = s1;
    0x00001444 jalr t9                   |     t9 ();
    0x00001448 sltiu v0, v0, 0x33        |     v0 = (v0 < 0x33) ? 1 : 0;
    0x0000144c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x00001450 beqz v0, 0x15c8           |         
    0x00001454 lw a0, 0x3c(sp)           |         a0 = *(var_3ch);
                                         |         if (s4 != 0) {
    0x00001458 beqz s4, 0x1478           |             
    0x0000145c lw t9, -0x7f00(gp)        |             t9 = sym.imp.strlen;
                                         | label_2:
    0x00001460 move a0, s4               |             a0 = s4;
    0x00001464 jalr t9                   |             t9 ();
    0x00001468 sltiu v0, v0, 0x33        |             v0 = (v0 < 0x33) ? 1 : 0;
    0x0000146c lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |             if (v0 == 0) {
    0x00001470 beqz v0, 0x15c8           |                 goto label_4;
                                         |             }
    0x00001474 lw a0, 0x3c(sp)           |             a0 = *(var_3ch);
                                         |         }
    0x00001478 lw t9, -0x7f00(gp)        |         t9 = sym.imp.strlen;
                                         |         if (a0 != 0) {
    0x0000147c beqz a0, 0x1494           |             
                                         | label_3:
    0x00001480 jalr t9                   |             t9 ();
    0x00001484 nop                       |             
    0x00001488 sltiu v0, v0, 0x65        |             v0 = (v0 < 0x65) ? 1 : 0;
    0x0000148c lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |             if (v0 == 0) {
    0x00001490 beqz v0, 0x15c8           |                 goto label_4;
                                         |             }
                                         |         }
    0x00001494 lw t9, -0x7f00(gp)        |         t9 = sym.imp.strlen;
                                         |         if (s6 != 0) {
    0x00001498 beqz s6, 0x14b0           |             
    0x0000149c move a0, s6               |             a0 = s6;
    0x000014a0 jalr t9                   |             t9 ();
    0x000014a4 sltiu v0, v0, 0x33        |             v0 = (v0 < 0x33) ? 1 : 0;
    0x000014a8 lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |             if (v0 == 0) {
    0x000014ac beqz v0, 0x15c8           |                 goto label_4;
                                         |             }
                                         |         }
    0x000014b0 lw t9, -0x7fd4(gp)        |         t9 = sym.dbus_get_geolocation_position;
                                         |         if (s1 == 0) {
    0x000014b4 beqz s1, 0x20a8           |             goto label_15;
                                         |         }
    0x000014b8 addiu s0, sp, 0x58        |         s0 = sp + 0x58;
    0x000014bc addiu s7, sp, 0x50        |         s7 = sp + 0x50;
    0x000014c0 move a2, s3               |         a2 = s3;
    0x000014c4 move a1, s0               |         a1 = s0;
    0x000014c8 move a0, s7               |         a0 = s7;
    0x000014cc bal 0x3580                |         sym_dbus_get_geolocation_position ();
    0x000014d0 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 == 0) {
    0x000014d4 beqz v0, 0x20a0           |             goto label_16;
                                         |         }
    0x000014d8 lw t9, -0x7fd0(gp)        |         t9 = sym.geo_cgi_latitude_to_double;
    0x000014dc move a3, s3               |         a3 = s3;
    0x000014e0 move a2, s7               |         a2 = s7;
    0x000014e4 addiu a1, sp, 0x44        |         a1 = sp + 0x44;
    0x000014e8 move a0, s1               |         a0 = s1;
    0x000014ec bal 0x3018                |         sym_geo_cgi_latitude_to_double ();
    0x000014f0 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 != 0) {
    0x000014f4 beqz v0, 0x1564           |             
    0x000014f8 lw v1, 0x4c(sp)           |             v1 = *(var_4ch);
                                         |             if (s4 != 0) {
    0x000014fc beqz s4, 0x1524           |                 
                                         | label_10:
    0x00001500 lw t9, -0x7fcc(gp)        |                 t9 = sym.geo_cgi_longitude_to_double;
    0x00001504 move a3, s3               |                 a3 = s3;
    0x00001508 move a2, s0               |                 a2 = s0;
    0x0000150c addiu a1, sp, 0x4c        |                 a1 = sp + 0x4c;
    0x00001510 move a0, s4               |                 a0 = s4;
    0x00001514 bal 0x2ecc                |                 sym_geo_cgi_longitude_to_double ();
    0x00001518 lw gp, 0x20(sp)           |                 gp = *(var_20h);
                                         |                 if (v0 == 0) {
    0x0000151c beqz v0, 0x1564           |                     goto label_17;
                                         |                 }
    0x00001520 lw v1, 0x4c(sp)           |                 v1 = *(var_4ch);
                                         |             }
    0x00001524 lw v0, 0x44(sp)           |             v0 = *(var_44h);
    0x00001528 lw t9, -0x7fc8(gp)        |             t9 = sym.dbus_set_geolocation_position;
                                         |             if (v1 == v0) {
    0x0000152c beq v1, v0, 0x2068        |                 goto label_18;
                                         |             }
    0x00001530 lw a0, -0x7fdc(gp)        |             a0 = *((gp - 8183));
    0x00001534 lw t9, -0x7ec8(gp)        |             t9 = sym.imp.g_quark_from_static_string;
    0x00001538 addiu a0, a0, 0x6050      |             a0 += str.geolocation_cgi;
    0x0000153c jalr t9                   |             t9 ();
    0x00001540 lw gp, 0x20(sp)           |             gp = *(var_20h);
    0x00001544 addiu a2, zero, 2         |             a2 = 2;
    0x00001548 move a1, v0               |             a1 = v0;
    0x0000154c lw a3, -0x7fdc(gp)        |             a3 = *((gp - 8183));
    0x00001550 lw t9, -0x7f48(gp)        |             t9 = sym.imp.g_set_error_literal;
    0x00001554 addiu a3, a3, 0x6410      |             a3 += str.lng_and_lat_format_missmatch;
    0x00001558 move a0, s3               |             a0 = s3;
    0x0000155c jalr t9                   |             t9 ();
    0x00001560 lw gp, 0x20(sp)           |             gp = *(var_20h);
                                         |         }
                                         | label_17:
    0x00001564 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001568 lw v0, 0x40(sp)           |         v0 = *(var_40h);
    0x0000156c lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001570 addiu a0, a0, 0x6458      |         a0 += str.Cache_Control:_no_cache__no_store__max_age0;
    0x00001574 lw s6, 4(v0)              |         s6 = *((v0 + 1));
    0x00001578 jalr t9                   |         t9 ();
    0x0000157c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001580 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001584 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001588 addiu a0, a0, 0x6488      |         a0 += str.Pragma:_no_cache;
    0x0000158c jalr t9                   |         t9 ();
    0x00001590 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001594 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001598 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x0000159c addiu a0, a0, 0x649c      |         a0 += str.Expires:_Thu__01_Dec_1994_16:00:00_GMT;
    0x000015a0 jalr t9                   |         t9 ();
    0x000015a4 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x000015a8 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000015ac lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x000015b0 addiu a0, a0, 0x64c4      |         a0 += str.Content_Type:_application_xml_n;
    0x000015b4 jalr t9                   |         t9 ();
    0x000015b8 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (s6 == 0) {
    0x000015bc beqz s6, 0x1fa0           |             goto label_19;
                                         |         }
    0x000015c0 lw s1, -0x7fdc(gp)        |         s1 = *((gp - 8183));
    0x000015c4 b 0x1620                  |         
                                         |     } else {
                                         | label_4:
    0x000015c8 addiu s6, zero, 2         |         s6 = 2;
                                         | label_9:
    0x000015cc lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000015d0 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x000015d4 addiu a0, a0, 0x6458      |         a0 += str.Cache_Control:_no_cache__no_store__max_age0;
    0x000015d8 jalr t9                   |         t9 ();
    0x000015dc lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x000015e0 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000015e4 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x000015e8 addiu a0, a0, 0x6488      |         a0 += str.Pragma:_no_cache;
    0x000015ec jalr t9                   |         t9 ();
    0x000015f0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x000015f4 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x000015f8 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x000015fc addiu a0, a0, 0x649c      |         a0 += str.Expires:_Thu__01_Dec_1994_16:00:00_GMT;
    0x00001600 jalr t9                   |         t9 ();
    0x00001604 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001608 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x0000160c lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001610 addiu a0, a0, 0x64c4      |         a0 += str.Content_Type:_application_xml_n;
    0x00001614 jalr t9                   |         t9 ();
    0x00001618 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x0000161c lw s1, -0x7fdc(gp)        |         s1 = *((gp - 8183));
                                         |     }
    0x00001620 lw s4, -0x7fdc(gp)        |     s4 = *((gp - 8183));
    0x00001624 addiu s1, s1, 0x630c      |     s1 += str._PositionResponse_SchemaVersion_1.0___n;
    0x00001628 addiu s4, s4, 0x632c      |     s4 += 0x632c;
    0x0000162c addiu s0, sp, 0x9b        |     s0 = sp + 0x9b;
                                         | label_1:
    0x00001630 addiu v0, s6, -1          |     v0 = s6 + -1;
    0x00001634 sll v0, v0, 2             |     v0 <<= 2;
    0x00001638 addiu v1, sp, 0x1d8       |     v1 = sp + segment.DYNAMIC;
    0x0000163c addu v0, v1, v0           |     v0 = v1 + v0;
    0x00001640 lw s7, -0x170(v0)         |     s7 = *((v0 - 92));
    0x00001644 move v0, s2               |     v0 = s2;
                                         |     do {
    0x00001648 lw a2, (s1)               |         a2 = *(s1);
    0x0000164c lw a1, 4(s1)              |         a1 = *((s1 + 1));
    0x00001650 lw a0, 8(s1)              |         a0 = *((s1 + 2));
    0x00001654 lw v1, 0xc(s1)            |         v1 = *((s1 + 3));
    0x00001658 addiu s1, s1, 0x10        |         s1 += 0x10;
    0x0000165c sw a2, (v0)               |         *(v0) = a2;
    0x00001660 sw a1, 4(v0)              |         *((v0 + 1)) = a1;
    0x00001664 sw a0, 8(v0)              |         *((v0 + 2)) = a0;
    0x00001668 sw v1, 0xc(v0)            |         *((v0 + 3)) = v1;
    0x0000166c addiu v0, v0, 0x10        |         v0 += 0x10;
    0x00001670 bne s1, s4, 0x1648        |         
                                         |     } while (s1 != s4);
    0x00001674 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001678 lw a3, (s1)               |     a3 = *(s1);
    0x0000167c lw a2, 4(s1)              |     a2 = *((s1 + 1));
    0x00001680 addiu v1, a0, 0x64f0      |     v1 = a0 + str._Error__n_SetError__n;
    0x00001684 lw a1, 0x64f0(a0)         |     a1 = *(a0);
    0x00001688 sw a3, (v0)               |     *(v0) = a3;
    0x0000168c sw a2, 4(v0)              |     *((v0 + 1)) = a2;
    0x00001690 swl a1, 3(s0)             |     __asm ("swl a1, 3(s0)");
    0x00001694 lw a0, 4(v1)              |     a0 = *((v1 + 1));
    0x00001698 swr a1, (s0)              |     __asm ("swr a1, (s0)");
    0x0000169c swl a0, 7(s0)             |     __asm ("swl a0, 7(s0)");
    0x000016a0 lw v0, 8(v1)              |     v0 = *((v1 + 2));
    0x000016a4 swr a0, 4(s0)             |     __asm ("swr a0, 4(s0)");
    0x000016a8 swl v0, 0xb(s0)           |     __asm ("swl v0, 0xb(s0)");
    0x000016ac lw a0, 0xc(v1)            |     a0 = *((v1 + 3));
    0x000016b0 swr v0, 8(s0)             |     __asm ("swr v0, 8(s0)");
    0x000016b4 swl a0, 0xf(s0)           |     __asm ("swl a0, 0xf(s0)");
    0x000016b8 lw v0, 0x10(v1)           |     v0 = *((v1 + 4));
    0x000016bc swr a0, 0xc(s0)           |     __asm ("swr a0, 0xc(s0)");
    0x000016c0 swl v0, 0x13(s0)          |     __asm ("swl v0, 0x13(s0)");
    0x000016c4 swr v0, 0x10(s0)          |     __asm ("swr v0, 0x10(s0)");
    0x000016c8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x000016cc lw t9, -0x7e88(gp)        |     t9 = sym.imp.__snprintf_chk
    0x000016d0 addiu v0, v0, 0x6504      |     v0 += str._ErrorCode__d__ErrorCode__n;
    0x000016d4 addiu a3, zero, 0x124     |     a3 = 0x124;
    0x000016d8 sw s6, 0x14(sp)           |     *(var_14h) = s6;
    0x000016dc sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x000016e0 addiu a2, zero, 1         |     a2 = 1;
    0x000016e4 addiu a1, zero, 0x124     |     a1 = 0x124;
    0x000016e8 addiu a0, sp, 0xae        |     a0 = sp + 0xae;
    0x000016ec jalr t9                   |     t9 ();
    0x000016f0 lw v0, 0x40(sp)           |     v0 = *(var_40h);
    0x000016f4 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x000016f8 beqz v0, 0x1714           |         
    0x000016fc lw v0, 8(v0)              |         v0 = *((v0 + 2));
                                         |         if (v0 == 0) {
    0x00001700 beql v0, zero, 0x1718     |             goto label_20;
                                         |         }
    0x00001704 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001708 lb v1, (v0)               |         v1 = *(v0);
    0x0000170c sw v0, 0x18(sp)           |         *(var_18h_2) = v0;
                                         |         if (v1 == 0) {
    0x00001710 bnel v1, zero, 0x1cf8     |             goto label_21;
                                         |         }
                                         |     }
    0x00001714 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
                                         | label_20:
    0x00001718 lw t9, -0x7e88(gp)        |     t9 = sym.imp.__snprintf_chk
    0x0000171c addiu v0, v0, 0x6550      |     v0 += str._ErrorDescription__s__ErrorDescription__n;
    0x00001720 addiu a3, zero, 0x10b     |     a3 = 0x10b;
    0x00001724 addiu a2, zero, 1         |     a2 = 1;
    0x00001728 addiu a1, zero, 0x10b     |     a1 = 0x10b;
    0x0000172c addiu a0, sp, 0xc7        |     a0 = sp + 0xc7;
    0x00001730 sw s7, 0x14(sp)           |     *(var_14h) = s7;
    0x00001734 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001738 jalr t9                   |     t9 ();
    0x0000173c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001740 lw t9, -0x7f00(gp)        |     t9 = sym.imp.strlen;
    0x00001744 move a0, s7               |     a0 = s7;
    0x00001748 jalr t9                   |     t9 ();
    0x0000174c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001750 addiu s0, v0, 0x79        |     s0 = v0 + 0x79;
                                         | label_5:
    0x00001754 lw t9, -0x7f38(gp)        |     t9 = sym.imp.g_clear_error;
    0x00001758 move a0, s3               |     a0 = s3;
    0x0000175c jalr t9                   |     t9 ();
    0x00001760 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001764 addiu s1, zero, 0x15e     |     s1 = 0x15e;
    0x00001768 subu a1, s1, s0           |     __asm ("subu a1, s1, s0");
    0x0000176c lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00001770 lw t9, -0x7f18(gp)        |     t9 = sym.imp.snprintf
    0x00001774 addiu a2, a2, 0x657c      |     a2 += str.__SetError__n__Error__n;
    0x00001778 addu a0, s2, s0           |     a0 = s2 + s0;
    0x0000177c jalr t9                   |     t9 ();
    0x00001780 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001784 addiu a0, s0, 0x15        |     a0 = s0 + 0x15;
    0x00001788 subu a1, s1, a0           |     __asm ("subu a1, s1, a0");
    0x0000178c lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00001790 lw t9, -0x7f18(gp)        |     t9 = sym.imp.snprintf
    0x00001794 addiu a2, a2, 0x63fc      |     a2 += str.__PositionResponse_;
    0x00001798 addu a0, s2, a0           |     a0 = s2 + a0;
    0x0000179c jalr t9                   |     t9 ();
    0x000017a0 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000017a4 move a2, s2               |     a2 = s2;
    0x000017a8 addiu a0, zero, 1         |     a0 = 1;
    0x000017ac lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x000017b0 lw t9, -0x7f28(gp)        |     t9 = sym.imp.__printf_chk
    0x000017b4 addiu a1, a1, 0x6594      |     a1 += 0x6594;
    0x000017b8 jalr t9                   |     t9 ();
    0x000017bc lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         | label_6:
    0x000017c0 lw t9, -0x7fc4(gp)        |     t9 = sym.dbus_cleanup;
    0x000017c4 bal 0x3538                |     sym_dbus_cleanup ();
    0x000017c8 nop                       |     
    0x000017cc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000017d0 lw t9, -0x7f2c(gp)        |     t9 = sym.imp.CGI_cleanup;
    0x000017d4 jalr t9                   |     t9 ();
    0x000017d8 nop                       |     
    0x000017dc lw a0, 0x1d4(sp)          |     a0 = *(var_1d4h);
    0x000017e0 lw v1, (s5)               |     v1 = *(s5);
    0x000017e4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000017e8 move v0, s6               |     v0 = s6;
                                         |     if (a0 != v1) {
    0x000017ec bne a0, v1, 0x20fc        |         goto label_22;
                                         |     }
    0x000017f0 lw ra, 0x1fc(sp)          |     ra = *(var_1fch);
    0x000017f4 lw fp, 0x1f8(sp)          |     fp = *(var_1f8h);
    0x000017f8 lw s7, 0x1f4(sp)          |     s7 = *(var_1f4h);
    0x000017fc lw s6, 0x1f0(sp)          |     s6 = *(var_1f0h);
    0x00001800 lw s5, 0x1ec(sp)          |     s5 = *(var_1ech);
    0x00001804 lw s4, 0x1e8(sp)          |     s4 = *(var_1e8h);
    0x00001808 lw s3, 0x1e4(sp)          |     s3 = *(var_1e4h);
    0x0000180c lw s2, 0x1e0(sp)          |     s2 = *(var_1e0h);
    0x00001810 lw s1, 0x1dc(sp)          |     s1 = *(var_1dch);
    0x00001814 lw s0, 0x1d8(sp)          |     s0 = *(var_1d8h);
    0x00001818 addiu sp, sp, 0x200       |     
    0x0000181c jr ra                     |     return v0;
                                         | label_13:
    0x00001820 lw t9, -0x7fc0(gp)        |     t9 = sym.geolocation_conf_get_iso_form;
    0x00001824 move a0, s3               |     a0 = s3;
    0x00001828 sw zero, 0x48(sp)         |     *(var_48h) = 0;
    0x0000182c sw zero, 0x4c(sp)         |     *(var_4ch) = 0;
    0x00001830 bal 0x249c                |     sym_geolocation_conf_get_iso_form ();
    0x00001834 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001838 sltiu v1, v0, 3           |     v1 = (v0 < 3) ? 1 : 0;
                                         |     if (v1 != 0) {
    0x0000183c movz v0, zero, v1         |         v0 = 0;
                                         |     }
    0x00001840 lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00001844 sw v0, 0x44(sp)           |     *(var_44h) = v0;
    0x00001848 addiu s1, s1, 0x630c      |     s1 += str._PositionResponse_SchemaVersion_1.0___n;
    0x0000184c move v0, s1               |     v0 = s1;
    0x00001850 move v1, s2               |     v1 = s2;
    0x00001854 addiu s4, s1, 0x20        |     s4 = s1 + 0x20;
                                         |     do {
    0x00001858 lw a3, (v0)               |         a3 = *(v0);
    0x0000185c lw a2, 4(v0)              |         a2 = *((v0 + 1));
    0x00001860 lw a1, 8(v0)              |         a1 = *((v0 + 2));
    0x00001864 lw a0, 0xc(v0)            |         a0 = *((v0 + 3));
    0x00001868 addiu v0, v0, 0x10        |         v0 += 0x10;
    0x0000186c sw a3, (v1)               |         *(v1) = a3;
    0x00001870 sw a2, 4(v1)              |         *((v1 + 1)) = a2;
    0x00001874 sw a1, 8(v1)              |         *((v1 + 2)) = a1;
    0x00001878 sw a0, 0xc(v1)            |         *((v1 + 3)) = a0;
    0x0000187c addiu v1, v1, 0x10        |         v1 += 0x10;
    0x00001880 bne v0, s4, 0x1858        |         
                                         |     } while (v0 != s4);
    0x00001884 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001888 lw a3, (v0)               |     a3 = *(v0);
    0x0000188c lw a2, 4(v0)              |     a2 = *((v0 + 1));
    0x00001890 lw a1, 0x6334(a0)         |     a1 = *(a0);
    0x00001894 addiu v0, a0, 0x6334      |     v0 = a0 + str._Success__n_GetSuccess__n;
    0x00001898 addiu s0, sp, 0x9b        |     s0 = sp + 0x9b;
    0x0000189c sw a3, (v1)               |     *(v1) = a3;
    0x000018a0 sw a2, 4(v1)              |     *((v1 + 1)) = a2;
    0x000018a4 swl a1, 3(s0)             |     __asm ("swl a1, 3(s0)");
    0x000018a8 lw a0, 4(v0)              |     a0 = *((v0 + 1));
    0x000018ac swr a1, (s0)              |     __asm ("swr a1, (s0)");
    0x000018b0 swl a0, 7(s0)             |     __asm ("swl a0, 7(s0)");
    0x000018b4 lw v1, 8(v0)              |     v1 = *((v0 + 2));
    0x000018b8 swr a0, 4(s0)             |     __asm ("swr a0, 4(s0)");
    0x000018bc swl v1, 0xb(s0)           |     __asm ("swl v1, 0xb(s0)");
    0x000018c0 lw a0, 0xc(v0)            |     a0 = *((v0 + 3));
    0x000018c4 swr v1, 8(s0)             |     __asm ("swr v1, 8(s0)");
    0x000018c8 swl a0, 0xf(s0)           |     __asm ("swl a0, 0xf(s0)");
    0x000018cc lw v1, 0x14(v0)           |     v1 = *((v0 + 5));
    0x000018d0 lw v0, 0x10(v0)           |     v0 = *((v0 + 4));
    0x000018d4 swr a0, 0xc(s0)           |     __asm ("swr a0, 0xc(s0)");
    0x000018d8 lw t9, -0x7fd4(gp)        |     t9 = sym.dbus_get_geolocation_position;
    0x000018dc swl v0, 0x13(s0)          |     __asm ("swl v0, 0x13(s0)");
    0x000018e0 swr v0, 0x10(s0)          |     __asm ("swr v0, 0x10(s0)");
    0x000018e4 swl v1, 0x17(s0)          |     __asm ("swl v1, 0x17(s0)");
    0x000018e8 swr v1, 0x14(s0)          |     __asm ("swr v1, 0x14(s0)");
    0x000018ec move a2, s3               |     a2 = s3;
    0x000018f0 addiu a1, sp, 0x50        |     a1 = sp + 0x50;
    0x000018f4 addiu a0, sp, 0x58        |     a0 = sp + 0x58;
    0x000018f8 bal 0x3580                |     sym_dbus_get_geolocation_position ();
    0x000018fc lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001900 beqz v0, 0x200c           |         goto label_23;
                                         |     }
    0x00001904 lw t9, -0x7fbc(gp)        |     t9 = sym.dbus_get_geolocation_heading;
    0x00001908 move a1, s3               |     a1 = s3;
    0x0000190c addiu a0, sp, 0x60        |     a0 = sp + 0x60;
    0x00001910 bal 0x35bc                |     sym_dbus_get_geolocation_heading ();
    0x00001914 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001918 beqz v0, 0x200c           |         goto label_23;
                                         |     }
    0x0000191c lw t9, -0x7fb8(gp)        |     t9 = sym.dbus_get_geolocation_text;
    0x00001920 move a1, s3               |     a1 = s3;
    0x00001924 addiu a0, sp, 0x3c        |     a0 = sp + 0x3c;
    0x00001928 bal 0x35e4                |     sym_dbus_get_geolocation_text ();
    0x0000192c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001930 beqz v0, 0x200c           |         goto label_23;
                                         |     }
    0x00001934 lw t9, -0x7fb4(gp)        |     t9 = sym.geo_cgi_double_to_longitude;
    0x00001938 lw a2, 0x44(sp)           |     a2 = *(var_44h);
    0x0000193c lw a0, 0x58(sp)           |     a0 = *(var_58h);
    0x00001940 lw a1, 0x5c(sp)           |     a1 = *(var_5ch);
    0x00001944 sw s3, 0x10(sp)           |     *(var_10h) = s3;
    0x00001948 addiu a3, sp, 0x48        |     a3 = sp + 0x48;
    0x0000194c bal 0x3168                |     sym_geo_cgi_double_to_longitude ();
    0x00001950 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001954 beqz v0, 0x200c           |         goto label_23;
                                         |     }
    0x00001958 lw t9, -0x7fb0(gp)        |     t9 = sym.geo_cgi_double_to_latitude;
    0x0000195c lw a2, 0x44(sp)           |     a2 = *(var_44h);
    0x00001960 lw a0, 0x50(sp)           |     a0 = *(var_50h);
    0x00001964 lw a1, 0x54(sp)           |     a1 = *(var_54h);
    0x00001968 sw s3, 0x10(sp)           |     *(var_10h) = s3;
    0x0000196c addiu a3, sp, 0x4c        |     a3 = sp + 0x4c;
    0x00001970 bal 0x31ac                |     sym_geo_cgi_double_to_latitude ();
    0x00001974 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001978 beqz v0, 0x200c           |         goto label_23;
                                         |     }
    0x0000197c lw v0, 0x4c(sp)           |     v0 = *(var_4ch);
    0x00001980 lw t9, -0x7f3c(gp)        |     t9 = sym.imp.g_strdup;
    0x00001984 lw a0, (v0)               |     a0 = *(v0);
    0x00001988 jalr t9                   |     t9 ();
    0x0000198c move fp, v0               |     fp = v0;
    0x00001990 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001994 lw v0, 0x48(sp)           |     v0 = *(var_48h);
    0x00001998 lw t9, -0x7f3c(gp)        |     t9 = sym.imp.g_strdup;
    0x0000199c lw a0, (v0)               |     a0 = *(v0);
    0x000019a0 jalr t9                   |     t9 ();
    0x000019a4 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000019a8 lw a0, 0x48(sp)           |     a0 = *(var_48h);
    0x000019ac addiu a1, zero, 1         |     a1 = 1;
    0x000019b0 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.g_string_free;
    0x000019b4 move s7, v0               |     s7 = v0;
    0x000019b8 jalr t9                   |     t9 ();
    0x000019bc lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000019c0 lw a0, 0x4c(sp)           |     a0 = *(var_4ch);
    0x000019c4 lw t9, -0x7ecc(gp)        |     t9 = sym.imp.g_string_free;
    0x000019c8 addiu a1, zero, 1         |     a1 = 1;
    0x000019cc jalr t9                   |     t9 ();
    0x000019d0 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000019d4 lw a2, 0x60(sp)           |     a2 = *(var_60h);
    0x000019d8 lw a3, 0x64(sp)           |     a3 = *(var_64h);
    0x000019dc lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x000019e0 lw t9, -0x7eec(gp)        |     t9 = sym.imp.g_strdup_printf
    0x000019e4 addiu a0, a0, 0x634c      |     a0 += 0x634c;
    0x000019e8 jalr t9                   |     t9 ();
    0x000019ec lw t2, 0x3c(sp)           |     t2 = *(var_3ch);
    0x000019f0 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x000019f4 move s6, v0               |     s6 = v0;
                                         |     if (t2 == 0) {
    0x000019f8 beqz t2, 0x1d58           |         goto label_24;
                                         |     }
    0x000019fc lw t9, -0x7f00(gp)        |     t9 = sym.imp.strlen;
    0x00001a00 move a0, t2               |     a0 = t2;
    0x00001a04 sw t2, 0x28(sp)           |     *(var_28h) = t2;
    0x00001a08 jalr t9                   |     t9 ();
    0x00001a0c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001a10 sll a0, v0, 2             |     a0 = v0 << 2;
    0x00001a14 addu a0, a0, v0           |     a0 += v0;
    0x00001a18 lw t9, -0x7ed8(gp)        |     t9 = sym.imp.malloc;
    0x00001a1c addiu a0, a0, 1           |     a0++;
    0x00001a20 jalr t9                   |     t9 ();
    0x00001a24 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001a28 lw t2, 0x28(sp)           |     t2 = *(var_28h);
                                         |     if (v0 == 0) {
    0x00001a2c beqz v0, 0x1ff0           |         goto label_25;
                                         |     }
    0x00001a30 lb a0, (t2)               |     a0 = *(t2);
    0x00001a34 lw ra, -0x7fdc(gp)        |     ra = *((gp - 8183));
                                         |     if (a0 == 0) {
    0x00001a38 beqz a0, 0x1fe8           |         goto label_26;
                                         |     }
    0x00001a3c lw t6, -0x7fdc(gp)        |     t6 = *((gp - 8183));
    0x00001a40 lw t4, -0x7fdc(gp)        |     t4 = *((gp - 8183));
    0x00001a44 lw v1, 0x6370(ra)         |     v1 = *(ra);
    0x00001a48 lw t0, -0x7fdc(gp)        |     t0 = *((gp - 8183));
    0x00001a4c sw v1, 0x30(sp)           |     *(var_30h) = v1;
    0x00001a50 lw v1, 0x6368(t6)         |     v1 = *(t6);
    0x00001a54 lw a2, -0x7fdc(gp)        |     a2 = *((gp - 8183));
    0x00001a58 sw v1, 0x2c(sp)           |     *(var_2ch) = v1;
    0x00001a5c lw v1, 0x6360(t4)         |     v1 = *(t4);
    0x00001a60 addiu ra, ra, 0x6370      |     ra += str.gt_;
    0x00001a64 sw v1, 0x28(sp)           |     *(var_28h) = v1;
    0x00001a68 lw t9, 0x6358(t0)         |     t9 = *(t0);
    0x00001a6c lw t8, 0x6350(a2)         |     t8 = *(a2);
    0x00001a70 move a1, t2               |     a1 = t2;
    0x00001a74 move v1, v0               |     v1 = v0;
    0x00001a78 addiu a3, zero, 0x27      |     a3 = 0x27;
    0x00001a7c addiu t1, zero, 0x22      |     t1 = 0x22;
    0x00001a80 addiu t3, zero, 0x26      |     t3 = 0x26;
    0x00001a84 addiu t5, zero, 0x3c      |     t5 = 0x3c;
    0x00001a88 addiu t7, zero, 0x3e      |     t7 = 0x3e;
    0x00001a8c sw ra, 0x34(sp)           |     *(var_34h) = ra;
    0x00001a90 addiu t6, t6, 0x6368      |     t6 += str.lt_;
    0x00001a94 addiu t4, t4, 0x6360      |     t4 += str.amp_;
    0x00001a98 addiu t0, t0, 0x6358      |     t0 += str.quot_;
    0x00001a9c addiu a2, a2, 0x6350      |     a2 += str.apos_;
    0x00001aa0 b 0x1adc                  |     
                                         |     if (a0 == t1) {
                                         |         while (a0 != a3) {
    0x00001aa4 beql a0, t1, 0x1fc4       |             goto label_27;
                                         |         }
    0x00001aa8 lbu a0, 4(t0)             |         a0 = *((t0 + 4));
    0x00001aac lw ra, 0x28(sp)           |         ra = *(var_28h);
                                         |         if (a0 == t3) {
    0x00001ab0 beq a0, t3, 0x2014        |             goto label_28;
                                         |         }
    0x00001ab4 lw ra, 0x2c(sp)           |         ra = *(var_2ch);
                                         |         if (a0 == t5) {
    0x00001ab8 beq a0, t5, 0x2034        |             goto label_29;
                                         |         }
                                         |         if (a0 == t7) {
    0x00001abc beql a0, t7, 0x204c       |             goto label_30;
                                         |         }
    0x00001ac0 lw a0, 0x34(sp)           |         a0 = *(var_34h);
    0x00001ac4 sb a0, (v1)               |         *(v1) = a0;
    0x00001ac8 addiu v1, v1, 1           |         v1++;
                                         | label_0:
    0x00001acc addiu a1, a1, 1           |         a1++;
    0x00001ad0 lb a0, (a1)               |         a0 = *(a1);
                                         |         if (a0 == 0) {
    0x00001ad4 beql a0, zero, 0x1ff0     |             goto label_25;
                                         |         }
    0x00001ad8 sb zero, (v1)             |         *(v1) = 0;
    0x00001adc bne a0, a3, 0x1aa4        |         
                                         |     }
    0x00001ae0 nop                       |     
    0x00001ae4 lbu a0, 4(a2)             |     a0 = *((a2 + 4));
    0x00001ae8 swl t8, 3(v1)             |     __asm ("swl t8, 3(v1)");
    0x00001aec swr t8, (v1)              |     __asm ("swr t8, (v1)");
    0x00001af0 sb a0, 4(v1)              |     *((v1 + 4)) = a0;
    0x00001af4 lbu a0, 5(a2)             |     a0 = *((a2 + 5));
    0x00001af8 addiu v1, v1, 6           |     v1 += 6;
    0x00001afc sb a0, -1(v1)             |     *((v1 - 1)) = a0;
    0x00001b00 lbu a0, 6(a2)             |     a0 = *((a2 + 6));
    0x00001b04 sb a0, (v1)               |     *(v1) = a0;
    0x00001b08 b 0x1acc                  |     goto label_0;
                                         | label_12:
    0x00001b0c addiu s6, zero, 3         |     s6 = 3;
                                         | label_11:
    0x00001b10 lw s1, -0x7fdc(gp)        |     s1 = *((gp - 8183));
    0x00001b14 lw s4, -0x7fdc(gp)        |     s4 = *((gp - 8183));
    0x00001b18 addiu s1, s1, 0x630c      |     s1 += str._PositionResponse_SchemaVersion_1.0___n;
    0x00001b1c addiu s4, s4, 0x632c      |     s4 += 0x632c;
    0x00001b20 addiu s0, sp, 0x9b        |     s0 = sp + 0x9b;
                                         | label_7:
    0x00001b24 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001b28 lw t9, -0x7ee0(gp)        |     t9 = sym.imp.puts;
    0x00001b2c addiu a0, a0, 0x6458      |     a0 += str.Cache_Control:_no_cache__no_store__max_age0;
    0x00001b30 jalr t9                   |     t9 ();
    0x00001b34 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001b38 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001b3c lw t9, -0x7ee0(gp)        |     t9 = sym.imp.puts;
    0x00001b40 addiu a0, a0, 0x6488      |     a0 += str.Pragma:_no_cache;
    0x00001b44 jalr t9                   |     t9 ();
    0x00001b48 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001b4c lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001b50 lw t9, -0x7ee0(gp)        |     t9 = sym.imp.puts;
    0x00001b54 addiu a0, a0, 0x649c      |     a0 += str.Expires:_Thu__01_Dec_1994_16:00:00_GMT;
    0x00001b58 jalr t9                   |     t9 ();
    0x00001b5c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001b60 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001b64 lw t9, -0x7ee0(gp)        |     t9 = sym.imp.puts;
    0x00001b68 addiu a0, a0, 0x64c4      |     a0 += str.Content_Type:_application_xml_n;
    0x00001b6c jalr t9                   |     t9 ();
    0x00001b70 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001b74 b 0x1630                  |     goto label_1;
                                         | label_14:
    0x00001b78 lw a0, 0x3c(sp)           |     a0 = *(var_3ch);
                                         |     if (s4 != 0) {
    0x00001b7c bnez s4, 0x1460           |         goto label_2;
                                         |     }
                                         |     if (a0 != 0) {
    0x00001b80 bnez a0, 0x1480           |         goto label_3;
                                         |     }
    0x00001b84 nop                       |     
    0x00001b88 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
                                         |     if (s6 == 0) {
    0x00001b8c beqz s6, 0x20d0           |         goto label_31;
                                         |     }
    0x00001b90 move a0, s6               |     a0 = s6;
    0x00001b94 jalr t9                   |     t9 ();
    0x00001b98 sltiu v0, v0, 0x33        |     v0 = (v0 < 0x33) ? 1 : 0;
    0x00001b9c lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00001ba0 beqz v0, 0x15c8           |         goto label_4;
                                         |     }
                                         | label_8:
    0x00001ba4 lw t9, -0x7f1c(gp)        |     t9 = sym.imp.strtod;
                                         |     if (s6 != 0) {
    0x00001ba8 beqz s6, 0x1be0           |         
    0x00001bac move a1, zero             |         a1 = 0;
    0x00001bb0 move a0, s6               |         a0 = s6;
    0x00001bb4 jalr t9                   |         t9 ();
    0x00001bb8 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001bbc move a2, s3               |         a2 = s3;
    0x00001bc0 move a0, v0               |         a0 = v0;
    0x00001bc4 lw t9, -0x7fac(gp)        |         t9 = sym.dbus_set_geolocation_heading;
    0x00001bc8 move a1, v1               |         a1 = v1;
    0x00001bcc sw v0, 0x60(sp)           |         *(var_60h) = v0;
    0x00001bd0 sw v1, 0x64(sp)           |         *(var_64h) = v1;
    0x00001bd4 bal 0x36b0                |         sym_dbus_set_geolocation_heading ();
    0x00001bd8 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 == 0) {
    0x00001bdc beqz v0, 0x20a0           |             goto label_16;
                                         |         }
                                         |     }
    0x00001be0 lw a0, 0x3c(sp)           |     a0 = *(var_3ch);
    0x00001be4 lw t9, -0x7fa8(gp)        |     t9 = sym.dbus_set_geolocation_text;
                                         |     if (a0 != 0) {
    0x00001be8 beqz a0, 0x1bfc           |         
    0x00001bec move a1, s3               |         a1 = s3;
    0x00001bf0 bal 0x3768                |         sym_dbus_set_geolocation_text ();
    0x00001bf4 lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         |         if (v0 == 0) {
    0x00001bf8 beqz v0, 0x20a0           |             goto label_16;
                                         |         }
                                         |     }
    0x00001bfc lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001c00 move a0, s2               |     a0 = s2;
    0x00001c04 addiu v0, v0, 0x630c      |     v0 += str._PositionResponse_SchemaVersion_1.0___n;
    0x00001c08 addiu t0, v0, 0x20        |     t0 = v0 + 0x20;
                                         |     do {
    0x00001c0c lw a3, (v0)               |         a3 = *(v0);
    0x00001c10 lw a2, 4(v0)              |         a2 = *((v0 + 1));
    0x00001c14 lw a1, 8(v0)              |         a1 = *((v0 + 2));
    0x00001c18 lw v1, 0xc(v0)            |         v1 = *((v0 + 3));
    0x00001c1c addiu v0, v0, 0x10        |         v0 += 0x10;
    0x00001c20 sw a3, (a0)               |         *(a0) = a3;
    0x00001c24 sw a2, 4(a0)              |         *((a0 + 1)) = a2;
    0x00001c28 sw a1, 8(a0)              |         *((a0 + 2)) = a1;
    0x00001c2c sw v1, 0xc(a0)            |         *((a0 + 3)) = v1;
    0x00001c30 addiu a0, a0, 0x10        |         a0 += 0x10;
    0x00001c34 bne v0, t0, 0x1c0c        |         
                                         |     } while (v0 != t0);
    0x00001c38 lw v1, -0x7fdc(gp)        |     v1 = *((gp - 8183));
    0x00001c3c lw a1, (v0)               |     a1 = *(v0);
    0x00001c40 lw v0, 4(v0)              |     v0 = *((v0 + 1));
    0x00001c44 addiu v1, v1, 0x6430      |     v1 += str._Success__n_GenericSuccess___n__Success__n;
    0x00001c48 sw v0, 4(a0)              |     *((a0 + 1)) = v0;
    0x00001c4c sw a1, (a0)               |     *(a0) = a1;
    0x00001c50 addiu v0, sp, 0x9b        |     v0 = sp + 0x9b;
    0x00001c54 addiu a2, v1, 0x20        |     a2 = v1 + 0x20;
                                         |     do {
    0x00001c58 lw a1, (v1)               |         a1 = *(v1);
    0x00001c5c lw a0, 4(v1)              |         a0 = *((v1 + 1));
    0x00001c60 swl a1, 3(v0)             |         __asm ("swl a1, 3(v0)");
    0x00001c64 swr a1, (v0)              |         __asm ("swr a1, (v0)");
    0x00001c68 swl a0, 7(v0)             |         __asm ("swl a0, 7(v0)");
    0x00001c6c lw a1, 8(v1)              |         a1 = *((v1 + 2));
    0x00001c70 swr a0, 4(v0)             |         __asm ("swr a0, 4(v0)");
    0x00001c74 swl a1, 0xb(v0)           |         __asm ("swl a1, 0xb(v0)");
    0x00001c78 lw a0, 0xc(v1)            |         a0 = *((v1 + 3));
    0x00001c7c swr a1, 8(v0)             |         __asm ("swr a1, 8(v0)");
    0x00001c80 swl a0, 0xf(v0)           |         __asm ("swl a0, 0xf(v0)");
    0x00001c84 addiu v1, v1, 0x10        |         v1 += 0x10;
    0x00001c88 swr a0, 0xc(v0)           |         __asm ("swr a0, 0xc(v0)");
    0x00001c8c addiu v0, v0, 0x10        |         v0 += 0x10;
    0x00001c90 bne v1, a2, 0x1c58        |         
                                         |     } while (v1 != a2);
    0x00001c94 lw a2, (v1)               |     a2 = *(v1);
    0x00001c98 lw a1, -0x7fdc(gp)        |     a1 = *((gp - 8183));
    0x00001c9c swl a2, 3(v0)             |     __asm ("swl a2, 3(v0)");
    0x00001ca0 lw a0, 4(v1)              |     a0 = *((v1 + 1));
    0x00001ca4 swr a2, (v0)              |     __asm ("swr a2, (v0)");
    0x00001ca8 swl a0, 7(v0)             |     __asm ("swl a0, 7(v0)");
    0x00001cac addiu v1, a1, 0x63fc      |     v1 = a1 + str.__PositionResponse_;
    0x00001cb0 lw a1, 0x63fc(a1)         |     a1 = *(a1);
    0x00001cb4 swr a0, 4(v0)             |     __asm ("swr a0, 4(v0)");
    0x00001cb8 addiu v0, sp, 0xc2        |     v0 = sp + 0xc2;
    0x00001cbc swl a1, 3(v0)             |     __asm ("swl a1, 3(v0)");
    0x00001cc0 lw a0, 4(v1)              |     a0 = *((v1 + 1));
    0x00001cc4 swr a1, (v0)              |     __asm ("swr a1, (v0)");
    0x00001cc8 swl a0, 7(v0)             |     __asm ("swl a0, 7(v0)");
    0x00001ccc lw a1, 8(v1)              |     a1 = *((v1 + 2));
    0x00001cd0 swr a0, 4(v0)             |     __asm ("swr a0, 4(v0)");
    0x00001cd4 lw a0, 0xc(v1)            |     a0 = *((v1 + 3));
    0x00001cd8 swl a1, 0xb(v0)           |     __asm ("swl a1, 0xb(v0)");
    0x00001cdc lw v1, 0x10(v1)           |     v1 = *((v1 + 4));
    0x00001ce0 swr a1, 8(v0)             |     __asm ("swr a1, 8(v0)");
    0x00001ce4 swl a0, 0xf(v0)           |     __asm ("swl a0, 0xf(v0)");
    0x00001ce8 swr a0, 0xc(v0)           |     __asm ("swr a0, 0xc(v0)");
    0x00001cec swl v1, 0x13(v0)          |     __asm ("swl v1, 0x13(v0)");
    0x00001cf0 swr v1, 0x10(v0)          |     __asm ("swr v1, 0x10(v0)");
    0x00001cf4 b 0x1f50                  |     goto label_32;
                                         | label_21:
    0x00001cf8 lw v0, -0x7fdc(gp)        |     v0 = *((gp - 8183));
    0x00001cfc lw t9, -0x7e88(gp)        |     t9 = sym.imp.__snprintf_chk
    0x00001d00 addiu v0, v0, 0x6520      |     v0 += str._ErrorDescription__s:__s__ErrorDescription__n;
    0x00001d04 addiu a3, zero, 0x10b     |     a3 = 0x10b;
    0x00001d08 addiu a2, zero, 1         |     a2 = 1;
    0x00001d0c addiu a1, zero, 0x10b     |     a1 = 0x10b;
    0x00001d10 addiu a0, sp, 0xc7        |     a0 = sp + 0xc7;
    0x00001d14 sw s7, 0x14(sp)           |     *(var_14h) = s7;
    0x00001d18 sw v0, 0x10(sp)           |     *(var_10h) = v0;
    0x00001d1c jalr t9                   |     t9 ();
    0x00001d20 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001d24 lw t9, -0x7f00(gp)        |     t9 = sym.imp.strlen;
    0x00001d28 move a0, s7               |     a0 = s7;
    0x00001d2c jalr t9                   |     t9 ();
    0x00001d30 move s0, v0               |     s0 = v0;
    0x00001d34 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001d38 lw v0, 0x40(sp)           |     v0 = *(var_40h);
    0x00001d3c lw t9, -0x7f00(gp)        |     t9 = sym.imp.strlen;
    0x00001d40 lw a0, 8(v0)              |     a0 = *((v0 + 2));
    0x00001d44 jalr t9                   |     t9 ();
    0x00001d48 addu s0, s0, v0           |     s0 += v0;
    0x00001d4c lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001d50 addiu s0, s0, 0x7b        |     s0 += 0x7b;
    0x00001d54 b 0x1754                  |     goto label_5;
                                         | label_24:
    0x00001d58 lw a0, -0x7fdc(gp)        |     a0 = *((gp - 8183));
    0x00001d5c lw t9, -0x7f3c(gp)        |     t9 = sym.imp.g_strdup;
    0x00001d60 addiu a0, a0, 0x63c8      |     a0 += 0x63c8;
    0x00001d64 jalr t9                   |     t9 ();
    0x00001d68 lw gp, 0x20(sp)           |     gp = *(var_20h);
    0x00001d6c sw v0, 0x3c(sp)           |     *(var_3ch) = v0;
                                         |     do {
    0x00001d70 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001d74 lw t9, -0x7e88(gp)        |         t9 = sym.imp.__snprintf_chk
    0x00001d78 addiu v1, v0, 0x6378      |         v1 = v0 + str._Location__n;
    0x00001d7c lw a1, 0x6378(v0)         |         a1 = *(v0);
    0x00001d80 addiu v0, sp, 0xb2        |         v0 = sp + 0xb2;
    0x00001d84 swl a1, 0xb5(sp)          |         __asm ("swl a1, (var_b5h)");
    0x00001d88 lw a0, 4(v1)              |         a0 = *((v1 + 1));
    0x00001d8c swr a1, (v0)              |         __asm ("swr a1, (v0)");
    0x00001d90 lw v1, 8(v1)              |         v1 = *((v1 + 2));
    0x00001d94 swl a0, 7(v0)             |         __asm ("swl a0, 7(v0)");
    0x00001d98 swr a0, 4(v0)             |         __asm ("swr a0, 4(v0)");
    0x00001d9c swl v1, 0xb(v0)           |         __asm ("swl v1, 0xb(v0)");
    0x00001da0 swr v1, 8(v0)             |         __asm ("swr v1, 8(v0)");
    0x00001da4 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001da8 addiu a3, zero, -1        |         a3 = -1;
    0x00001dac addiu v0, v0, 0x6384      |         v0 += str._Lat__s__Lat__n;
    0x00001db0 addiu a2, zero, 1         |         a2 = 1;
    0x00001db4 addiu a1, zero, 0x115     |         a1 = 0x115;
    0x00001db8 addiu a0, sp, 0xbd        |         a0 = sp + 0xbd;
    0x00001dbc sw fp, 0x14(sp)           |         *(var_14h) = fp;
    0x00001dc0 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00001dc4 jalr t9                   |         t9 ();
    0x00001dc8 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001dcc move a0, fp               |         a0 = fp;
    0x00001dd0 lw t9, -0x7f00(gp)        |         t9 = sym.imp.strlen;
    0x00001dd4 addiu s1, zero, 0x15e     |         s1 = 0x15e;
    0x00001dd8 jalr t9                   |         t9 ();
    0x00001ddc lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001de0 addiu s0, v0, 0x55        |         s0 = v0 + 0x55;
    0x00001de4 subu a1, s1, s0           |         __asm ("subu a1, s1, s0");
    0x00001de8 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001dec lw t9, -0x7e88(gp)        |         t9 = sym.imp.__snprintf_chk
    0x00001df0 addiu v0, v0, 0x6394      |         v0 += str._Lng__s__Lng__n;
    0x00001df4 addiu a3, zero, -1        |         a3 = -1;
    0x00001df8 addiu a2, zero, 1         |         a2 = 1;
    0x00001dfc addu a0, s2, s0           |         a0 = s2 + s0;
    0x00001e00 sw s7, 0x14(sp)           |         *(var_14h) = s7;
    0x00001e04 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00001e08 jalr t9                   |         t9 ();
    0x00001e0c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001e10 lw t9, -0x7f00(gp)        |         t9 = sym.imp.strlen;
    0x00001e14 move a0, s7               |         a0 = s7;
    0x00001e18 jalr t9                   |         t9 ();
    0x00001e1c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001e20 addiu v0, v0, 0xc         |         v0 += 0xc;
    0x00001e24 addu s0, v0, s0           |         s0 = v0 + s0;
    0x00001e28 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001e2c lw t9, -0x7e88(gp)        |         t9 = sym.imp.__snprintf_chk
    0x00001e30 addiu v0, v0, 0x63a4      |         v0 += str._Heading__s__Heading__n;
    0x00001e34 addiu a3, zero, -1        |         a3 = -1;
    0x00001e38 subu a1, s1, s0           |         __asm ("subu a1, s1, s0");
    0x00001e3c addiu a2, zero, 1         |         a2 = 1;
    0x00001e40 addu a0, s2, s0           |         a0 = s2 + s0;
    0x00001e44 sw s6, 0x14(sp)           |         *(var_14h) = s6;
    0x00001e48 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00001e4c jalr t9                   |         t9 ();
    0x00001e50 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001e54 lw t9, -0x7f00(gp)        |         t9 = sym.imp.strlen;
    0x00001e58 move a0, s6               |         a0 = s6;
    0x00001e5c jalr t9                   |         t9 ();
    0x00001e60 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001e64 addu s0, s0, v0           |         s0 += v0;
    0x00001e68 addiu a0, s0, 0x14        |         a0 = s0 + 0x14;
    0x00001e6c lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00001e70 lw t9, -0x7f18(gp)        |         t9 = sym.imp.snprintf
    0x00001e74 subu a1, s1, a0           |         __asm ("subu a1, s1, a0");
    0x00001e78 addiu a2, a2, 0x63bc      |         a2 += str.__Location__n;
    0x00001e7c addu a0, s2, a0           |         a0 = s2 + a0;
    0x00001e80 jalr t9                   |         t9 ();
    0x00001e84 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001e88 lw v0, 0x3c(sp)           |         v0 = *(var_3ch);
    0x00001e8c addiu s0, s0, 0x20        |         s0 += 0x20;
    0x00001e90 sw v0, 0x14(sp)           |         *(var_14h) = v0;
    0x00001e94 lw v0, -0x7fdc(gp)        |         v0 = *((gp - 8183));
    0x00001e98 lw t9, -0x7e88(gp)        |         t9 = sym.imp.__snprintf_chk
    0x00001e9c addiu v0, v0, 0x63cc      |         v0 += str._Text__s__Text__n;
    0x00001ea0 addiu a3, zero, -1        |         a3 = -1;
    0x00001ea4 subu a1, s1, s0           |         __asm ("subu a1, s1, s0");
    0x00001ea8 addiu a2, zero, 1         |         a2 = 1;
    0x00001eac addu a0, s2, s0           |         a0 = s2 + s0;
    0x00001eb0 sw v0, 0x10(sp)           |         *(var_10h) = v0;
    0x00001eb4 jalr t9                   |         t9 ();
    0x00001eb8 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001ebc lw t9, -0x7f00(gp)        |         t9 = sym.imp.strlen;
    0x00001ec0 lw a0, 0x3c(sp)           |         a0 = *(var_3ch);
    0x00001ec4 jalr t9                   |         t9 ();
    0x00001ec8 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001ecc addiu v0, v0, 0xe         |         v0 += 0xe;
    0x00001ed0 move a0, fp               |         a0 = fp;
    0x00001ed4 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_free;
    0x00001ed8 addu s0, v0, s0           |         s0 = v0 + s0;
    0x00001edc jalr t9                   |         t9 ();
    0x00001ee0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001ee4 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_free;
    0x00001ee8 move a0, s7               |         a0 = s7;
    0x00001eec jalr t9                   |         t9 ();
    0x00001ef0 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001ef4 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_free;
    0x00001ef8 lw a0, 0x3c(sp)           |         a0 = *(var_3ch);
    0x00001efc jalr t9                   |         t9 ();
    0x00001f00 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001f04 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_free;
    0x00001f08 move a0, s6               |         a0 = s6;
    0x00001f0c jalr t9                   |         t9 ();
    0x00001f10 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001f14 subu a1, s1, s0           |         __asm ("subu a1, s1, s0");
    0x00001f18 addu a0, s2, s0           |         a0 = s2 + s0;
    0x00001f1c lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00001f20 lw t9, -0x7f18(gp)        |         t9 = sym.imp.snprintf
    0x00001f24 addiu a2, a2, 0x63e0      |         a2 += str.__GetSuccess__n__Success__n;
    0x00001f28 jalr t9                   |         t9 ();
    0x00001f2c lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001f30 addiu s0, s0, 0x19        |         s0 += 0x19;
    0x00001f34 subu a1, s1, s0           |         __asm ("subu a1, s1, s0");
    0x00001f38 lw a2, -0x7fdc(gp)        |         a2 = *((gp - 8183));
    0x00001f3c lw t9, -0x7f18(gp)        |         t9 = sym.imp.snprintf
    0x00001f40 addiu a2, a2, 0x63fc      |         a2 += str.__PositionResponse_;
    0x00001f44 addu a0, s2, s0           |         a0 = s2 + s0;
    0x00001f48 jalr t9                   |         t9 ();
    0x00001f4c lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         | label_32:
    0x00001f50 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001f54 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001f58 addiu a0, a0, 0x6458      |         a0 += str.Cache_Control:_no_cache__no_store__max_age0;
    0x00001f5c jalr t9                   |         t9 ();
    0x00001f60 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001f64 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001f68 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001f6c addiu a0, a0, 0x6488      |         a0 += str.Pragma:_no_cache;
    0x00001f70 jalr t9                   |         t9 ();
    0x00001f74 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001f78 lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001f7c lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001f80 addiu a0, a0, 0x649c      |         a0 += str.Expires:_Thu__01_Dec_1994_16:00:00_GMT;
    0x00001f84 jalr t9                   |         t9 ();
    0x00001f88 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001f8c lw a0, -0x7fdc(gp)        |         a0 = *((gp - 8183));
    0x00001f90 lw t9, -0x7ee0(gp)        |         t9 = sym.imp.puts;
    0x00001f94 addiu a0, a0, 0x64c4      |         a0 += str.Content_Type:_application_xml_n;
    0x00001f98 jalr t9                   |         t9 ();
    0x00001f9c lw gp, 0x20(sp)           |         gp = *(var_20h);
                                         | label_19:
    0x00001fa0 lw a1, -0x7fdc(gp)        |         a1 = *((gp - 8183));
    0x00001fa4 lw t9, -0x7f28(gp)        |         t9 = sym.imp.__printf_chk
    0x00001fa8 move a2, s2               |         a2 = s2;
    0x00001fac addiu a1, a1, 0x6594      |         a1 += 0x6594;
    0x00001fb0 addiu a0, zero, 1         |         a0 = 1;
    0x00001fb4 jalr t9                   |         t9 ();
    0x00001fb8 move s6, zero             |         s6 = 0;
    0x00001fbc lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00001fc0 b 0x17c0                  |         goto label_6;
                                         | label_27:
    0x00001fc4 swl t9, 3(v1)             |         __asm ("swl t9, 3(v1)");
    0x00001fc8 swr t9, (v1)              |         __asm ("swr t9, (v1)");
    0x00001fcc sb a0, 4(v1)              |         *((v1 + 4)) = a0;
    0x00001fd0 lbu a0, 5(t0)             |         a0 = *((t0 + 5));
    0x00001fd4 addiu v1, v1, 6           |         v1 += 6;
    0x00001fd8 sb a0, -1(v1)             |         *((v1 - 1)) = a0;
    0x00001fdc lbu a0, 6(t0)             |         a0 = *((t0 + 6));
    0x00001fe0 sb a0, (v1)               |         *(v1) = a0;
    0x00001fe4 b 0x1acc                  |         goto label_0;
                                         | label_26:
    0x00001fe8 move v1, v0               |         v1 = v0;
    0x00001fec sb zero, (v1)             |         *(v1) = 0;
                                         | label_25:
    0x00001ff0 lw t9, -0x7ea0(gp)        |         t9 = sym.imp.g_free;
    0x00001ff4 sw v0, 0x3c(sp)           |         *(var_3ch) = v0;
    0x00001ff8 move a0, t2               |         a0 = t2;
    0x00001ffc jalr t9                   |         t9 ();
    0x00002000 lw v0, 0x3c(sp)           |         v0 = *(var_3ch);
    0x00002004 lw gp, 0x20(sp)           |         gp = *(var_20h);
    0x00002008 bnez v0, 0x1d70           |         
                                         |     } while (v0 != 0);
                                         | label_23:
    0x0000200c addiu s6, zero, 3         |     s6 = 3;
    0x00002010 b 0x1b24                  |     goto label_7;
                                         | label_28:
    0x00002014 lbu a0, 4(t4)             |     a0 = *((t4 + 4));
    0x00002018 swl ra, 3(v1)             |     __asm ("swl ra, 3(v1)");
    0x0000201c swr ra, (v1)              |     __asm ("swr ra, (v1)");
    0x00002020 sb a0, 4(v1)              |     *((v1 + 4)) = a0;
    0x00002024 lbu a0, 5(t4)             |     a0 = *((t4 + 5));
    0x00002028 addiu v1, v1, 5           |     v1 += 5;
    0x0000202c sb a0, (v1)               |     *(v1) = a0;
    0x00002030 b 0x1acc                  |     goto label_0;
                                         | label_29:
    0x00002034 lbu a0, 4(t6)             |     a0 = *((t6 + 4));
    0x00002038 swl ra, 3(v1)             |     __asm ("swl ra, 3(v1)");
    0x0000203c swr ra, (v1)              |     __asm ("swr ra, (v1)");
    0x00002040 sb a0, 4(v1)              |     *((v1 + 4)) = a0;
    0x00002044 addiu v1, v1, 4           |     v1 += 4;
    0x00002048 b 0x1acc                  |     goto label_0;
                                         | label_30:
    0x0000204c lw ra, 0x30(sp)           |     ra = *(var_30h);
    0x00002050 lbu a0, 4(a0)             |     a0 = *((a0 + 4));
    0x00002054 swl ra, 3(v1)             |     __asm ("swl ra, 3(v1)");
    0x00002058 swr ra, (v1)              |     __asm ("swr ra, (v1)");
    0x0000205c sb a0, 4(v1)              |     *((v1 + 4)) = a0;
    0x00002060 addiu v1, v1, 4           |     v1 += 4;
    0x00002064 b 0x1acc                  |     goto label_0;
                                         | label_18:
    0x00002068 lw a2, 0x58(sp)           |     a2 = *(var_58h);
    0x0000206c lw a3, 0x5c(sp)           |     a3 = *(var_5ch);
    0x00002070 lw a0, 0x50(sp)           |     a0 = *(var_50h);
    0x00002074 lw a1, 0x54(sp)           |     a1 = *(var_54h);
    0x00002078 sw s3, 0x10(sp)           |     *(var_10h) = s3;
    0x0000207c bal 0x3604                |     sym_dbus_set_geolocation_position ();
    0x00002080 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 == 0) {
    0x00002084 beqz v0, 0x20a0           |         goto label_16;
                                         |     }
    0x00002088 lw t9, -0x7fa4(gp)        |     t9 = sym.geolocation_conf_set_iso_format;
    0x0000208c lw a0, 0x44(sp)           |     a0 = *(var_44h);
    0x00002090 move a1, s3               |     a1 = s3;
    0x00002094 bal 0x23f0                |     sym_geolocation_conf_set_iso_format ();
    0x00002098 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x0000209c bnez v0, 0x1ba4           |         goto label_8;
                                         |     }
                                         | label_16:
    0x000020a0 addiu s6, zero, 3         |     s6 = 3;
    0x000020a4 b 0x15cc                  |     goto label_9;
                                         | label_15:
    0x000020a8 addiu s0, sp, 0x58        |     s0 = sp + 0x58;
                                         |     if (s4 == 0) {
    0x000020ac beqz s4, 0x1ba4           |         goto label_8;
                                         |     }
    0x000020b0 move a2, s3               |     a2 = s3;
    0x000020b4 move a1, s0               |     a1 = s0;
    0x000020b8 addiu a0, sp, 0x50        |     a0 = sp + 0x50;
    0x000020bc bal 0x3580                |     sym_dbus_get_geolocation_position ();
    0x000020c0 lw gp, 0x20(sp)           |     gp = *(var_20h);
                                         |     if (v0 != 0) {
    0x000020c4 bnez v0, 0x1500           |         goto label_10;
                                         |     }
    0x000020c8 addiu s6, zero, 3         |     s6 = 3;
    0x000020cc b 0x15cc                  |     goto label_9;
                                         | label_31:
    0x000020d0 addiu s6, zero, 1         |     s6 = 1;
    0x000020d4 addiu v0, v1, 0x64e4      |     v0 = v1 + str.ERROR_____n;
    0x000020d8 lw a1, 0x64e4(v1)         |     a1 = *(v1);
    0x000020dc lw a0, 4(v0)              |     a0 = *((v0 + 1));
    0x000020e0 lhu v1, 8(v0)             |     v1 = *((v0 + 4));
    0x000020e4 lbu v0, 0xa(v0)           |     v0 = *((v0 + 10));
    0x000020e8 sw a1, (s2)               |     *(s2) = a1;
    0x000020ec sw a0, 4(s2)              |     *((s2 + 1)) = a0;
    0x000020f0 sh v1, 8(s2)              |     *((s2 + 4)) = v1;
    0x000020f4 sb v0, 0xa(s2)            |     *((s2 + 10)) = v0;
    0x000020f8 b 0x1b10                  |     goto label_11;
                                         | label_22:
    0x000020fc lw t9, -0x7eb4(gp)        |     t9 = sym.imp.__stack_chk_fail;
    0x00002100 jalr t9                   |     t9 ();
    0x00002104 nop                       |     
    0x00002108 nop                       |     
    0x0000210c nop                       |     
                                         | }

[*] Function printf used 16 times set.cgi