Function at 0x2a3eda770
Capabilities:
Create directory

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xaf8
lea rdi, [rsp + 0x60]
mov qword [rsp + 0xb40], rcx
mov rsi, rdx
xor edx, edx
mov qword [rsp + 0xb50], r8
mov rcx, rdi
mov r8d, 0x201
mov qword [rsp + 0xb58], r9
mov qword [rsp + 0x30], rdi
call sub.msvcrt.dll_memset
xor edx, edx
mov r8d, 0x201
lea rcx, [rsp + 0x270]
call sub.msvcrt.dll_memset
mov rcx, rsi
call sub.msvcrt.dll_strlen
lea r14, [rax + 1]
mov rbx, rax
cmp r14, 0x200
mov qword [rsp + 0x40], r14
ja 0x2a3edac9c
lea rax, [rsp + 0x690]
xor edx, edx
mov r8d, 0x458
mov rcx, rax
mov qword [rsp + 0x48], rax
call sub.msvcrt.dll_memset
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call sub.msvcrt.dll_memcpy
movzx eax, byte [rsp + rbx + 0x5f]
cmp al, 0x2f
je 0x2a3edaa99
cmp al, 0x5c
je 0x2a3edaa99
mov rsi, qword [rsp + 0x40]
mov eax, 0x200
mov byte [rsp + rbx + 0x60], 0x5c
sub rax, rsi
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0xb40]
mov eax, dword [rax + 0x10]
test eax, eax
je 0x2a3edab7d
mov rbp, qword [sym.imp.msvcrt.dll__mkdir]
mov qword [rsp + 0x58], rax
xor esi, esi
nop word cs:[rax + rax]
mov rax, qword [rsp + 0xb40]
mov dword [rsp + 0x3c], esi
mov r8, qword [rax + 0x68]
test r8, r8
je 0x2a3eda89b
cmp esi, dword [rax + 0x10]
jae 0x2a3edac78
mov rax, qword [r8 + 0x20]
mov eax, dword [rax + rsi*4]
add rax, qword [r8]
mov r8, rax
mov qword [rsp + 0x20], 0
mov r9, qword [rsp + 0x48]
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0xb40]
call fcn.2a3ed0a70
test eax, eax
je 0x2a3edac88
lea rbx, [rsp + 0x6e8]
mov rcx, rbx
call sub.msvcrt.dll_strlen
test rax, rax
je 0x2a3edac40
movzx edx, byte [rsp + 0x6e8]
cmp dl, 0x5c
je 0x2a3eda8f1
cmp dl, 0x2f
jne 0x2a3edac80
mov rdx, rbx
nop dword [rax]
movzx ecx, byte [rdx + 1]
add rdx, 1
cmp cl, 0x2f
je 0x2a3eda8f8
cmp cl, 0x5c
je 0x2a3eda8f8
lea r8, [rdx + rax]
xor r10d, r10d
xor ecx, ecx
jmp 0x2a3eda938
lea rdi, [r10 + 0xaf0]
add rcx, 1
lea r11, [rsp + rdi]
mov byte [rcx + r11 - 0x409], al
add rdx, 1
cmp r8, rdx
je 0x2a3eda970
movzx eax, byte [rdx]
lea r9, [rbx + r10]
cmp al, 0x2f
je 0x2a3eda947
cmp al, 0x5c
jne 0x2a3eda918
test rcx, rcx
je 0x2a3eda92f
cmp byte [r9], 0x2e
jne 0x2a3edaa60
cmp byte [r9 + 1], 0
jne 0x2a3edaa60
add rdx, 1
xor ecx, ecx
cmp r8, rdx
jne 0x2a3eda938
nop dword [rax]
test rcx, rcx
je 0x2a3eda98a
cmp byte [r9], 0x2e
jne 0x2a3edac50
cmp byte [r9 + 1], 0
jne 0x2a3edac50
mov byte [r9], 0
mov rdi, qword [rsp + 0x40]
mov rdx, rbx
mov rax, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
lea rcx, [rax + rdi]
call sub.msvcrt.dll_strncpy
movzx ebx, byte [rsp + 0x60]
xor edx, edx
mov r8d, 0x201
lea rdi, [rsp + 0x480]
mov rcx, rdi
mov eax, ebx
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
ja 0x2a3eda9d8
cmp byte [rsp + 0x61], 0x3a
je 0x2a3edabd0
call sub.msvcrt.dll_memset
mov r14, qword [rsp + 0x30]
xor r13d, r13d
xor edx, edx
mov r12d, 1
test bl, bl
je 0x2a3edaab0
movsxd r15, edx
jmp 0x2a3edaa27
add r14, 1
mov byte [rdi + r15], bl
movzx ebx, byte [r14]
test bl, bl
setne dl
cmp r15d, 0x1ff
setne al
add r15, 1
test dl, al
je 0x2a3edaab0
cmp bl, 0x2f
je 0x2a3edaa31
cmp bl, 0x5c
jne 0x2a3edaa00
test r15d, r15d
mov eax, r15d
jle 0x2a3edaa3e
test r12b, r12b
jne 0x2a3edaa48
cmp eax, 2
jle 0x2a3edaa00
test r13b, r13b
je 0x2a3edaa00
mov rcx, rdi
call rbp
cmp eax, 0xffffffff
je 0x2a3edabb8
movzx ebx, byte [r14]
jmp 0x2a3edaa00
cmp byte [r9], 0x2e
jne 0x2a3edaa80
cmp byte [r9 + 1], 0x2e
jne 0x2a3edaa80
cmp byte [r9 + 2], 0
je 0x2a3eda961
nop dword [rax + rax]
add rcx, r10
lea r10, [rcx + 1]
mov byte [rsp + rcx + 0x6e8], al
xor ecx, ecx
lea r9, [rbx + r10]
jmp 0x2a3eda92f
mov eax, 0x200
mov qword [rsp + 0x40], rbx
sub rax, rbx
mov qword [rsp + 0x50], rax
jmp 0x2a3eda845
movzx eax, word [rsp + 0x6a0]
and ax, 0xef00
cmp ax, 0x300
jne 0x2a3edaacc
test byte [rsp + 0x6cf], 0x20
jne 0x2a3edab4b
mov rax, qword [rsp + 0xb40]
mov rdx, qword [rax + 0x68]
test rdx, rdx
je 0x2a3edac28
mov edi, dword [rsp + 0x3c]
cmp edi, dword [rax + 0x10]
jae 0x2a3edac28
mov rax, qword [rdx + 0x20]
mov eax, dword [rax + rsi*4]
add rax, qword [rdx]
je 0x2a3edac28
movzx edx, word [rax + 0x1c]
test dx, dx
je 0x2a3edab0e
cmp byte [rax + rdx + 0x2d], 0x2f
je 0x2a3edab35
test byte [rax + 0x26], 0x10
jne 0x2a3edab35
mov r8, qword [rsp + 0x30]
xor r9d, r9d
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0xb40]
call fcn.2a3eda630
test eax, eax
je 0x2a3edac92
movzx edx, word [rsp + 0x6ce]
lea eax, [rdx - 1]
cmp eax, 0xfffe
jbe 0x2a3edac08
cmp qword [rsp + 0xb50], 0
je 0x2a3edab6e
mov rdx, qword [rsp + 0xb58]
mov rcx, qword [rsp + 0x30]
call qword [rsp + 0xb50]
test eax, eax
js 0x2a3edab7d
add rsi, 1
cmp qword [rsp + 0x58], rsi
jne 0x2a3eda870
xor ebx, ebx
nop
mov rcx, qword [rsp + 0xb40]
mov edx, 1
call fcn.2a3ecbc10
test eax, eax
mov eax, 0xffffffe7
cmove ebx, eax
mov eax, ebx
add rsp, 0xaf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call qword [sym.imp.msvcrt.dll__errno]
cmp dword [rax], 0x11
je 0x2a3edaa56
mov ebx, 0xffffffe9
jmp 0x2a3edab80
call sub.msvcrt.dll_memset
mov r13d, 1
xor r12d, r12d
mov byte [rsp + 0x480], bl
lea r14, [rsp + 0x62]
movzx ebx, byte [rsp + 0x62]
mov edx, 2
mov byte [rsp + 0x481], 0x3a
jmp 0x2a3eda9ed
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll__chmod
test eax, eax
jns 0x2a3edab4b
mov ebx, 0xffffffec
jmp 0x2a3edab80
mov rax, qword [rsp + 0xb40]
mov dword [rax + 0x1c], 0x18
jmp 0x2a3edab14
mov ebx, 0xfffffffe
jmp 0x2a3edab80
cmp byte [r9], 0x2e
jne 0x2a3eda98e
cmp byte [r9 + 1], 0x2e
jne 0x2a3eda98e
cmp byte [r9 + 2], 0
je 0x2a3eda98a
jmp 0x2a3eda98e
xor r8d, r8d
jmp 0x2a3eda89b
mov rdx, rbx
jmp 0x2a3eda90a
mov ebx, 0xfffffffd
jmp 0x2a3edab80
mov ebx, 0xffffffed
jmp 0x2a3edab80
mov ebx, 0xfffffffe
jmp 0x2a3edab9c