// File: sus304[P]ForRocket/src/environment/datetime.cpp
// Function: forrocket::DateTime::DateTime(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
forrocket::DateTime::DateTime(std::string datetime_str) {
    auto datetime_str_vec = split(datetime_str, ' ');
    auto date_str = datetime_str_vec[0];
    auto time_str = datetime_str_vec[1];

    auto date_str_vec = split(date_str, '/');
    year = std::stoi(date_str_vec[0]);
    month = std::stoi(date_str_vec[1]);
    day = std::stoi(date_str_vec[2]);

    auto time_str_vec = split(time_str, ':');
    hour = std::stoi(time_str_vec[0]);
    min = std::stoi(time_str_vec[1]);
    auto sec_str_vec = split(time_str_vec[2], '.');
    sec = std::stoi(sec_str_vec[0]);
    msec = std::stoi(sec_str_vec[1]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0x28(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
movl $0x20, %edx
callq 0x7540
movq -0xc8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x7850
movq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x6200
jmp 0x33bf1
leaq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0x7850
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
callq 0x6200
jmp 0x33c0d
leaq -0x90(%rbp), %rdi
leaq -0x48(%rbp), %rsi
movl $0x2f, %edx
callq 0x7540
jmp 0x33c24
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0xe0(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x7850
movq -0xe0(%rbp), %rsi
movq %rax, %rdi
movl $0xa, %edx
callq 0x34120
movl %eax, -0xd4(%rbp)
jmp 0x33c57
movq -0xd0(%rbp), %rax
movl -0xd4(%rbp), %ecx
movl %ecx, (%rax)
leaq -0x90(%rbp), %rdi
movl $0x1, %esi
callq 0x7850
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x34120
movl %eax, -0xe4(%rbp)
jmp 0x33c90
movq -0xd0(%rbp), %rax
movl -0xe4(%rbp), %ecx
movl %ecx, 0x4(%rax)
leaq -0x90(%rbp), %rdi
movl $0x2, %esi
callq 0x7850
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x34120
movl %eax, -0xe8(%rbp)
jmp 0x33cca
movq -0xd0(%rbp), %rax
movl -0xe8(%rbp), %ecx
movl %ecx, 0x8(%rax)
leaq -0xa8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
movl $0x3a, %edx
callq 0x7540
jmp 0x33cf1
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0xf8(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x7850
movq -0xf8(%rbp), %rsi
movq %rax, %rdi
movl $0xa, %edx
callq 0x34120
movl %eax, -0xec(%rbp)
jmp 0x33d24
movq -0xd0(%rbp), %rax
movl -0xec(%rbp), %ecx
movl %ecx, 0xc(%rax)
leaq -0xa8(%rbp), %rdi
movl $0x1, %esi
callq 0x7850
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x34120
movl %eax, -0xfc(%rbp)
jmp 0x33d5e
movq -0xd0(%rbp), %rax
movl -0xfc(%rbp), %ecx
movl %ecx, 0x10(%rax)
leaq -0xa8(%rbp), %rdi
movl $0x2, %esi
callq 0x7850
movq %rax, %rsi
leaq -0xc0(%rbp), %rdi
movl $0x2e, %edx
callq 0x7540
jmp 0x33d95
xorl %eax, %eax
movl %eax, %esi
movq %rsi, -0x108(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x7850
movq -0x108(%rbp), %rsi
movq %rax, %rdi
movl $0xa, %edx
callq 0x34120
movl %eax, -0x100(%rbp)
jmp 0x33dc8
movq -0xd0(%rbp), %rax
movl -0x100(%rbp), %ecx
movl %ecx, 0x14(%rax)
leaq -0xc0(%rbp), %rdi
movl $0x1, %esi
callq 0x7850
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
callq 0x34120
movl %eax, -0x10c(%rbp)
jmp 0x33e02
movq -0xd0(%rbp), %rax
movl -0x10c(%rbp), %ecx
movl %ecx, 0x18(%rax)
leaq -0xc0(%rbp), %rdi
callq 0x7870
leaq -0xa8(%rbp), %rdi
callq 0x7870
leaq -0x90(%rbp), %rdi
callq 0x7870
leaq -0x78(%rbp), %rdi
callq 0x6898
leaq -0x48(%rbp), %rdi
callq 0x6898
leaq -0x28(%rbp), %rdi
callq 0x7870
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x33ee2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x33ed9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x33ed0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x33ec4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x33eb8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x7870
leaq -0xa8(%rbp), %rdi
callq 0x7870
leaq -0x90(%rbp), %rdi
callq 0x7870
leaq -0x78(%rbp), %rdi
callq 0x6898
leaq -0x48(%rbp), %rdi
callq 0x6898
leaq -0x28(%rbp), %rdi
callq 0x7870
movq -0x50(%rbp), %rdi
callq 0x6760
nopw %cs:(%rax,%rax)