// File: /workspace/github_c_makefile_star2_O1/lucvoo[P]sparse-dev/simplify.c
// Function: simplify_memop
static int simplify_memop(struct instruction *insn)
{
	int one, ret = 0;
	pseudo_t orig = insn->src;

	do {
		one = simplify_one_memop(insn, orig);
		ret |= one;
	} while (one);
	return ret;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
leaq 0x30(%rdi), %r14
movq %rdi, (%rsp)
movq 0x30(%rdi), %rax
movq %rax, 0x10(%rsp)
leaq 0x3f6b5(%rip), %rax     # 0x669d0
addq $0x8, %rax
movq %rax, 0x8(%rsp)
xorl %ebp, %ebp
movq (%r14), %r15
cmpl $0x3, 0x4(%r15)
jne 0x273e1
movq 0x18(%r15), %rbx
movl (%rbx), %edx
andl $0x7f, %edx
cmpl $0x8, %edx
je 0x273ac
xorl %ecx, %ecx
cmpl $0x3f, %edx
jne 0x273a5
cmpq $0x0, 0x30(%rbx)
je 0x273a7
movq %r14, %rdi
callq 0x24a58
movq 0x30(%rbx), %r13
movq %r13, (%r14)
movl $0x1, %r12d
testq %r13, %r13
je 0x2739e
movl 0x4(%r13), %eax
cmpl $0x6, %eax
ja 0x2737d
movl $0x43, %ecx
btl %eax, %ecx
jb 0x2739e
xorl %edi, %edi
callq 0x12220
movq %r14, 0x8(%rax)
movq (%rsp), %rcx
movq %rcx, (%rax)
addq $0x8, %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0x2285b
movl $0x1, %ecx
jmp 0x273d8
jmp 0x273c5
cmpl $0x8, %edx
jne 0x273d8
movq 0x30(%rbx), %rax
movq 0x38(%rbx), %rdx
movl $0x2, %ecx
cmpl $0x6, 0x4(%rdx)
jne 0x273c7
movq %rax, %r13
movq %rdx, %rax
jmp 0x273d8
xorl %ecx, %ecx
cmpl $0x6, 0x4(%rax)
sete %cl
incl %ecx
xorl %r12d, %r12d
movq %rdx, %r13
cmpl $0x2, %ecx
je 0x273f5
testl %ecx, %ecx
jne 0x273e4
xorl %r12d, %r12d
orl %r12d, %ebp
testl %r12d, %r12d
jne 0x27326
jmp 0x27576
cmpq 0x10(%rsp), %r13
setne %cl
cmpq %r15, %r13
setne %dl
testb %dl, %cl
jne 0x274cc
xorl %r12d, %r12d
cmpq 0x39b7b(%rip), %r13     # 0x60f90
je 0x273e4
leaq 0x40956(%rip), %rax     # 0x67d74
testb $0x4, (%rax)
jne 0x273e4
movq (%rsp), %rbx
movq 0x10(%rbx), %rdi
leaq 0x21127(%rip), %rsi     # 0x48559
xorl %eax, %eax
callq 0x118b4
movq 0x30(%rbx), %r15
leaq 0x3f58c(%rip), %rax     # 0x669d0
movq %rax, 0x30(%rbx)
movl 0x4(%rax), %eax
cmpl $0x6, %eax
ja 0x2745a
movl $0x43, %ecx
btl %eax, %ecx
jb 0x27479
xorl %edi, %edi
callq 0x12220
movq %r14, 0x8(%rax)
movq (%rsp), %rcx
movq %rcx, (%rax)
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x2285b
testq %r15, %r15
je 0x273e4
movl 0x4(%r15), %eax
cmpl $0x6, %eax
ja 0x27499
movl $0x43, %ecx
btl %eax, %ecx
jb 0x273e4
leaq 0x8(%r15), %rdi
movq %r14, %rsi
callq 0x2830b
cmpq $0x0, 0x8(%r15)
jne 0x273e4
movl 0x4(%r15), %eax
andl $-0x2, %eax
cmpl $0x2, %eax
jne 0x273e4
movq 0x18(%r15), %rdi
xorl %r12d, %r12d
jmp 0x2756a
movq 0x18(%rax), %rax
movq (%rsp), %rcx
addq %rax, 0x38(%rcx)
movq 0x30(%rcx), %r15
movq %r13, 0x30(%rcx)
testq %r13, %r13
je 0x27519
movl 0x4(%r13), %eax
cmpl $0x6, %eax
ja 0x274f8
movl $0x43, %ecx
btl %eax, %ecx
jb 0x27519
xorl %edi, %edi
callq 0x12220
movq %r14, 0x8(%rax)
movq (%rsp), %rcx
movq %rcx, (%rax)
addq $0x8, %r13
movq %r13, %rdi
movq %rax, %rsi
callq 0x2285b
movl $0x1, %r12d
testq %r15, %r15
je 0x273e4
movl 0x4(%r15), %eax
cmpl $0x6, %eax
ja 0x2753f
movl $0x43, %ecx
btl %eax, %ecx
jb 0x273e4
leaq 0x8(%r15), %rdi
movq %r14, %rsi
callq 0x2830b
cmpq $0x0, 0x8(%r15)
jne 0x273e4
movl 0x4(%r15), %eax
andl $-0x2, %eax
cmpl $0x2, %eax
jne 0x273e4
movq 0x18(%r15), %rdi
xorl %esi, %esi
callq 0x24adf
jmp 0x273e4
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq