📄 fec.s16.980624a
字号:
jl L178L176: movl -16(%ebp),%esi movw (%esi),%ax movl -12(%ebp),%ebx movw %ax,-2(%ebx,%edi,2) movl $1,%ecx cmpl %edi,%ecx jge L181 leal -1(%edi),%esi movl %esi,-24(%ebp) .align 2,0x90L183: movl -16(%ebp),%ebx movw (%ebx,%ecx,2),%bx movw %bx,-20(%ebp) movl %edi,%edx subl %ecx,%edx cmpl %edx,-24(%ebp) jle L185 movzwl %bx,%esi movl %esi,-36(%ebp) leal -1(%edi),%ebx movl %ebx,-32(%ebp) .align 2,0x90L187: movl -12(%ebp),%esi movzwl 2(%esi,%edx,2),%eax cmpl $0,-36(%ebp) je L190 testl %eax,%eax jne L189L190: xorl %eax,%eax jmp L188 .align 2,0x90L189: movl -36(%ebp),%ebx movl _gf_log(,%ebx,4),%ebx addl _gf_log(,%eax,4),%ebx movl %ebx,%eax movw _gf_exp(,%eax,2),%axL188: movl -12(%ebp),%esi xorw %ax,(%esi,%edx,2) incl %edx cmpl %edx,-32(%ebp) jg L187L185: movw -20(%ebp),%si movl -12(%ebp),%ebx xorw %si,-2(%ebx,%edi,2) incl %ecx cmpl %edi,%ecx jl L183L181: movl $0,-4(%ebp) cmpl %edi,-4(%ebp) jge L194 .align 2,0x90L196: movl -4(%ebp),%ebx movl -16(%ebp),%esi movw (%esi,%ebx,2),%ax movw $1,-28(%ebp) movl -8(%ebp),%ebx movw $1,-2(%ebx,%edi,2) leal -2(%edi),%ecx testl %ecx,%ecx jl L198 andl $65535,%eax movl %eax,-36(%ebp) .align 2,0x90L200: movl -8(%ebp),%esi movzwl 2(%esi,%ecx,2),%eax cmpl $0,-36(%ebp) je L203 testl %eax,%eax jne L202L203: xorl %eax,%eax jmp L201 .align 2,0x90L202: movl -36(%ebp),%ebx movl _gf_log(,%ebx,4),%ebx addl _gf_log(,%eax,4),%ebx movl %ebx,%eax movw _gf_exp(,%eax,2),%axL201: movl -12(%ebp),%esi xorw 2(%esi,%ecx,2),%ax movl -8(%ebp),%esi movw %ax,(%esi,%ecx,2) movl -36(%ebp),%edx movzwl -28(%ebp),%eax testl %edx,%edx je L206 testl %eax,%eax jne L205L206: xorl %eax,%eax jmp L204 .align 2,0x90L205: movl _gf_log(,%edx,4),%edx addl _gf_log(,%eax,4),%edx movl %edx,%eax movw _gf_exp(,%eax,2),%axL204: movl -8(%ebp),%ebx xorw (%ebx,%ecx,2),%ax movw %ax,-28(%ebp) decl %ecx jns L200L198: xorl %ecx,%ecx cmpl %edi,%ecx jge L195 movzwl -28(%ebp),%esi movl %esi,-36(%ebp) .align 2,0x90L211: movl -36(%ebp),%ebx movzwl _inverse(,%ebx,2),%edx movl -8(%ebp),%esi movzwl (%esi,%ecx,2),%eax testl %edx,%edx je L214 testl %eax,%eax jne L213L214: xorl %edx,%edx jmp L212 .align 2,0x90L213: movl _gf_log(,%edx,4),%edx addl _gf_log(,%eax,4),%edx movl %edx,%eax movw _gf_exp(,%eax,2),%dxL212: movl %ecx,%eax imull %edi,%eax addl -4(%ebp),%eax movl 8(%ebp),%ebx movw %dx,(%ebx,%eax,2) incl %ecx cmpl %edi,%ecx jl L211L195: incl -4(%ebp) cmpl %edi,-4(%ebp) jl L196L194: pushl -12(%ebp) call _free pushl -8(%ebp) call _free pushl -16(%ebp) call _freeL218: xorl %eax,%eax leal -48(%ebp),%esp popl %ebx popl %esi popl %edi leave retLfe6: .size _invert_vdm,Lfe6-_invert_vdm.data .align 2 .type _fec_initialized,@object .size _fec_initialized,4_fec_initialized: .long 0.text .align 2 .type _init_fec,@function_init_fec: pushl %ebp movl %esp,%ebp call _generate_gf movl $1,_fec_initialized leave retLfe7: .size _init_fec,Lfe7-_init_fecLC25: .ascii "bad parameters to fec_free\12\0" .align 2.globl _fec_free .type _fec_free,@function_fec_free: pushl %ebp movl %esp,%ebp pushl %ebx movl 8(%ebp),%ebx testl %ebx,%ebx je L222 movl 8(%ebx),%eax xorl $-20181524,%eax xorl 4(%ebx),%eax xorl 12(%ebx),%eax cmpl %eax,(%ebx) je L221L222: pushl $LC25 pushl $___sF+176 call _fprintf jmp L220 .align 2,0x90L221: pushl 12(%ebx) call _free pushl %ebx call _freeL220: movl -4(%ebp),%ebx leave retLfe8: .size _fec_free,Lfe8-_fec_freeLC26: .ascii "Invalid parameters k %d n %d GF_SIZE %d\12\0"LC27: .ascii "new_code\0" .align 2.globl _fec_new .type _fec_new,@function_fec_new: pushl %ebp movl %esp,%ebp subl $20,%esp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%edi cmpl $0,_fec_initialized jne L224 call _init_fecL224: cmpl $65536,%edi jg L226 cmpl $65536,12(%ebp) jg L226 cmpl %edi,12(%ebp) jge L225L226: pushl $65535 pushl 12(%ebp) pushl %edi pushl $LC26 pushl $___sF+176 call _fprintf xorl %eax,%eax jmp L252 .align 2,0x90L225: pushl $LC27 pushl $16 call _my_malloc movl %eax,-8(%ebp) movl %edi,4(%eax) movl 12(%ebp),%esi movl -8(%ebp),%edx movl %esi,8(%edx) pushl $LC19 movl 12(%ebp),%ebx imull %edi,%ebx addl %ebx,%ebx pushl %ebx call _my_malloc movl -8(%ebp),%edx movl %eax,12(%edx) movl 12(%ebp),%eax xorl $-20181524,%eax xorl %edi,%eax movl -8(%ebp),%edx xorl 12(%edx),%eax movl %eax,(%edx) pushl $LC19 pushl %ebx call _my_malloc movl %eax,-4(%ebp) movw $1,(%eax) movl $1,%ecx addl $24,%esp cmpl %edi,%ecx jge L228 .align 2,0x90L230: movl -4(%ebp),%esi movw $0,(%esi,%ecx,2) incl %ecx cmpl %edi,%ecx jl L230L228: movl -4(%ebp),%edx leal (%edx,%edi,2),%edx movl %edx,-20(%ebp) xorl %ebx,%ebx movl 12(%ebp),%eax decl %eax cmpl %eax,%ebx jge L233 leal (%edi,%edi),%esi movl %esi,-16(%ebp) movl 12(%ebp),%edx decl %edx movl %edx,-12(%ebp) .align 2,0x90L235: xorl %ecx,%ecx cmpl %edi,%ecx jge L234 .align 2,0x90L239: movl %ebx,%eax imull %ecx,%eax cmpl $65534,%eax jle L242 .align 2,0x90L243: addl $-65535,%eax movl %eax,%edx sarl $16,%edx andl $65535,%eax addl %edx,%eax cmpl $65534,%eax jg L243L242: andl $65535,%eax movw _gf_exp(,%eax,2),%ax movl -20(%ebp),%esi movw %ax,(%esi,%ecx,2) incl %ecx cmpl %edi,%ecx jl L239L234: incl %ebx movl -16(%ebp),%edx addl %edx,-20(%ebp) cmpl %ebx,-12(%ebp) jg L235L233: pushl %edi pushl -4(%ebp) call _invert_vdm pushl %edi pushl %edi movl 12(%ebp),%eax subl %edi,%eax pushl %eax movl %edi,%ebx imull %edi,%ebx addl %ebx,%ebx movl %ebx,%eax movl -8(%ebp),%esi addl 12(%esi),%eax pushl %eax pushl -4(%ebp) movl -4(%ebp),%eax addl %ebx,%eax pushl %eax call _matmul addl $32,%esp pushl %ebx pushl 12(%esi) call _bzero movl 12(%esi),%edx movl %edx,-20(%ebp) xorl %ecx,%ecx addl $8,%esp cmpl %edi,%ecx jge L248 leal 2(,%edi,2),%eax .align 2,0x90L250: movl -20(%ebp),%esi movw $1,(%esi) incl %ecx addl %eax,%esi movl %esi,-20(%ebp) cmpl %edi,%ecx jl L250L248: pushl -4(%ebp) call _free movl -8(%ebp),%eaxL252: leal -32(%ebp),%esp popl %ebx popl %esi popl %edi leave retLfe9: .size _fec_new,Lfe9-_fec_newLC28: .ascii "Invalid index %d (max %d)\12\0" .align 2.globl _fec_encode .type _fec_encode,@function_fec_encode: pushl %ebp movl %esp,%ebp subl $4,%esp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%ebx movl 20(%ebp),%edx movl 4(%ebx),%ecx movl %ecx,-4(%ebp) movl 24(%ebp),%eax shrl $31,%eax addl 24(%ebp),%eax movl %eax,%esi sarl $1,%esi cmpl %ecx,%edx jge L255 leal (%esi,%esi),%eax pushl %eax pushl 16(%ebp) movl 12(%ebp),%ecx pushl (%ecx,%edx,4) call _bcopy jmp L256 .align 2,0x90L255: cmpl %edx,8(%ebx) jle L257 movl -4(%ebp),%eax imull %edx,%eax addl %eax,%eax movl %eax,%edi addl 12(%ebx),%edi leal (%esi,%esi),%eax pushl %eax pushl 16(%ebp) call _bzero xorl %ebx,%ebx addl $8,%esp cmpl %ebx,-4(%ebp) jle L256 .align 2,0x90L261: cmpw $0,(%edi,%ebx,2) je L260 pushl %esi movzwl (%edi,%ebx,2),%eax pushl %eax movl 12(%ebp),%ecx pushl (%ecx,%ebx,4) pushl 16(%ebp) call _addmul1 addl $16,%espL260: incl %ebx cmpl %ebx,-4(%ebp) jg L261 jmp L256 .align 2,0x90L257: movl 8(%ebx),%eax decl %eax pushl %eax pushl %edx pushl $LC28 pushl $___sF+176 call _fprintfL256: leal -16(%ebp),%esp popl %ebx popl %esi popl %edi leave retLfe10: .size _fec_encode,Lfe10-_fec_encode .align 2 .type _shuffle,@function_shuffle: pushl %ebp movl %esp,%ebp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%edi movl 12(%ebp),%esi xorl %ecx,%ecxL276: cmpl %ecx,16(%ebp) jle L267 movl 16(%ebp),%edx cmpl %edx,(%esi,%ecx,4) jge L271 cmpl %ecx,(%esi,%ecx,4) jne L270L271: incl %ecx jmp L276 .align 2,0x90L270: movl (%esi,%ecx,4),%ebx cmpl %ebx,(%esi,%ebx,4) jne L273 movl $1,%eax jmp L275 .align 2,0x90L273: movl (%esi,%ecx,4),%edx movl (%esi,%ebx,4),%eax movl %eax,(%esi,%ecx,4) movl %edx,(%esi,%ebx,4) movl (%edi,%ecx,4),%edx movl (%edi,%ebx,4),%eax movl %eax,(%edi,%ecx,4) movl %edx,(%edi,%ebx,4) jmp L276 .align 2,0x90L267: xorl %eax,%eaxL275: leal -12(%ebp),%esp popl %ebx popl %esi popl %edi leave retLfe11: .size _shuffle,Lfe11-_shuffleLC29: .ascii "decode: invalid index %d (max %d)\12\0" .align 2 .type _build_decode_matrix,@function_build_decode_matrix: pushl %ebp movl %esp,%ebp subl $8,%esp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%ecx movl 4(%ecx),%edi pushl $LC19 movl %edi,%eax imull %edi,%eax addl %eax,%eax pushl %eax call _my_malloc movl %eax,-4(%ebp) xorl %ebx,%ebx movl -4(%ebp),%esi addl $8,%esp cmpl %edi,%ebx jge L279 leal (%edi,%edi),%ecx movl %ecx,-8(%ebp) .align 2,0x90L281: movl 16(%ebp),%ecx cmpl %edi,(%ecx,%ebx,4) jge L282 pushl -8(%ebp) pushl %esi call _bzero movw $1,(%esi,%ebx,2) addl $8,%esp jmp L280 .align 2,0x90L282: movl 16(%ebp),%ecx movl (%ecx,%ebx,4),%edx movl 8(%ebp),%ecx cmpl %edx,8(%ecx) jg L284 movl 8(%ecx),%eax decl %eax pushl %eax pushl %edx pushl $LC29 pushl $___sF+176 call _fprintf pushl -4(%ebp) call _free xorl %eax,%eax jmp L288 .align 2,0x90L284: pushl -8(%ebp) pushl %esi movl %edi,%eax movl 16(%ebp),%ecx imull (%ecx,%ebx,4),%eax addl %eax,%eax movl 8(%ebp),%ecx addl 12(%ecx),%eax pushl %eax call _bcopy addl $12,%espL280: incl %ebx addl -8(%ebp),%esi cmpl %edi,%ebx jl L281L279: pushl %edi pushl -4(%ebp) call _invert_mat addl $8,%esp testl %eax,%eax je L287 pushl -4(%ebp) call _free movl $0,-4(%ebp)L287: movl -4(%ebp),%eaxL288: leal -20(%ebp),%esp popl %ebx popl %esi popl %edi leave retLfe12: .size _build_decode_matrix,Lfe12-_build_decode_matrixLC30: .ascii "new pkt pointers\0"LC31: .ascii "new pkt buffer\0" .align 2.globl _fec_decode .type _fec_decode,@function_fec_decode: pushl %ebp movl %esp,%ebp subl $20,%esp pushl %edi pushl %esi pushl %ebx movl 8(%ebp),%ebx movl 4(%ebx),%edi movl 20(%ebp),%eax shrl $31,%eax addl 20(%ebp),%eax sarl $1,%eax movl %eax,-4(%ebp) pushl %edi pushl 16(%ebp) pushl 12(%ebp) call _shuffle addl $12,%esp testl %eax,%eax jne L312 pushl 16(%ebp) pushl 12(%ebp) pushl %ebx call _build_decode_matrix movl %eax,-8(%ebp) addl $12,%esp testl %eax,%eax jne L292L312: movl $1,%eax jmp L311 .align 2,0x90L292: pushl $LC30 leal 0(,%edi,4),%eax pushl %eax call _my_malloc movl %eax,-12(%ebp) xorl %esi,%esi addl $8,%esp cmpl %edi,%esi jge L294 movl -4(%ebp),%edx addl %edx,%edx movl %edx,-16(%ebp) .align 2,0x90L296: movl 16(%ebp),%edx cmpl %edi,(%edx,%esi,4) jl L295 pushl $LC31 pushl -16(%ebp) call _my_malloc movl -12(%ebp),%edx movl %eax,(%edx,%esi,4) pushl -16(%ebp) pushl %eax call _bzero xorl %ebx,%ebx addl $16,%esp cmpl %edi,%ebx jge L295 movl %esi,%edx imull %edi,%edx movl %edx,-20(%ebp) .align 2,0x90L301: movl -20(%ebp),%eax addl %ebx,%eax movl -8(%ebp),%edx cmpw $0,(%edx,%eax,2) je L300 pushl -4(%ebp) movzwl (%edx,%eax,2),%eax pushl %eax movl 12(%ebp),%edx pushl (%edx,%ebx,4) movl -12(%ebp),%edx pushl (%edx,%esi,4) call _addmul1 addl $16,%espL300: incl %ebx cmpl %edi,%ebx jl L301L295: incl %esi cmpl %edi,%esi jl L296L294: xorl %esi,%esi cmpl %edi,%esi jge L306 movl -4(%ebp),%ebx addl %ebx,%ebx .align 2,0x90L308: movl 16(%ebp),%edx cmpl %edi,(%edx,%esi,4) jl L307 pushl %ebx movl 12(%ebp),%edx pushl (%edx,%esi,4) movl -12(%ebp),%edx pushl (%edx,%esi,4) call _bcopy movl -12(%ebp),%edx pushl (%edx,%esi,4) call _free addl $16,%espL307: incl %esi cmpl %edi,%esi jl L308L306: pushl -12(%ebp) call _free pushl -8(%ebp) call _free xorl %eax,%eaxL311: leal -32(%ebp),%esp popl %ebx popl %esi popl %edi leave retLfe13: .size _fec_decode,Lfe13-_fec_decode.lcomm _gf_exp,262140.lcomm _gf_log,262144.lcomm _inverse,131072
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -