// File: eryxcc[P]lois/src/env.cpp
// Function: lois::CondIterator::go()
void CondIterator::go() {
  if(state == ciIfThen)
    if(!enable(phi)) state = ciEnd;
  if(state == ciIfThenElse)
    if(!enable(phi)) state = ciElse;
  if(state == ciElse)
    if(!enable(!phi)) state = ciEnd;
  if(state == ciWhile) {
    if(!enable(phi)) { disable(); state = ciWhileFailed; }
    }
  }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpl $0x0, 0x28(%rax)
jne 0x3e89d
movq -0x70(%rbp), %rsi
addq $0x18, %rsi
leaq -0x18(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0x11030
movq -0x70(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x3e740
movb %al, -0x71(%rbp)
jmp 0x3e854
movb -0x71(%rbp), %al
xorb $-0x1, %al
movb %al, -0x81(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x11060
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0x3e874
jmp 0x3e89b
movq -0x70(%rbp), %rax
movl $0x4, 0x28(%rax)
jmp 0x3e89b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x11060
jmp 0x3ea75
jmp 0x3e89d
movq -0x70(%rbp), %rax
cmpl $0x1, 0x28(%rax)
jne 0x3e923
movq -0x70(%rbp), %rsi
addq $0x18, %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x11030
movq -0x70(%rbp), %rdi
movq -0x90(%rbp), %rsi
callq 0x3e740
movb %al, -0x82(%rbp)
jmp 0x3e8d7
movb -0x82(%rbp), %al
xorb $-0x1, %al
movb %al, -0x91(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x11060
movb -0x91(%rbp), %al
testb $0x1, %al
jne 0x3e8fa
jmp 0x3e921
movq -0x70(%rbp), %rax
movl $0x3, 0x28(%rax)
jmp 0x3e921
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x11060
jmp 0x3ea75
jmp 0x3e923
movq -0x70(%rbp), %rax
cmpl $0x3, 0x28(%rax)
jne 0x3e9dc
movq -0x70(%rbp), %rsi
addq $0x18, %rsi
leaq -0x58(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x11030
movq -0xa0(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x400a0
jmp 0x3e95b
movq -0x70(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x3e740
movb %al, -0xa1(%rbp)
jmp 0x3e970
movb -0xa1(%rbp), %al
xorb $-0x1, %al
movb %al, -0xa2(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x11060
leaq -0x58(%rbp), %rdi
callq 0x11060
movb -0xa2(%rbp), %al
testb $0x1, %al
jne 0x3e99c
jmp 0x3e9da
movq -0x70(%rbp), %rax
movl $0x4, 0x28(%rax)
jmp 0x3e9da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x3e9cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x11060
leaq -0x58(%rbp), %rdi
callq 0x11060
jmp 0x3ea75
jmp 0x3e9dc
movq -0x70(%rbp), %rax
cmpl $0x2, 0x28(%rax)
jne 0x3ea6c
movq -0x70(%rbp), %rsi
addq $0x18, %rsi
leaq -0x68(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x11030
movq -0x70(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x3e740
movb %al, -0xa3(%rbp)
jmp 0x3ea1a
movb -0xa3(%rbp), %al
xorb $-0x1, %al
movb %al, -0xb1(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x11060
movb -0xb1(%rbp), %al
testb $0x1, %al
jne 0x3ea3d
jmp 0x3ea6a
movq -0x70(%rbp), %rdi
callq 0x3e680
movq -0x70(%rbp), %rax
movl $0x5, 0x28(%rax)
jmp 0x3ea6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x11060
jmp 0x3ea75
jmp 0x3ea6c
addq $0xc0, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x84d0
nop