Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "loader.c"
- .comm _r, 4, 2
- .comm _a, 4, 2
- .text
- .globl _P
- .def _P; .scl 2; .type 32; .endef
- _P:
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- movl 8(%ebp), %eax
- movl %eax, %edx
- notl %edx
- movl 8(%ebp), %eax
- movl %eax, %ecx
- subl %edx, %ecx
- movl %ecx, %edx
- movl 12(%ebp), %eax
- movl %edx, %ebx
- movb %al, %cl
- sall %cl, %ebx
- movl %ebx, %eax
- popl %ebx
- popl %ebp
- ret
- .globl _Z
- .def _Z; .scl 2; .type 32; .endef
- _Z:
- pushl %ebp
- movl %esp, %ebp
- subl $24, %esp
- movl 8(%ebp), %eax
- andl $1, %eax
- testl %eax, %eax
- jne L4
- movl 8(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, (%esp)
- call _Z
- incl %eax
- jmp L5
- L4:
- movl $0, %eax
- L5:
- movl %eax, _r
- movl _r, %eax
- leave
- ret
- .globl _L
- .def _L; .scl 2; .type 32; .endef
- _L:
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- subl $20, %esp
- movl 8(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, %ebx
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _Z
- movl %ebx, %edx
- movb %al, %cl
- sarl %cl, %edx
- movl %edx, %eax
- addl $20, %esp
- popl %ebx
- popl %ebp
- ret
- .globl _S
- .def _S; .scl 2; .type 32; .endef
- _S:
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- subl $36, %esp
- movl 20(%ebp), %eax
- movl %eax, (%esp)
- call _L
- movl %eax, -12(%ebp)
- movl _r, %eax
- movl %eax, -16(%ebp)
- cmpl $2, -12(%ebp)
- je L10
- cmpl $2, -12(%ebp)
- jle L11
- movl -12(%ebp), %eax
- cmpl 8(%ebp), %eax
- je L12
- movl -12(%ebp), %eax
- cmpl 8(%ebp), %eax
- setg %al
- movzbl %al, %eax
- imull 16(%ebp), %eax
- movl 20(%ebp), %edx
- movl %edx, %ecx
- subl %eax, %ecx
- movl %ecx, %eax
- jmp L13
- L12:
- movl 12(%ebp), %eax
- L13:
- jmp L14
- L11:
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _Z
- movl %eax, %ebx
- movl 12(%ebp), %eax
- movl %eax, 12(%esp)
- movl $-4, 8(%esp)
- movl $13, 4(%esp)
- movl $4, (%esp)
- call _S
- movl %eax, 20(%ebp)
- movl 8(%ebp), %eax
- leal 2(%eax), %edx
- movl %ebx, 12(%esp)
- movl 16(%ebp), %eax
- movl %eax, 8(%esp)
- movl 20(%ebp), %eax
- movl %eax, 4(%esp)
- movl %edx, (%esp)
- call _S
- movl %eax, %ebx
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _L
- movl %eax, 12(%esp)
- movl 16(%ebp), %eax
- movl %eax, 8(%esp)
- movl 12(%ebp), %eax
- movl %eax, 4(%esp)
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _S
- movl %ebx, 4(%esp)
- movl %eax, (%esp)
- call _P
- movl %eax, 4(%esp)
- movl -12(%ebp), %eax
- movl %eax, (%esp)
- call _P
- L14:
- jmp L15
- L10:
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _Z
- movl %eax, 12(%esp)
- movl 16(%ebp), %eax
- movl %eax, 8(%esp)
- movl 12(%ebp), %eax
- movl %eax, 4(%esp)
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _S
- movl %eax, %ebx
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _L
- movl %eax, 12(%esp)
- movl 16(%ebp), %eax
- movl %eax, 8(%esp)
- movl 12(%ebp), %eax
- movl %eax, 4(%esp)
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _S
- movl %ebx, 4(%esp)
- movl %eax, (%esp)
- call _A
- L15:
- addl $36, %esp
- popl %ebx
- popl %ebp
- ret
- .globl _A
- .def _A; .scl 2; .type 32; .endef
- _A:
- pushl %ebp
- movl %esp, %ebp
- pushl %ebx
- subl $20, %esp
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _L
- cmpl $1, %eax
- je L18
- movl 12(%ebp), %eax
- movl %eax, 4(%esp)
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _P
- movl $5, %edx
- movl %edx, %ebx
- movb %al, %cl
- sall %cl, %ebx
- movl %ebx, %eax
- jmp L19
- L18:
- movl _r, %eax
- movl %eax, (%esp)
- call _Z
- movl %eax, 12(%esp)
- movl $4, 8(%esp)
- movl 12(%ebp), %eax
- movl %eax, 4(%esp)
- movl $4, (%esp)
- call _S
- L19:
- addl $20, %esp
- popl %ebx
- popl %ebp
- ret
- .globl _D
- .def _D; .scl 2; .type 32; .endef
- _D:
- pushl %ebp
- movl %esp, %ebp
- pushl %esi
- pushl %ebx
- subl $48, %esp
- movl $0, -12(%ebp)
- movl $7, -16(%ebp)
- movl $14, -20(%ebp)
- jmp L22
- L41:
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _D
- movl %eax, (%esp)
- call _L
- movl %eax, (%esp)
- call _L
- movl %eax, -24(%ebp)
- movl _r, %eax
- movl %eax, (%esp)
- call _L
- movl %eax, -28(%ebp)
- movl _r, %eax
- movl %eax, (%esp)
- call _L
- movl %eax, 8(%ebp)
- movl _r, %eax
- cmpl %eax, -12(%ebp)
- jne L31
- movl -20(%ebp), %eax
- movl %eax, (%esp)
- call _L
- testl %eax, %eax
- jne L43
- movl _r, %eax
- movl %eax, (%esp)
- call _L
- cmpl -28(%ebp), %eax
- jne L43
- movl 8(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, 8(%ebp)
- movl 8(%ebp), %eax
- andl $1, %eax
- testl %eax, %eax
- je L26
- movl _r, %eax
- movl %eax, 12(%esp)
- movl $4, 8(%esp)
- movl -24(%ebp), %eax
- movl %eax, 4(%esp)
- movl $4, (%esp)
- call _S
- movl %eax, -20(%ebp)
- movl -24(%ebp), %eax
- movl %eax, 4(%esp)
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _A
- movl %eax, -16(%ebp)
- cmpl $0, -16(%ebp)
- L43:
- nop
- L26:
- movl -28(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, %edx
- movl 8(%ebp), %eax
- movl %eax, %ecx
- shrl $31, %ecx
- addl %ecx, %eax
- sarl %eax
- movl %eax, 8(%ebp)
- movl 8(%ebp), %eax
- andl $-2147483647, %eax
- testl %eax, %eax
- jns L27
- decl %eax
- orl $-2, %eax
- incl %eax
- L27:
- andl %edx, %eax
- testl %eax, %eax
- je L28
- movl -12(%ebp), %eax
- movl %eax, 4(%esp)
- movl -24(%ebp), %eax
- movl %eax, (%esp)
- call _P
- movl %eax, -12(%ebp)
- movl -16(%ebp), %eax
- movl %eax, 12(%esp)
- movl $-4, 8(%esp)
- movl $13, 4(%esp)
- movl $4, (%esp)
- call _S
- movl %eax, -16(%ebp)
- movl -20(%ebp), %eax
- movl %eax, 12(%esp)
- movl $-4, 8(%esp)
- movl $13, 4(%esp)
- movl $4, (%esp)
- call _S
- movl %eax, -20(%ebp)
- cmpl $0, -20(%ebp)
- je L28
- movl $1, %eax
- jmp L29
- L28:
- movl $0, %eax
- L29:
- testl %eax, %eax
- L31:
- cmpl $0, -12(%ebp)
- je L36
- movl 8(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, 8(%ebp)
- movl 8(%ebp), %eax
- andl $1, %eax
- testl %eax, %eax
- je L36
- movl -12(%ebp), %eax
- movl %eax, (%esp)
- call _L
- movl -16(%ebp), %edx
- movl %edx, 4(%esp)
- movl %eax, (%esp)
- call _P
- movl %eax, %ebx
- movl -20(%ebp), %eax
- notl %eax
- movl %eax, %edx
- andl $2, %edx
- movl 8(%ebp), %eax
- movl %eax, %ecx
- shrl $31, %ecx
- addl %ecx, %eax
- sarl %eax
- movl %eax, 8(%ebp)
- movl 8(%ebp), %eax
- andl $-2147483647, %eax
- testl %eax, %eax
- jns L33
- decl %eax
- orl $-2, %eax
- incl %eax
- L33:
- orl %edx, %eax
- testl %eax, %eax
- je L34
- movl -12(%ebp), %eax
- movl %eax, (%esp)
- call _L
- movl -20(%ebp), %edx
- movl %edx, 4(%esp)
- movl %eax, (%esp)
- call _P
- movl $1, %edx
- movl %edx, %esi
- movb %al, %cl
- sall %cl, %esi
- movl %esi, %eax
- movl %eax, -20(%ebp)
- cmpl $0, -20(%ebp)
- je L34
- movl $1, %eax
- jmp L35
- L34:
- movl $0, %eax
- L35:
- movl %ebx, 4(%esp)
- movl %eax, (%esp)
- call _P
- movl %eax, -16(%ebp)
- movl _r, %eax
- movl %eax, -12(%ebp)
- cmpl $0, -12(%ebp)
- L36:
- movl -20(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, %edx
- movl 8(%ebp), %eax
- movl %eax, %ecx
- shrl $31, %ecx
- addl %ecx, %eax
- sarl %eax
- movl %eax, 8(%ebp)
- movl 8(%ebp), %eax
- andl $-2147483647, %eax
- testl %eax, %eax
- jns L37
- decl %eax
- orl $-2, %eax
- incl %eax
- L37:
- andl %edx, %eax
- testl %eax, %eax
- je L22
- movl -12(%ebp), %eax
- movl %eax, 4(%esp)
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _P
- movl %eax, -12(%ebp)
- movl -16(%ebp), %eax
- movl %eax, 12(%esp)
- movl $-4, 8(%esp)
- movl $13, 4(%esp)
- movl $4, (%esp)
- call _S
- movl %eax, -20(%ebp)
- movl $9, -16(%ebp)
- nop
- L22:
- cmpl $0, 8(%ebp)
- je L40
- movl 8(%ebp), %eax
- decl %eax
- movl %eax, (%esp)
- call _D
- testl %eax, %eax
- L40:
- movl 8(%ebp), %eax
- movl %eax, %edx
- shrl $31, %edx
- addl %edx, %eax
- sarl %eax
- movl %eax, 8(%ebp)
- movl 8(%ebp), %eax
- andl $1, %eax
- testl %eax, %eax
- jne L41
- movl _a, %ebx
- movl -12(%ebp), %eax
- movl %eax, 4(%esp)
- movl 8(%ebp), %eax
- movl %eax, (%esp)
- call _P
- movl %eax, 4(%esp)
- movl -20(%ebp), %eax
- movl %eax, (%esp)
- call _P
- movl %eax, 4(%esp)
- movl -16(%ebp), %eax
- movl %eax, (%esp)
- call _P
- movl %ebx, 4(%esp)
- movl %eax, (%esp)
- call _P
- movl %eax, _a
- movl _a, %eax
- addl $48, %esp
- popl %ebx
- popl %esi
- popl %ebp
- ret
- .def ___main; .scl 2; .type 32; .endef
- .globl _main
- .def _main; .scl 2; .type 32; .endef
- _main:
- pushl %ebp
- movl %esp, %ebp
- andl $-16, %esp
- subl $16, %esp
- call ___main
- movl $99, (%esp)
- call _D
- movl %eax, (%esp)
- call _D
- movl %eax, (%esp)
- call _D
- movl %eax, (%esp)
- call _D
- movl %eax, (%esp)
- call _D
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement