// File: /workspace/github_cpp_makefile_star2_O2/walker-xian[P]teisye/heapperf/heapperf.cpp
// Function: application::parse_args(int, char**)
void parse_args(int argc, char *args[])
    {
        for (int i = 1; i < argc; i++)
        {
            string arg(args[i]);

            if (arg == "-h")
            {
                throw runtime_error(_usage);
            }
            else if (arg == "-c")
            {
                if (!args[++i]) throw runtime_error("-c missing a number");
                _case_mask = strtol(args[i], nullptr, 0);
                if (_case_mask <= 0) throw runtime_error("-c invalid number");
            }
            else if (arg == "-l")
            {
                if (!args[++i]) throw runtime_error("-l missing a number");
                _num_of_loops = stoi(args[i]);
                if (_num_of_loops <= 0) throw runtime_error("-l invalid number");
            }
            else if (arg == "-t")
            {
                if (!args[++i]) throw runtime_error("-t missing a number");
                _num_of_threads = stoi(args[i]);
                if (_num_of_threads <= 0) throw runtime_error("-t invalid number");
            }
            else
            {
                _allocator_id = static_cast<allocator_id>(stoi(args[i]));
                if (_allocator_id != _malloc && _allocator_id != _teisye) throw runtime_error("invalid allocator id");
            }
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %rbx
movl %esi, 0x4(%rsp)
movq %rdi, %r14
pushq $0x1
popq %r13
leaq 0x28(%rsp), %r15
leaq 0x8(%rsp), %r12
cmpl 0x4(%rsp), %r13d
jge 0x49a0
movslq %r13d, %rbp
movq (%rbx,%rbp,8), %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0x50e8
movq %r15, %rdi
leaq 0xf8d6(%rip), %rsi      # 0x1411d
callq 0x5123
testb %al, %al
jne 0x49af
movq %r15, %rdi
leaq 0xf8c2(%rip), %rsi      # 0x14120
callq 0x5123
testb %al, %al
je 0x4892
movq 0x8(%rbx,%rbp,8), %rdi
testq %rdi, %rdi
je 0x49ce
xorl %esi, %esi
xorl %edx, %edx
callq 0x4538
movl %eax, 0x84(%r14)
testl %eax, %eax
jg 0x493d
jmp 0x49ed
movq %r15, %rdi
leaq 0xf8ad(%rip), %rsi      # 0x14149
callq 0x5123
testb %al, %al
je 0x48eb
movq 0x8(%rbx,%rbp,8), %rsi
testq %rsi, %rsi
je 0x4a25
movq %r12, %rdi
leaq 0x3(%rsp), %rdx
callq 0x50e8
movq %r12, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x5130
movl %eax, 0x80(%r14)
movq %r12, %rdi
callq 0x4140
cmpl $0x0, 0x80(%r14)
jg 0x493d
jmp 0x4a09
movq %r15, %rdi
leaq 0xf87d(%rip), %rsi      # 0x14172
callq 0x5123
testb %al, %al
je 0x4950
movq 0x8(%rbx,%rbp,8), %rsi
testq %rsi, %rsi
je 0x4a41
movq %r12, %rdi
leaq 0x3(%rsp), %rdx
callq 0x50e8
movq %r12, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x5130
movl %eax, 0x7c(%r14)
movq %r12, %rdi
callq 0x4140
cmpl $0x0, 0x7c(%r14)
jle 0x4a5d
incl %r13d
movq %r15, %rdi
callq 0x4140
incl %r13d
jmp 0x4820
movq (%rbx,%rbp,8), %rsi
movq %r12, %rdi
leaq 0x3(%rsp), %rdx
callq 0x50e8
movq %r12, %rdi
xorl %esi, %esi
pushq $0xa
popq %rdx
callq 0x5130
movl %eax, 0x78(%r14)
movq %r12, %rdi
callq 0x4140
cmpl $0x2, 0x78(%r14)
jb 0x4940
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf808(%rip), %rsi      # 0x1419b
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0x101ff(%rip), %rsi     # 0x14bc0
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf743(%rip), %rsi      # 0x14123
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf738(%rip), %rsi      # 0x14137
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf745(%rip), %rsi      # 0x14160
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf715(%rip), %rsi      # 0x1414c
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf722(%rip), %rsi      # 0x14175
movq %rax, %rdi
callq 0x40f0
jmp 0x4a77
pushq $0x10
popq %rdi
callq 0x4180
movq %rax, %rbx
leaq 0xf71a(%rip), %rsi      # 0x14189
movq %rax, %rdi
callq 0x40f0
movq 0x1c572(%rip), %rsi     # 0x20ff0
movq 0x1c4fb(%rip), %rdx     # 0x20f80
movq %rbx, %rdi
callq 0x4470
jmp 0x4ab4
jmp 0x4ab4
jmp 0x4ab4
jmp 0x4a9f
jmp 0x4a9f
jmp 0x4ab4
jmp 0x4ac1
jmp 0x4ab4
jmp 0x4ac1
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x4140
jmp 0x4ac4
jmp 0x4ab4
jmp 0x4ab4
jmp 0x4ac1
movq %rax, %r14
movq %rbx, %rdi
callq 0x4260
jmp 0x4ac4
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x4140
movq %r14, %rdi
callq 0x44c0