// File: acliusBackHome[P]kamaya/dist/ParseDeclaration.cpp
// Function: ParseScope::emitData2Nasm[abi:cxx11]()
map<string, ParseVariable> ParseScope::emitData2Nasm() {
    map<string, ParseVariable> sectionData;
    for (const auto &scope: scopes) {
        const auto &symbol2dec = scope.symbol2dec_ptr;
        string scope_str = to_string(scope.this_scope) + "@";
        for (const auto &each : symbol2dec) {
            if (each.first.empty()) {
                continue;
            }
            DeclarationType dec_type = each.second.first;
            switch (dec_type) {
                case D_VARIABLE: {
                    if (each.second.second.empty()) {
                        continue;
                    }
                    const auto &var_ptr = each.second.second[0];
                    string var_name = scope_str + ((ParseVariable *) var_ptr)->get_symbol();
                    ParseVariable var = *((ParseVariable *) var_ptr);
                    sectionData[var_name] = var;
                    break;
                }
                default: {
                    break;
                }
            }
        }
    }
    return sectionData;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x170(%rbp)
movq %rdi, %rax
movq %rax, -0x168(%rbp)
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
callq 0x6d2a0
leaq 0x5b110(%rip), %rax     # 0xc7440
movq %rax, -0x18(%rbp)
leaq 0x5b105(%rip), %rdi     # 0xc7440
callq 0x6cf80
movq %rax, -0x20(%rbp)
leaq 0x5b0f5(%rip), %rdi     # 0xc7440
callq 0x6cfb0
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x6cfe0
testb $0x1, %al
jne 0x6c36a
jmp 0x6c5fa
leaq -0x20(%rbp), %rdi
callq 0x6d020
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
addq $0x10, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rsi
leaq -0x78(%rbp), %rdi
callq 0x15db0
jmp 0x6c396
leaq 0x24d4f(%rip), %rdx     # 0x910ec
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x15ed0
jmp 0x6c3ac
leaq -0x78(%rbp), %rdi
callq 0x4688
movq -0x38(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rdi
callq 0x6d040
movq %rax, -0x98(%rbp)
movq -0x90(%rbp), %rdi
callq 0x6cc40
movq %rax, -0xa0(%rbp)
leaq -0x98(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x6d070
testb $0x1, %al
jne 0x6c402
jmp 0x6c5d8
leaq -0x98(%rbp), %rdi
callq 0x6d0a0
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rdi
callq 0x4590
testb $0x1, %al
jne 0x6c427
jmp 0x6c45d
jmp 0x6c5c7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x6c620
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x4688
jmp 0x6c620
movq -0xa8(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0xac(%rbp)
movl -0xac(%rbp), %eax
subl $0x2, %eax
jne 0x6c5c3
jmp 0x6c47e
movq -0xa8(%rbp), %rdi
addq $0x20, %rdi
addq $0x8, %rdi
callq 0x167a0
testb $0x1, %al
jne 0x6c498
jmp 0x6c49d
jmp 0x6c5c7
movq -0xa8(%rbp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x165e0
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movq (%rax), %rsi
leaq -0xf8(%rbp), %rdi
callq 0x68740
jmp 0x6c4d0
leaq -0xd8(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0xf8(%rbp), %rdx
callq 0x6d2c0
jmp 0x6c4e9
leaq -0xf8(%rbp), %rdi
callq 0x4688
movq -0xb8(%rbp), %rax
movq (%rax), %rsi
leaq -0x160(%rbp), %rdi
callq 0x68a40
jmp 0x6c50d
movq -0x170(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x6d310
movq %rax, -0x178(%rbp)
jmp 0x6c529
movq -0x178(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x689e0
jmp 0x6c53e
leaq -0x160(%rbp), %rdi
callq 0x16210
leaq -0xd8(%rbp), %rdi
callq 0x4688
jmp 0x6c5c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x6c5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x4688
jmp 0x6c5ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x6c5b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x16210
leaq -0xd8(%rbp), %rdi
callq 0x4688
jmp 0x6c5ef
jmp 0x6c5c5
jmp 0x6c5c7
leaq -0x98(%rbp), %rdi
callq 0x6d0c0
jmp 0x6c3e6
leaq -0x58(%rbp), %rdi
callq 0x4688
leaq -0x20(%rbp), %rdi
callq 0x6d0f0
jmp 0x6c354
leaq -0x58(%rbp), %rdi
callq 0x4688
jmp 0x6c620
movb $0x1, -0x9(%rbp)
testb $0x1, -0x9(%rbp)
jne 0x6c610
movq -0x170(%rbp), %rdi
callq 0x6d3f0
movq -0x168(%rbp), %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
movq -0x170(%rbp), %rdi
callq 0x6d3f0
movq -0x80(%rbp), %rdi
callq 0x45e0
nopw %cs:(%rax,%rax)