// File: FakePsyho[P]halite2/./hlt/hlt.hpp
// Function: hlt::initialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static Metadata initialize(const std::string& bot_name) {
        std::cout.sync_with_stdio(false);

        std::stringstream iss1(in::get_string());
        int player_id;
        iss1 >> player_id;

        std::stringstream iss2(in::get_string());
        int map_width;
        int map_height;
        iss2 >> map_width >> map_height;

        Log::open(std::to_string(player_id) + "_" + bot_name + ".log");

        in::setup(bot_name, map_width, map_height);

        return {
                static_cast<PlayerId>(player_id),
                hlt::in::get_map()
        };
    }

// Assembly:
subq $0x428, %rsp            # imm = 0x428
movq %rdi, 0x18(%rsp)
movq %rdi, %rax
movq %rax, 0x20(%rsp)
movq %rdi, 0x420(%rsp)
movq %rsi, 0x418(%rsp)
xorl %edi, %edi
callq 0x3110
leaq 0x270(%rsp), %rdi
callq 0x124b0
movl $0x10, %edi
movl $0x8, %esi
callq 0x1b350
movl %eax, 0x2c(%rsp)
jmp 0x1178d
movl 0x2c(%rsp), %edx
leaq 0x290(%rsp), %rdi
leaq 0x270(%rsp), %rsi
callq 0x33b0
jmp 0x117a8
leaq 0x270(%rsp), %rdi
callq 0x34c8
leaq 0x290(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x3170
jmp 0x117cc
leaq 0xb8(%rsp), %rdi
callq 0x124b0
jmp 0x117db
movl $0x10, %edi
movl $0x8, %esi
callq 0x1b350
movl %eax, 0x14(%rsp)
jmp 0x117f0
movl 0x14(%rsp), %edx
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x33b0
jmp 0x1180b
leaq 0xb8(%rsp), %rdi
callq 0x34c8
leaq 0xd8(%rsp), %rdi
leaq 0xb4(%rsp), %rsi
callq 0x3170
movq %rax, 0x8(%rsp)
jmp 0x11834
movq 0x8(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x3170
jmp 0x11848
movl 0x260(%rsp), %esi
leaq 0x30(%rsp), %rdi
callq 0x1b430
jmp 0x1185b
leaq 0x29bf5(%rip), %rdx     # 0x3b457
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x1b390
jmp 0x11873
movq 0x418(%rsp), %rdx
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x1b3e0
jmp 0x1188c
leaq 0x29bc6(%rip), %rdx     # 0x3b459
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1b390
jmp 0x118a7
leaq 0x90(%rsp), %rdi
callq 0x1b370
jmp 0x118b6
leaq 0x90(%rsp), %rdi
callq 0x34c8
leaq 0x70(%rsp), %rdi
callq 0x34c8
leaq 0x50(%rsp), %rdi
callq 0x34c8
leaq 0x30(%rsp), %rdi
callq 0x34c8
movq 0x418(%rsp), %rdi
movl 0xb4(%rsp), %esi
movl 0xb0(%rsp), %edx
callq 0x38db0
jmp 0x118fe
movq 0x18(%rsp), %rdi
movl 0x260(%rsp), %eax
movl %eax, (%rdi)
addq $0x8, %rdi
callq 0x38df0
jmp 0x11917
leaq 0xd8(%rsp), %rdi
callq 0x31e0
leaq 0x290(%rsp), %rdi
callq 0x31e0
movq 0x20(%rsp), %rax
addq $0x428, %rsp            # imm = 0x428
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x270(%rsp), %rdi
callq 0x34c8
jmp 0x11a57
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x11a4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x34c8
jmp 0x11a4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x11a3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x11a33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x11a29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
jmp 0x11a1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x268(%rsp)
movl %eax, 0x264(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x34c8
leaq 0x70(%rsp), %rdi
callq 0x34c8
leaq 0x50(%rsp), %rdi
callq 0x34c8
leaq 0x30(%rsp), %rdi
callq 0x34c8
leaq 0xd8(%rsp), %rdi
callq 0x31e0
leaq 0x290(%rsp), %rdi
callq 0x31e0
movq 0x268(%rsp), %rdi
callq 0x3440
nopw %cs:(%rax,%rax)