// File: xx01cyx[P]LSM-Tree/./utils.h
// Function: utils::mkdir(char const*)
static inline int mkdir(const char *path){
        std::string currentPath = "";
        std::string dirName;
        std::stringstream ss(path);

        while (std::getline(ss, dirName, '/')){
            currentPath += dirName;
            if (!dirExists(currentPath) && _mkdir(currentPath.c_str()) != 0){
                return -1;
            }
            currentPath += "/";
        }
        return 0;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x10(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x4570
movq -0x248(%rbp), %rdx
leaq 0x16441(%rip), %rsi     # 0x2300e
leaq -0x30(%rbp), %rdi
callq 0x4b40
jmp 0xcbd8
leaq -0x31(%rbp), %rdi
callq 0x4320
leaq -0x68(%rbp), %rdi
callq 0x4410
movq -0x10(%rbp), %rax
movq %rax, -0x258(%rbp)
leaq -0x211(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x4570
movq -0x258(%rbp), %rsi
movq -0x250(%rbp), %rdx
leaq -0x210(%rbp), %rdi
callq 0x4b40
jmp 0xcc24
movl $0x10, %edi
movl $0x8, %esi
callq 0x9bb0
movl %eax, -0x25c(%rbp)
jmp 0xcc3b
movl -0x25c(%rbp), %edx
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x44c0
jmp 0xcc56
leaq -0x210(%rbp), %rdi
callq 0x4608
leaq -0x211(%rbp), %rdi
callq 0x4320
leaq -0x1f0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
movl $0x2f, %edx
callq 0x45a0
movq %rax, -0x268(%rbp)
jmp 0xcc8c
movq -0x268(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4390
movb %al, -0x269(%rbp)
jmp 0xccaa
movb -0x269(%rbp), %al
testb $0x1, %al
jne 0xccb9
jmp 0xcdfb
leaq -0x30(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x43b0
jmp 0xccc8
leaq -0x238(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x4120
jmp 0xccda
leaq -0x238(%rbp), %rdi
callq 0xcea0
movb %al, -0x26a(%rbp)
jmp 0xccee
movb -0x26a(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x26b(%rbp)
jne 0xcd2e
jmp 0xcd03
leaq -0x30(%rbp), %rdi
callq 0x4100
movq %rax, %rdi
callq 0xcf00
movl %eax, -0x270(%rbp)
jmp 0xcd1c
movl -0x270(%rbp), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x26b(%rbp)
movb -0x26b(%rbp), %al
movb %al, -0x271(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x4608
movb -0x271(%rbp), %al
testb $0x1, %al
jne 0xcd55
jmp 0xcde4
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl $0x1, -0x23c(%rbp)
jmp 0xce0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x4320
jmp 0xce54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xcdab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x4608
leaq -0x211(%rbp), %rdi
callq 0x4320
jmp 0xce42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xce36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x4608
jmp 0xce36
leaq 0x164c7(%rip), %rsi     # 0x232b2
leaq -0x30(%rbp), %rdi
callq 0x42b0
jmp 0xcdf6
jmp 0xcc6e
movl $0x0, -0x4(%rbp)
movl $0x1, -0x23c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x4200
leaq -0x68(%rbp), %rdi
callq 0x4608
leaq -0x30(%rbp), %rdi
callq 0x4608
movl -0x4(%rbp), %eax
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
leaq -0x1f0(%rbp), %rdi
callq 0x4200
leaq -0x68(%rbp), %rdi
callq 0x4608
leaq -0x30(%rbp), %rdi
callq 0x4608
movq -0x40(%rbp), %rdi
callq 0x4560
nopl (%rax)