// File: istellartech[P]OpenTsiolkovsky/src/rocket.cpp
// Function: Rocket::Rocket(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Rocket::Rocket(string input_filename){
    std::ifstream fin(input_filename);
    if( !fin ){
        std::ifstream fin("./" + input_filename);
        cout << "hoge" << input_filename << endl;
    }
    if( !fin ){
        cout << "Error:Input data file not found" << endl;
        return;
    }
    picojson::value v;
    fin >> v;
    if (std::cin.fail()) {
        std::cerr << picojson::get_last_error() << std::endl;
        return;
    }
    picojson::object& o              = v.get<picojson::object>();
    
    for (int i=1; i<100; i+=1){
        if (! o["stage" + std::to_string(i)].is<picojson::object>()){
            break;
        }
        picojson::object& o_stage = o["stage" + std::to_string(i)].get<picojson::object>();
        RocketStage temp(o_stage, o);
        temp.num_stage = i;
        rs.push_back(temp);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x14c0, %rsp           # imm = 0x14C0
movq %rsi, -0x1428(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x1438(%rbp)
movq %rdi, %rax
movq %rax, -0x1440(%rbp)
callq 0x1d6b0
movq -0x1438(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0x1430(%rbp)
callq 0x1d6b0
movq -0x1428(%rbp), %rsi
leaq -0x218(%rbp), %rdi
movl $0x8, %edx
callq 0x66d0
jmp 0xcf55
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x6220
movb %al, -0x1441(%rbp)
jmp 0xcf75
movb -0x1441(%rbp), %al
testb $0x1, %al
jne 0xcf84
jmp 0xd095
movq -0x1428(%rbp), %rdx
leaq 0x463b2(%rip), %rsi     # 0x53344
leaq -0x450(%rbp), %rdi
callq 0xad30
jmp 0xcfa0
leaq -0x430(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl $0x8, %edx
callq 0x66d0
jmp 0xcfba
leaq -0x450(%rbp), %rdi
callq 0x68a8
movq 0x6bfe3(%rip), %rdi     # 0x78fb0
leaq 0x46373(%rip), %rsi     # 0x53347
callq 0x6460
movq %rax, -0x1450(%rbp)
jmp 0xcfe2
movq -0x1428(%rbp), %rsi
movq -0x1450(%rbp), %rdi
callq 0x6410
movq %rax, -0x1458(%rbp)
jmp 0xcffe
movq -0x1458(%rbp), %rdi
movq 0x6bf4c(%rip), %rsi     # 0x78f58
callq 0x64c0
jmp 0xd013
leaq -0x430(%rbp), %rdi
callq 0x6140
jmp 0xd095
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xd4ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xd4e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x68a8
jmp 0xd4e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x6140
jmp 0xd4e3
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x6220
movb %al, -0x1459(%rbp)
jmp 0xd0b5
movb -0x1459(%rbp), %al
testb $0x1, %al
jne 0xd0c1
jmp 0xd101
movq 0x6bee8(%rip), %rdi     # 0x78fb0
leaq 0x4627d(%rip), %rsi     # 0x5334c
callq 0x6460
movq %rax, -0x1468(%rbp)
jmp 0xd0dd
movq -0x1468(%rbp), %rdi
movq 0x6be6d(%rip), %rsi     # 0x78f58
callq 0x64c0
jmp 0xd0f2
movl $0x1, -0x454(%rbp)
jmp 0xd4c2
leaq -0x468(%rbp), %rdi
callq 0x1d6d0
jmp 0xd10f
leaq -0x218(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x1d6f0
jmp 0xd124
movq 0x6bea5(%rip), %rdi     # 0x78fd0
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x6030
movb %al, -0x1469(%rbp)
jmp 0xd142
movb -0x1469(%rbp), %al
testb $0x1, %al
jne 0xd14e
jmp 0xd1b3
callq 0x1d7c0
movq %rax, -0x1478(%rbp)
jmp 0xd15c
movq -0x1478(%rbp), %rsi
movq 0x6be7e(%rip), %rdi     # 0x78fe8
callq 0x6410
movq %rax, -0x1480(%rbp)
jmp 0xd178
movq -0x1480(%rbp), %rdi
movq 0x6bdd2(%rip), %rsi     # 0x78f58
callq 0x64c0
jmp 0xd18d
movl $0x1, -0x454(%rbp)
jmp 0xd4b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xd4d7
leaq -0x468(%rbp), %rdi
callq 0x1d7d0
movq %rax, -0x1488(%rbp)
jmp 0xd1c8
movq -0x1488(%rbp), %rax
movq %rax, -0x470(%rbp)
movl $0x1, -0x474(%rbp)
cmpl $0x64, -0x474(%rbp)
jge 0xd4ac
movq -0x470(%rbp), %rax
movq %rax, -0x1490(%rbp)
movl -0x474(%rbp), %esi
leaq -0x4b8(%rbp), %rdi
callq 0x1d990
jmp 0xd20f
leaq 0x46156(%rip), %rsi     # 0x5336c
leaq -0x498(%rbp), %rdi
leaq -0x4b8(%rbp), %rdx
callq 0x1d940
jmp 0xd22b
movq -0x1490(%rbp), %rdi
leaq -0x498(%rbp), %rsi
callq 0x1d860
movq %rax, -0x1498(%rbp)
jmp 0xd247
movq -0x1498(%rbp), %rdi
callq 0x1dab0
movb %al, -0x1499(%rbp)
jmp 0xd25b
movb -0x1499(%rbp), %al
xorb $-0x1, %al
movb %al, -0x149a(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x68a8
leaq -0x4b8(%rbp), %rdi
callq 0x68a8
movb -0x149a(%rbp), %al
testb $0x1, %al
jne 0xd28d
jmp 0xd2d5
jmp 0xd4ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xd2c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x498(%rbp), %rdi
callq 0x68a8
leaq -0x4b8(%rbp), %rdi
callq 0x68a8
jmp 0xd4d7
movq -0x470(%rbp), %rax
movq %rax, -0x14a8(%rbp)
movl -0x474(%rbp), %esi
leaq -0x500(%rbp), %rdi
callq 0x1d990
jmp 0xd2f7
leaq 0x4606e(%rip), %rsi     # 0x5336c
leaq -0x4e0(%rbp), %rdi
leaq -0x500(%rbp), %rdx
callq 0x1d940
jmp 0xd313
movq -0x14a8(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x1d860
movq %rax, -0x14b0(%rbp)
jmp 0xd32f
movq -0x14b0(%rbp), %rdi
callq 0x1d7d0
movq %rax, -0x14b8(%rbp)
jmp 0xd344
leaq -0x4e0(%rbp), %rdi
callq 0x68a8
leaq -0x500(%rbp), %rdi
callq 0x68a8
movq -0x14b8(%rbp), %rax
movq %rax, -0x4c0(%rbp)
movq -0x4c0(%rbp), %rsi
leaq -0x13f0(%rbp), %rdi
callq 0x1dad0
jmp 0xd37f
movq -0x470(%rbp), %rsi
leaq -0x1420(%rbp), %rdi
callq 0x1dad0
jmp 0xd394
leaq -0x13c0(%rbp), %rdi
leaq -0x13f0(%rbp), %rsi
leaq -0x1420(%rbp), %rdx
callq 0xd520
jmp 0xd3b0
leaq -0x1420(%rbp), %rdi
callq 0xb400
leaq -0x13f0(%rbp), %rdi
callq 0xb400
movq -0x1440(%rbp), %rdi
movl -0x474(%rbp), %eax
movl %eax, -0x1170(%rbp)
leaq -0x13c0(%rbp), %rsi
callq 0x1db00
jmp 0xd3e9
leaq -0x13c0(%rbp), %rdi
callq 0xb260
movl -0x474(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x474(%rbp)
jmp 0xd1e0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xd43b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x4e0(%rbp), %rdi
callq 0x68a8
leaq -0x500(%rbp), %rdi
callq 0x68a8
jmp 0xd4d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0xd47e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x1420(%rbp), %rdi
callq 0xb400
leaq -0x13f0(%rbp), %rdi
callq 0xb400
jmp 0xd4d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x13c0(%rbp), %rdi
callq 0xb260
jmp 0xd4d7
movl $0x0, -0x454(%rbp)
leaq -0x468(%rbp), %rdi
callq 0xb6c0
leaq -0x218(%rbp), %rdi
callq 0x6140
addq $0x14c0, %rsp           # imm = 0x14C0
popq %rbp
retq
leaq -0x468(%rbp), %rdi
callq 0xb6c0
leaq -0x218(%rbp), %rdi
callq 0x6140
movq -0x1430(%rbp), %rdi
callq 0xb0e0
movq -0x1438(%rbp), %rdi
callq 0xb0e0
movq -0x220(%rbp), %rdi
callq 0x67a0
nopw %cs:(%rax,%rax)