Function at 0x40ea20
Capabilities:
Create directory

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rsi, rcx
xor r15d, r15d
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x34], r15d
mov ebx, r15d
lea r12d, [r15 + 1]
cmp word [rcx], r15w
je 0x40ea6f
mov rax, rcx
add ebx, r12d
add rax, 2
cmp word [rax], r15w
jne 0x40ea62
mov edx, ebx
lea rcx, [rsp + 0x28]
call fcn.00401ce0
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
sub rcx, rsi
movzx eax, word [rsi]
mov word [rcx + rsi], ax
add rsi, 2
cmp ax, r15w
jne 0x40ea86
mov dword [rsp + 0x30], ebx
cmp ebx, r15d
je 0x40eb2e
movsxd rax, ebx
lea r9, [rdi + rax*2 - 2]
cmp word [r9], 0x5c
je 0x40eac3
cmp r9, rdi
je 0x40eacb
sub r9, 2
cmp word [r9], 0x5c
jne 0x40eab3
sub r9, rdi
sar r9, 1
jmp 0x40ead1
mov r9d, 0xffffffff
cmp r9d, r15d
jle 0x40eb2e
lea eax, [rbx - 1]
cmp r9d, eax
jne 0x40eb2e
cmp ebx, 3
jne 0x40eaef
cmp word [rdi + 2], 0x3a
jne 0x40eaef
jmp 0x40ecd3
mov esi, r12d
lea eax, [r9 + 1]
cmp eax, ebx
jle 0x40eb04
mov esi, ebx
sub esi, r9d
cmp esi, r15d
jle 0x40eb2e
lea ecx, [rsi + r9]
mov eax, ebx
sub eax, ecx
add eax, r12d
movsxd r8, eax
add r8, r8
movsxd rax, ecx
lea rdx, [rdi + rax*2]
movsxd rax, r9d
lea rcx, [rdi + rax*2]
call sub.msvcrt.dll_memmove
sub ebx, esi
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x38], r15
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x44], r15d
mov edx, ebx
lea rcx, [rsp + 0x38]
call fcn.00401ce0
mov rbp, qword [rsp + 0x38]
mov rcx, rbp
mov rdx, rdi
sub rdx, rbp
movzx eax, word [rdx + rcx]
mov word [rcx], ax
add rcx, 2
cmp ax, r15w
jne 0x40eb57
mov r14d, ebx
mov dword [rsp + 0x40], ebx
mov esi, ebx
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, r15d
jne 0x40ecf0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40ec57
cmp ebx, r15d
je 0x40edee
movsxd rax, ebx
lea rsi, [rdi + rax*2 - 2]
cmp word [rsi], 0x5c
je 0x40ebbc
cmp rsi, rdi
je 0x40ebc4
sub rsi, 2
cmp word [rsi], 0x5c
jne 0x40ebad
sub rsi, rdi
sar rsi, 1
jmp 0x40ebc9
mov esi, 0xffffffff
cmp esi, r15d
jl 0x40edee
cmp esi, r15d
je 0x40edee
movsxd rax, esi
cmp word [rdi + rax*2 - 2], 0x3a
je 0x40edd9
mov r8d, esi
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call fcn.0040a2f0
mov r13, rax
lea rax, [rsp + 0x28]
cmp r13, rax
je 0x40ec48
mov dword [rsp + 0x30], r15d
mov word [rdi], r15w
mov edx, dword [r13 + 8]
lea rcx, [rsp + 0x28]
call fcn.00401ce0
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
mov rdx, qword [r13]
movzx eax, word [rdx]
mov word [rcx], ax
add rcx, 2
add rdx, 2
cmp ax, r15w
jne 0x40ec2c
mov ebx, dword [r13 + 8]
mov dword [rsp + 0x30], ebx
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
jmp 0x40eb71
mov qword [rsp + 0x80], r15
mov dword [rsp + 0x88], r15d
mov dword [rsp + 0x8c], r15d
mov edx, 3
lea rcx, [rsp + 0x80]
call fcn.00401ce0
nop
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.0040f360
cmp al, r15b
jne 0x40ecad
mov rcx, qword [rsp + 0x80]
call sub.msvcrt.dll_free
nop
mov rcx, rbp
call sub.msvcrt.dll_free
nop
jmp 0x40ecd3
mov eax, dword [rsp + 0x78]
shr eax, 4
test r12b, al
jne 0x40ece3
mov rcx, qword [rsp + 0x80]
call sub.msvcrt.dll_free
nop
mov rcx, rbp
call sub.msvcrt.dll_free
nop
mov r12b, r15b
mov rcx, rdi
call sub.msvcrt.dll_free
mov al, r12b
jmp 0x40ee01
mov rcx, qword [rsp + 0x80]
call sub.msvcrt.dll_free
mov dword [rsp + 0x30], r15d
mov word [rdi], r15w
mov edx, r14d
lea rcx, [rsp + 0x28]
call fcn.00401ce0
mov r11, rbp
mov rdi, qword [rsp + 0x28]
mov rcx, rdi
sub rcx, rbp
movzx eax, word [r11]
mov word [rcx + r11], ax
add r11, 2
cmp ax, r15w
jne 0x40ed14
mov dword [rsp + 0x30], r14d
cmp esi, r14d
jge 0x40edc3
lea eax, [rsi + 1]
movsxd rcx, eax
lea rsi, [rdi + rcx*2]
movzx eax, word [rsi]
cmp ax, 0x5c
je 0x40ed5b
cmp ax, r15w
je 0x40ed63
add rsi, 2
mov ax, word [rsi]
cmp ax, 0x5c
jne 0x40ed48
sub rsi, rdi
sar rsi, 1
jmp 0x40ed68
mov esi, 0xffffffff
cmp esi, r15d
cmovl esi, r14d
mov r8d, esi
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x28]
call fcn.0040a2f0
xor edx, edx
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, r15d
setne al
cmp al, r15b
sete bl
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
cmp bl, r15b
jne 0x40edae
cmp esi, r14d
jl 0x40ed35
jmp 0x40edc3
mov rcx, rbp
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
xor al, al
jmp 0x40ee01
mov rcx, rbp
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
mov al, r12b
jmp 0x40ee01
mov rcx, rbp
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
xor al, al
jmp 0x40ee01
mov rcx, rbp
call sub.msvcrt.dll_free
nop
mov rcx, rdi
call sub.msvcrt.dll_free
xor al, al
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret