// File: kelwinfc[P]ci4721-Fernandez-Gyomrey/src/type_descriptor.cpp
// Function: struct_type::dump(std::ostream&)
void struct_type::dump(ostream &strm){
    strm << "  * struct " << name << " [size " << width
         << "][alignment " << alignment << "]" << endl
         << "    ---" << endl;
    map<string, symbol*>::iterator it;
    for (it = fields->table.begin(); it != fields->table.end(); ++it){
        strm << "    |   - " << types.types[(*it).second->getType()]->name
             << ' ' << (*it).first << " [offset " << (*it).second->offset << ']' << endl;
    }
    if ( fields->table.begin() == fields->table.end() ){
        strm << "    |" << endl;
    }
    strm << "    ---" << endl;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
leaq 0x279ae(%rip), %rsi     # 0x54242
callq 0x6370
movq 0x18(%rsp), %rsi
movq %rax, %rdi
addq $0x8, %rsi
callq 0x6340
movq %rax, %rdi
leaq 0x27979(%rip), %rsi     # 0x5422d
callq 0x6370
movq %rax, %rdi
movq 0x18(%rsp), %rax
movl 0x28(%rax), %esi
callq 0x6690
movq %rax, %rdi
leaq 0x27962(%rip), %rsi     # 0x54235
callq 0x6370
movq %rax, %rdi
movq 0x18(%rsp), %rax
movl 0x2c(%rax), %esi
callq 0x6690
movq %rax, %rdi
leaq 0x2574b(%rip), %rsi     # 0x5203d
callq 0x6370
movq %rax, %rdi
movq 0x41697(%rip), %rsi     # 0x6df98
callq 0x63d0
movq %rax, %rdi
leaq 0x2793e(%rip), %rsi     # 0x5424e
callq 0x6370
movq %rax, %rdi
movq 0x41679(%rip), %rsi     # 0x6df98
callq 0x63d0
leaq 0x40(%rsp), %rdi
callq 0x21630
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rdi
addq $0x18, %rdi
callq 0x21650
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rdi
addq $0x18, %rdi
callq 0x216a0
movq %rax, 0x30(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x21680
testb $0x1, %al
jne 0x2c97e
jmp 0x2ca48
movq 0x48(%rsp), %rdi
leaq 0x278cc(%rip), %rsi     # 0x54256
callq 0x6370
movq %rax, (%rsp)
leaq 0x40(%rsp), %rdi
callq 0x2b1a0
movq 0x20(%rax), %rdi
callq 0x295f0
movslq %eax, %rsi
leaq 0x41b30(%rip), %rdi     # 0x6e4e0
callq 0x1fc90
movq (%rsp), %rdi
movq (%rax), %rsi
addq $0x8, %rsi
callq 0x6340
movq %rax, %rdi
movl $0x20, %esi
callq 0x6480
movq %rax, 0x8(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x2b1a0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x6340
movq %rax, %rdi
leaq 0x25a96(%rip), %rsi     # 0x5248e
callq 0x6370
movq %rax, 0x10(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x2b1a0
movq 0x10(%rsp), %rdi
movq 0x20(%rax), %rax
movl 0x34(%rax), %esi
callq 0x6540
movq %rax, %rdi
movl $0x5d, %esi
callq 0x6480
movq %rax, %rdi
movq 0x41564(%rip), %rsi     # 0x6df98
callq 0x63d0
leaq 0x40(%rsp), %rdi
callq 0x21700
jmp 0x2c94f
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rdi
addq $0x18, %rdi
callq 0x21650
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x28(%rsp)
movq 0x30(%rax), %rdi
addq $0x18, %rdi
callq 0x216a0
movq %rax, 0x20(%rsp)
leaq 0x28(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x2b0a0
testb $0x1, %al
jne 0x2ca8e
jmp 0x2caae
movq 0x48(%rsp), %rdi
leaq 0x277c7(%rip), %rsi     # 0x54261
callq 0x6370
movq %rax, %rdi
movq 0x414ef(%rip), %rsi     # 0x6df98
callq 0x63d0
movq 0x48(%rsp), %rdi
leaq 0x27794(%rip), %rsi     # 0x5424e
callq 0x6370
movq %rax, %rdi
movq 0x414cf(%rip), %rsi     # 0x6df98
callq 0x63d0
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)