📄 gzip.s
字号:
lwz 0,list@l(9) cmpwi 1,0,0 bc 4,6,.L308 addis 9,0,method@ha stw 0,method@l(9) addis 11,0,work@ha addis 9,0,copy@ha addi 9,9,copy@l stw 9,work@l(11) addis 9,0,inptr@ha stw 0,inptr@l(9).L328: addis 9,0,last_member@ha li 0,1.L329: stw 0,last_member@l(9).L308: addis 9,0,method@ha lwz 3,method@l(9) cmpwi 1,3,0 bc 4,4,.L324 addis 9,0,part_nb@ha lwz 31,part_nb@l(9) cmpwi 1,31,1 bc 4,6,.L320 addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) addis 11,0,progname@ha lwz 3,12(9) addis 4,0,.LC118@ha addi 4,4,.LC118@l lwz 5,progname@l(11) addis 6,0,ifname@ha addi 6,6,ifname@l crxor 6,6,6 bl fprintf addis 9,0,exit_code@ha stw 31,exit_code@l(9) b .L330.L320: addis 9,0,quiet@ha lwz 0,quiet@l(9) cmpwi 1,0,0 bc 4,6,.L322 addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) addis 11,0,progname@ha lwz 3,12(9) addis 4,0,.LC119@ha addi 4,4,.LC119@l lwz 5,progname@l(11) addis 6,0,ifname@ha addi 6,6,ifname@l crxor 6,6,6 bl fprintf.L322: addis 9,0,exit_code@ha lwz 0,exit_code@l(9) cmpwi 1,0,0 bc 4,6,.L323 li 0,2 stw 0,exit_code@l(9).L323: li 3,-2.L324: lwz 0,52(1) mtlr 0 lwz 24,16(1) lwz 25,20(1) lwz 26,24(1) lwz 27,28(1) lwz 28,32(1) lwz 29,36(1) lwz 30,40(1) lwz 31,44(1) addi 1,1,48 blr.Lfe13: .size get_method,.Lfe13-get_method .section ".sdata","aw" .align 2 .type first_time.31,@object .size first_time.31,4first_time.31: .long 1 .section ".data" .align 2 .type methods.32,@object .size methods.32,36methods.32: .long .LC120 .long .LC121 .long .LC122 .long .LC123 .long .LC5 .long .LC5 .long .LC5 .long .LC5 .long .LC124 .section ".rodata" .align 2.LC124: .string "defla" .align 2.LC123: .string "lzh " .align 2.LC122: .string "pack " .align 2.LC121: .string "compr" .align 2.LC120: .string "store" .align 2.LC125: .string "method crc date time " .align 2.LC126: .string "compressed uncompr. ratio uncompressed_name\n" .align 2.LC127: .string " %9lu %9lu " .align 2.LC128: .string "%9ld %9ld " .align 2.LC129: .string " (totals)\n" .align 2.LC130: .string "%5s %08lx %11s " .align 2.LC131: .string " %s\n" .section ".text" .align 2 .type do_list,@functiondo_list: stwu 1,-32(1) mflr 0 stw 28,16(1) stw 29,20(1) stw 30,24(1) stw 31,28(1) stw 0,36(1) mr 28,3 mr 29,4 addis 10,0,first_time.31@ha lwz 0,first_time.31@l(10) addic 9,0,-1 subfe 0,9,0 nor 9,29,29 srwi 9,9,31 and. 11,0,9 bc 12,2,.L334 li 0,0 stw 0,first_time.31@l(10) addis 9,0,verbose@ha lwz 0,verbose@l(9) cmpwi 1,0,0 bc 12,6,.L335 addis 3,0,.LC125@ha addi 3,3,.LC125@l crxor 6,6,6 bl printf.L335: addis 9,0,quiet@ha lwz 0,quiet@l(9) cmpwi 1,0,0 bc 4,6,.L337 addis 3,0,.LC126@ha addi 3,3,.LC126@l crxor 6,6,6 bl printf b .L337.L334: cmpwi 1,29,0 bc 4,4,.L337 addis 9,0,total_in@ha lwz 4,total_in@l(9) cmpwi 1,4,0 bc 4,5,.L333 addis 9,0,total_out@ha lwz 5,total_out@l(9) cmpwi 1,5,0 bc 4,5,.L333 addis 9,0,verbose@ha lwz 0,verbose@l(9) cmpwi 1,0,0 bc 12,6,.L341 addis 3,0,.LC127@ha addi 3,3,.LC127@l b .L354.L341: addis 9,0,quiet@ha lwz 0,quiet@l(9) cmpwi 1,0,0 bc 4,6,.L342 addis 9,0,total_in@ha addis 11,0,total_out@ha addis 3,0,.LC128@ha addi 3,3,.LC128@l lwz 4,total_in@l(9) lwz 5,total_out@l(11).L354: crxor 6,6,6 bl printf.L342: addis 10,0,total_out@ha addis 9,0,total_in@ha addis 11,0,header_bytes@ha lwz 3,total_in@l(9) lwz 0,header_bytes@l(11) subf 3,0,3 lwz 4,total_out@l(10) addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) subf 3,3,4 lwz 5,8(9) bl display_ratio addis 3,0,.LC129@ha addi 3,3,.LC129@l crxor 6,6,6 bl printf b .L333.L337: li 31,-1 addis 9,0,bytes_out@ha stw 31,bytes_out@l(9) addis 30,0,bytes_in@ha addis 9,0,ifile_size@ha lwz 0,ifile_size@l(9) stw 0,bytes_in@l(30) cmpwi 1,29,8 bc 4,6,.L344 addis 9,0,last_member@ha lwz 0,last_member@l(9) cmpwi 1,0,0 bc 4,6,.L344 mr 3,28 li 4,-8 li 5,2 bl lseek stw 3,bytes_in@l(30) cmpw 1,3,31 bc 12,6,.L344 addi 0,3,8 stw 0,bytes_in@l(30) mr 3,28 addi 4,1,8 li 5,8 bl read cmpwi 1,3,8 bc 12,6,.L346 bl read_error.L346: lbz 31,8(1) lbz 0,9(1) slwi 0,0,8 or 31,31,0 lbz 9,10(1) lbz 0,11(1) slwi 0,0,8 or 9,9,0 slwi 9,9,16 or 31,31,9 addis 10,0,bytes_out@ha lbz 11,12(1) lbz 0,13(1) slwi 0,0,8 or 11,11,0 lbz 9,14(1) lbz 0,15(1) slwi 0,0,8 or 9,9,0 slwi 9,9,16 or 11,11,9 stw 11,bytes_out@l(10).L344: addis 3,0,time_stamp@ha addi 3,3,time_stamp@l bl ctime addi 6,3,4 li 0,0 stb 0,12(6) addis 9,0,verbose@ha lwz 0,verbose@l(9) cmpwi 1,0,0 bc 12,6,.L347 addis 9,0,methods.32@ha addi 9,9,methods.32@l slwi 0,29,2 addis 3,0,.LC130@ha addi 3,3,.LC130@l lwzx 4,9,0 mr 5,31 crxor 6,6,6 bl printf.L347: addis 31,0,bytes_in@ha addis 30,0,bytes_out@ha addis 3,0,.LC128@ha addi 3,3,.LC128@l lwz 4,bytes_in@l(31) lwz 5,bytes_out@l(30) crxor 6,6,6 bl printf lwz 0,bytes_in@l(31) cmpwi 1,0,-1 bc 4,6,.L348 addis 9,0,total_in@ha stw 0,total_in@l(9) addis 9,0,header_bytes@ha li 0,0 stw 0,header_bytes@l(9) stw 0,bytes_out@l(30) stw 0,bytes_in@l(31) b .L349.L348: addis 10,0,total_in@ha lwz 11,total_in@l(10) cmpwi 1,11,0 bc 12,4,.L349 addis 9,0,bytes_in@ha lwz 0,bytes_in@l(9) add 0,11,0 stw 0,total_in@l(10).L349: addis 10,0,bytes_out@ha lwz 0,bytes_out@l(10) cmpwi 1,0,-1 bc 4,6,.L351 addis 9,0,total_out@ha stw 0,total_out@l(9) addis 11,0,bytes_in@ha addis 9,0,header_bytes@ha li 0,0 stw 0,header_bytes@l(9) stw 0,bytes_out@l(10) stw 0,bytes_in@l(11) b .L352.L351: addis 10,0,total_out@ha lwz 11,total_out@l(10) cmpwi 1,11,0 bc 12,4,.L352 addis 9,0,bytes_out@ha lwz 0,bytes_out@l(9) add 0,11,0 stw 0,total_out@l(10).L352: addis 10,0,bytes_out@ha addis 9,0,bytes_in@ha addis 11,0,header_bytes@ha lwz 3,bytes_in@l(9) lwz 0,header_bytes@l(11) subf 3,0,3 lwz 4,bytes_out@l(10) addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) subf 3,3,4 lwz 5,8(9) bl display_ratio addis 3,0,.LC131@ha addi 3,3,.LC131@l addis 4,0,ofname@ha addi 4,4,ofname@l crxor 6,6,6 bl printf.L333: lwz 0,36(1) mtlr 0 lwz 28,16(1) lwz 29,20(1) lwz 30,24(1) lwz 31,28(1) addi 1,1,32 blr.Lfe14: .size do_list,.Lfe14-do_list .align 2 .type same_file,@functionsame_file: li 10,0 lwz 0,0(3) lwz 9,0(4) cmpw 1,0,9 bc 4,6,.L356 lwz 0,4(3) lwz 9,4(4) cmpw 1,0,9 bc 4,6,.L356 lhz 0,10(3) lhz 9,10(4) cmpw 1,0,9 bc 4,6,.L356 lhz 0,12(3) lhz 9,12(4) cmpw 1,0,9 bc 4,6,.L356 lwz 0,16(3) lwz 9,16(4) cmpw 1,0,9 bc 4,6,.L356 lwz 0,20(3) lwz 9,20(4) cmpw 1,0,9 bc 4,6,.L356 lwz 0,28(3) lwz 9,28(4) cmpw 1,0,9 bc 4,6,.L356 lwz 0,36(3) lwz 9,36(4) xor 10,0,9 subfic 11,10,0 adde 10,11,10.L356: mr 3,10 blr.Lfe15: .size same_file,.Lfe15-same_file .globl memcpy .align 2 .type name_too_long,@functionname_too_long: stwu 1,-112(1) mflr 0 stw 27,92(1) stw 28,96(1) stw 29,100(1) stw 30,104(1) stw 31,108(1) stw 0,116(1) mr 31,3 mr 30,4 bl strlen mr 28,3 add 29,28,31 lbz 27,-1(29) addi 3,1,24 mr 4,30 li 5,60 crxor 6,6,6 bl memcpy li 0,0 stb 0,-1(29) li 29,0 mr 3,31 addi 4,1,24 bl stat cmpw 1,3,29 bc 4,6,.L358 mr 3,30 addi 4,1,24 bl same_file addic 0,3,-1 subfe 29,0,3.L358: add 9,28,31 stb 27,-1(9) mr 3,29 lwz 0,116(1) mtlr 0 lwz 27,92(1) lwz 28,96(1) lwz 29,100(1) lwz 30,104(1) lwz 31,108(1) addi 1,1,112 blr.Lfe16: .size name_too_long,.Lfe16-name_too_long .section ".rodata" .align 2.LC132: .string "name too short" .align 2.LC133: .string "can't recover suffix\n" .align 2.LC134: .string "." .align 2.LC135: .string "internal error in shorten_name" .section ".text" .align 2 .type shorten_name,@functionshorten_name: stwu 1,-32(1) mflr 0 stw 27,12(1) stw 28,16(1) stw 29,20(1) stw 30,24(1) stw 31,28(1) stw 0,36(1) mr 27,3 li 30,0 li 29,3 bl strlen mr 28,3 addis 9,0,decompress@ha lwz 0,decompress@l(9) cmpw 1,0,30 bc 12,6,.L360 cmpwi 1,28,1 bc 12,5,.L361 addis 3,0,.LC132@ha addi 3,3,.LC132@l bl error.L361: add 9,28,27 li 0,0 stb 0,-1(9) b .L359.L360: mr 3,27 bl get_suffix mr. 31,3 bc 4,2,.L362 addis 3,0,.LC133@ha addi 3,3,.LC133@l bl error.L362: li 0,0 stb 0,0(31) addis 9,0,save_orig_name@ha li 0,1 stw 0,save_orig_name@l(9) cmpwi 1,28,4 bc 4,5,.L363 addi 28,31,-4 mr 3,28 addis 4,0,.LC103@ha addi 4,4,.LC103@l bl strcmp cmpwi 1,3,0 bc 4,6,.L363 addis 9,0,.LC96@ha addi 11,9,.LC96@l lwz 0,.LC96@l(9) lbz 9,4(11) stw 0,-4(31) stb 9,4(28) b .L359.L363: addis 28,0,.LC134@ha.L364: mr 3,27 li 4,47 bl strrchr addic 9,3,-1 subfe 9,9,9 addi 3,3,1 and 0,27,9 andc 3,3,9 or 31,0,3 b .L386.L371: mr 3,31 addi 4,28,.LC134@l bl strcspn add 31,31,3 cmpw 1,3,29 cror 7,6,4 mfcr 0 rlwinm 0,0,8,1 neg 0,0 addi 9,31,-1 and 11,30,0 andc 3,9,0 or 30,11,3 lbz 0,0(31) addic 11,0,-1 subfe 11,11,11 addi 0,31,1 and 9,31,11 andc 0,0,11 or 31,9,0.L386: lbz 0,0(31) cmpwi 1,0,0 bc 4,6,.L371 cmpwi 1,30,0 bc 4,6,.L378 addic. 29,29,-1 bc 4,2,.L364 bc 12,6,.L377.L378: lbz 0,1(30) stb 0,0(30) rlwinm 0,0,0,0xff addi 30,30,1 cmpwi 1,0,0 bc 4,6,.L378 addi 30,30,-1 b .L382.L377: mr 3,27 li 4,46 bl strrchr mr. 30,3 bc 4,2,.L383 addis 3,0,.LC135@ha addi 3,3,.LC135@l bl error.L383: lbz 0,1(30) neg 0,0 srawi 0,0,31 addi 9,30,-1 and 11,30,0 andc 3,9,0 or 30,11,3.L382: mr 3,30 addis 4,0,z_suffix@ha addi 4,4,z_suffix@l bl strcpy.L359: lwz 0,36(1) mtlr 0 lwz 27,12(1) lwz 28,16(1) lwz 29,20(1) lwz 30,24(1) lwz 31,28(1) addi 1,1,32 blr.Lfe17: .size shorten_name,.Lfe17-shorten_name .section ".rodata" .align 2.LC136: .string "%s: %s: cannot %scompress onto itself\n" .align 2.LC137: .string "%s: %s and %s are the same file\n" .align 2.LC138: .string "n" .align 2.LC139: .string "%s: %s already exists;" .align 2.LC140: .string " do you wish to overwrite (y or n)? " .align 2.LC141: .string "\tnot overwritten\n" .section ".text" .align 2 .type check_ofname,@functioncheck_ofname: stwu 1,-168(1) mflr 0 stw 29,156(1) stw 30,160(1) stw 31,164(1) stw 0,172(1) bl __errno li 0,0 stw 0,0(3) addis 29,0,ofname@ha.L388: addi 3,29,ofname@l addi 4,1,8 bl stat cmpwi 1,3,0 bc 12,6,.L389 bl __errno lwz 0,0(3) cmpwi 1,0,91 bc 4,6,.L411 addi 3,29,ofname@l bl shorten_name b .L388.L389: addis 9,0,decompress@ha lwz 0,decompress@l(9) cmpwi 1,0,0 bc 4,6,.L392 addis 29,0,ofname@ha addi 3,29,ofname@l addi 4,1,8 bl name_too_long cmpwi 1,3,0 bc 12,6,.L392 addi 3,29,ofname@l bl shorten_name addi 3,29,ofname@l addi 4,1,8 bl stat cmpwi 1,3,0 li 3,0 bc 4,6,.L406.L392: addis 3,0,istat@ha addi 3,3,istat@l addi 4,1,8 bl same_file cmpwi 1,3,0 bc 12,6,.L394 addis 3,0,ifname@ha addi 3,3,ifname@l addis 4,0,ofname@ha addi 4,4,ofname@l bl strcmp cmpwi 1,3,0 bc 4,6,.L395 addis 9,0,_impure_ptr@ha lwz 11,_impure_ptr@l(9) addis 9,0,progname@ha addi 5,9,progname@l addis 9,0,decompress@ha lwz 0,decompress@l(9) cmpwi 1,0,0 bc 12,6,.L396 addis 9,0,.LC77@ha addi 7,9,.LC77@l b .L397.L396: addis 9,0,.LC5@ha addi 7,9,.LC5@l.L397: lwz 3,12(11) addis 4,0,.LC136@ha addi 4,4,.LC136@l lwz 5,0(5) addis 6,0,ifname@ha addi 6,6,ifname@l b .L408.L395: addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) addis 11,0,progname@ha lwz 3,12(9) addis 4,0,.LC137@ha addi 4,4,.LC137@l lwz 5,progname@l(11) addis 6,0,ifname@ha addi 6,6,ifname@l addis 7,0,ofname@ha addi 7,7,ofname@l.L408: crxor 6,6,6 bl fprintf b .L409.L394: addis 9,0,force@ha lwz 0,force@l(9) cmpwi 1,0,0 bc 4,6,.L399 addis 9,0,.LC138@ha lhz 0,.LC138@l(9) sth 0,72(1) addis 29,0,_impure_ptr@ha lwz 9,_impure_ptr@l(29) addis 11,0,progname@ha lwz 3,12(9) addis 4,0,.LC139@ha addi 4,4,.LC139@l lwz 5,progname@l(11) addis 6,0,ofname@ha addi 6,6,ofname@l crxor 6,6,6 bl fprintf addis 9,0,foreground@ha lwz 0,foreground@l(9) cmpwi 1,0,0 bc 12,6,.L400 lwz 9,_impure_ptr@l(29) lwz 3,4(9) bl fileno bl isatty cmpwi 1,3,0 bc 12,6,.L400 lwz 9,_impure_ptr@l(29) lwz 3,12(9) addis 4,0,.LC140@ha addi 4,4,.LC140@l crxor 6,6,6 bl fprintf lwz 9,_impure_ptr@l(29) lwz 3,12(9) bl fflush lwz 9,_impure_ptr@l(29) addi 3,1,72 li 4,79 lwz 5,4(9) bl fgets.L400: lbz 11,72(1) addis 9,0,_ctype_+1@ha addi 9,9,_ctype_+1@l lbzx 0,11,9 andi. 9,0,1 bc 12,2,.L402 cmpwi 1,11,89 bc 4,6,.L403 b .L399.L402: lbz 0,72(1) cmpwi 1,0,121 bc 12,6,.L399.L403: addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) lwz 3,12(9) addis 4,0,.LC141@ha addi 4,4,.LC141@l crxor 6,6,6 bl fprintf addis 9,0,exit_code@ha lwz 0,exit_code@l(9) cmpwi 1,0,0 bc 4,6,.L410 li 0,2 b .L412.L399: addis 29,0,ofname@ha addi 3,29,ofname@l li 4,511 bl chmod addi 3,29,ofname@l bl unlink cmpwi 1,3,0 bc 4,6,.L405.L411: li 3,0 b .L406.L405: addis 9,0,_impure_ptr@ha lwz 9,_impure_ptr@l(9) addis 11,0,progname@ha lwz 3,12(9) addis 4,0,.LC86@ha addi 4,4,.LC86@l lwz
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -