// File: /workspace/github_c_makefile_star2_O0/adsr[P]phpspy/./phpspy_trace.c
// Function: trace_globals_70
static int trace_globals(trace_context_t *context) {
    int rv;
    glopeek_entry_t *gentry, *gentry_tmp;
    zend_array *garray;
    zend_array *symtable;
    Bucket lbucket;

    /* Find the remote address of executor_globals.symbol_table */
    symtable = (zend_array *)(context->target.executor_globals_addr + offsetof(zend_executor_globals, symbol_table));

    HASH_ITER(hh, glopeek_map, gentry, gentry_tmp) {

        /* Point garray at the zend_array where this global variable resides */
        if (gentry->gloname[0]) {
            try(rv, copy_zarray_bucket(context, symtable, gentry->gloname, &lbucket));
            garray = lbucket.val.value.arr;
        } else {
            garray = symtable;
        }

        /* Print the element within the array */

        rv = sprint_zarray_val(context, garray, gentry->varname, context->buf, sizeof(context->buf), &context->buf_len);

        if (rv == PHPSPY_OK) {
            context->event.glopeek.gentry = gentry;
            context->event.glopeek.zval_str = context->buf;
            try(rv, context->event_handler(context, PHPSPY_TRACE_EVENT_GLOPEEK));
        }
    }

    return PHPSPY_OK;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0x38(%rbp)
movq 0x29583(%rip), %rax     # 0x3c558
movq %rax, -0x20(%rbp)
cmpq $0x0, 0x29577(%rip)     # 0x3c558
je 0x12ff7
movq 0x2956e(%rip), %rax     # 0x3c558
movq 0x310(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x12fff
xorl %eax, %eax
movq %rax, -0x60(%rbp)
jmp 0x12fff
movq -0x60(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x13127
movq -0x20(%rbp), %rax
cmpb $0x0, 0x100(%rax)
je 0x1305c
jmp 0x13021
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x20(%rbp), %rdx
addq $0x100, %rdx            # imm = 0x100
leaq -0x58(%rbp), %rcx
callq 0x14a30
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
je 0x13050
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x1312e
jmp 0x13052
movq -0x58(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x13064
movq -0x38(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x20(%rbp), %rdx
addq $0x200, %rdx            # imm = 0x200
movq -0x10(%rbp), %rcx
addq $0x7a8, %rcx            # imm = 0x7A8
movq -0x10(%rbp), %r9
addq $0x8a8, %r9             # imm = 0x8A8
movl $0x100, %r8d            # imm = 0x100
callq 0x14c10
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x130f0
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x780(%rax)
movq -0x10(%rbp), %rcx
addq $0x7a8, %rcx            # imm = 0x7A8
movq -0x10(%rbp), %rax
movq %rcx, 0x788(%rax)
movq -0x10(%rbp), %rax
movq 0x798(%rax), %rax
movq -0x10(%rbp), %rdi
movl $0x4, %esi
callq *%rax
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
je 0x130ec
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x1312e
jmp 0x130ee
jmp 0x130f0
jmp 0x130f2
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x13112
movq -0x28(%rbp), %rax
movq 0x310(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x1311a
xorl %eax, %eax
movq %rax, -0x68(%rbp)
jmp 0x1311a
movq -0x68(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x13007
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)