Function at 0x4ddee0
Capabilities:
Create directory

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x8c
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0xa4]
mov ebp, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
lea eax, [edi*4]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
test eax, eax
mov dword [esp + 0x34], eax
je 0x4de63b
xor esi, esi
test edi, edi
mov dword [esp + 0x28], 0
je 0x4ddf7d
lea esi, [esi]
mov ebx, dword [ebp + esi*4]
mov eax, ebx
jmp 0x4ddf43
add eax, 1
mov dword [esp + 4], 0x501b5c
mov dword [esp], eax
call sub.msvcrt.dll_strstr
test eax, eax
je 0x4ddfa0
cmp ebx, eax
je 0x4ddf61
cmp byte [eax - 1], 0x5c
jne 0x4ddf40
movzx edx, byte [eax + 2]
test dl, dl
je 0x4ddf6e
cmp dl, 0x5c
jne 0x4ddf40
add esi, 1
cmp edi, esi
jne 0x4ddf30
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x4ddfd0
mov eax, dword [esp + 0x34]
mov dword [esp + 0xa0], eax
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.004f1ae0
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__strdup]
test eax, eax
je 0x4de657
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
add esi, 1
cmp edi, esi
mov dword [edx + ecx*4], eax
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
jne 0x4ddf30
jmp 0x4ddf75
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll__mkdir]
mov dword [esp + 0x30], eax
call eax
test eax, eax
jne 0x4de53c
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
xor ebx, ebx
mov ebp, dword [edi + ebx*4]
test ebp, ebp
je 0x4de1a5
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
test eax, eax
je 0x4de170
lea edx, [ebp + eax]
cmp byte [edx], 0x5c
jne 0x4de035
nop
lea esi, [esi]
sub eax, 1
mov byte [edx], 0
cmp byte [ebp + eax], 0x5c
lea edx, [ebp + eax]
je 0x4de020
test eax, eax
je 0x4de050
mov dword [esp + 4], 0x5c
mov dword [esp], ebp
call sub.msvcrt.dll_strrchr
test eax, eax
je 0x4de1c6
mov byte [eax], 0
add ebx, 1
cmp esi, ebx
jne 0x4ddff4
mov eax, dword [esp + 0x28]
lea ebx, [eax*4]
mov dword [esp], ebx
call sub.msvcrt.dll_malloc
test eax, eax
mov dword [esp + 0x44], eax
je 0x4de5f5
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
mov dword [esp + 0xc], 0x4dcb70
mov dword [esp + 8], 4
mov dword [esp], edi
mov dword [esp + 4], esi
call sub.msvcrt.dll_qsort
mov eax, dword [edi]
mov ecx, edi
mov edi, dword [esp + 0x44]
cmp esi, 1
mov dword [edi], eax
je 0x4de673
lea eax, [ecx + ebx - 4]
mov edi, ecx
mov dword [esp + 0x40], 1
mov dword [esp + 0x3c], eax
jmp 0x4de13a
cmp dl, 0x5c
sete dl
movzx edx, dl
add esi, edx
test eax, eax
je 0x4de582
movzx ecx, byte [eax]
mov ebp, eax
cmp cl, 0x2e
je 0x4de1f8
xor eax, eax
cmp cl, 0x5c
sete al
add ebp, eax
mov dword [esp], ebp
call sub.msvcrt.dll_strlen
mov dword [esp], esi
mov dword [esp + 0x38], eax
call sub.msvcrt.dll_strlen
mov ecx, dword [esp + 0x38]
cmp ecx, eax
ja 0x4de11c
movzx eax, byte [esi + ecx]
cmp al, 0x5c
je 0x4de210
test al, al
je 0x4de210
add dword [esp + 0x40], 1
add edi, 4
cmp edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [eax + ecx*4 - 4], ebx
je 0x4de22d
mov ebx, dword [edi + 4]
mov eax, dword [edi]
test ebx, ebx
je 0x4de5ab
movzx edx, byte [ebx]
mov esi, ebx
cmp dl, 0x2e
jne 0x4de0c1
cmp byte [ebx + 1], 0x5c
jne 0x4de0cc
add esi, 2
je 0x4de1d3
movzx edx, byte [ebx + 2]
jmp 0x4de0c1
mov dword [esp + 8], 0x32d
mov dword [esp + 4], str.util.c
mov dword [esp], str.len___0
mov dword [esp + 0x38], eax
call fcn.004ec460
cmp byte [ebp], 0x5c
mov edx, ebp
jne 0x4de050
mov eax, dword [esp + 0x38]
jmp 0x4de020
mov dword [esp + 8], 0x329
mov dword [esp + 4], str.util.c
mov dword [esp], str.pathname___NULL
call fcn.004ec460
jmp 0x4ddfff
mov byte [ebp], 0x2e
mov byte [ebp + 1], 0
jmp 0x4de050
mov dword [esp + 8], 0x345
mov dword [esp + 4], str.util.c
mov dword [esp], str.pathname___NULL
call fcn.004ec460
movzx eax, byte [pe_dos_header]
ud2
cmp byte [eax + 1], 0x5c
jne 0x4de0ec
add ebp, 2
je 0x4de1d3
movzx ecx, byte [eax + 2]
jmp 0x4de0e2
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov dword [esp], ebp
call sub.msvcrt.dll_strncmp
test eax, eax
jne 0x4de11c
jmp 0x4de121
test ecx, ecx
je 0x4de3c3
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4de5d4
cmp byte [esi], 0x2e
lea eax, [esi + 2]
mov edi, esi
mov dword [esp + 0x4c], eax
jne 0x4de267
cmp byte [esi + 1], 0x5c
mov edi, eax
cmovne edi, esi
lea eax, [esi + 2]
lea ebp, [esp + 0x50]
mov dword [esp + 0x48], eax
jmp 0x4de2be
movzx eax, word [esp + 0x56]
and ax, 0xf000
cmp ax, 0x4000
je 0x4de29f
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], str.zstd:_expected_directory:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
mov dword [esp], edi
mov eax, dword [esp + 0x30]
call eax
test eax, eax
jne 0x4de35f
mov dword [esp], edi
call fcn.004f1ae0
mov byte [ebx], 0x5c
lea edi, [ebx + 1]
mov dword [esp + 4], 0x5c
mov dword [esp], edi
call sub.msvcrt.dll_strchr
test eax, eax
mov ebx, eax
je 0x4de40f
cmp edi, ebx
je 0x4de2bb
mov byte [ebx], 0
movzx eax, byte [esi]
mov edx, esi
cmp al, 0x2e
je 0x4de3f0
cmp al, 0x5c
sete al
movzx eax, al
add edx, eax
mov eax, dword [esp + 0x2c]
call fcn.004dc620
test eax, eax
mov edi, eax
je 0x4de3ac
mov dword [esp + 4], ebp
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__stati64]
test eax, eax
je 0x4de274
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], str.zstd:_failed_to_get_DIR_stats__s:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
mov dword [esp], edi
mov eax, dword [esp + 0x30]
call eax
test eax, eax
je 0x4de2b0
mov edx, dword [sym.imp.msvcrt.dll__errno]
mov dword [esp + 0x38], edx
call edx
cmp dword [eax], 0x11
mov edx, dword [esp + 0x38]
je 0x4de2b0
call edx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], edi
mov dword [esp + 4], str.zstd:_failed_to_create_DIR__s:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
mov dword [esp], edi
call fcn.004f1ae0
add dword [esp + 0x3c], 1
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x40]
jb 0x4de23d
mov eax, dword [esp + 0x44]
mov dword [esp], eax
xor ebx, ebx
call fcn.004f1ae0
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
mov eax, dword [edi + ebx*4]
add ebx, 1
mov dword [esp], eax
call fcn.004f1ae0
cmp esi, ebx
jne 0x4de3d5
jmp 0x4ddf7d
cmp byte [esi + 1], 0x5c
jne 0x4de2f6
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x4de1d3
movzx eax, byte [esi + 2]
jmp 0x4de2ec
movzx eax, byte [esi]
cmp al, 0x2e
je 0x4de516
mov dword [esp + 0x48], esi
cmp al, 0x5c
sete al
movzx eax, al
add dword [esp + 0x48], eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
call fcn.004dc620
test eax, eax
mov ebx, eax
je 0x4de3ac
lea eax, [esp + 0x50]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.msvcrt.dll__stati64]
test eax, eax
jne 0x4de49b
movzx eax, word [esp + 0x56]
and ax, 0xf000
cmp ax, 0x4000
je 0x4de481
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], str.zstd:_expected_directory:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
mov dword [esp], ebx
mov eax, dword [esp + 0x30]
call eax
test eax, eax
jne 0x4de4d8
mov dword [esp], ebx
call fcn.004f1ae0
jmp 0x4de3ac
call dword [sym.imp.msvcrt.dll__errno]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], esi
mov dword [esp + 4], str.zstd:_failed_to_get_DIR_stats__s:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
mov dword [esp], ebx
mov eax, dword [esp + 0x30]
call eax
test eax, eax
je 0x4de48e
mov esi, dword [sym.imp.msvcrt.dll__errno]
call esi
cmp dword [eax], 0x11
je 0x4de48e
call esi
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.zstd:_failed_to_create_DIR__s:__s_n
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
jmp 0x4de48e
cmp byte [esi + 1], 0x5c
je 0x4de527
mov dword [esp + 0x48], esi
mov edx, esi
jmp 0x4de42e
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4de1d3
movzx eax, byte [esi + 2]
jmp 0x4de41e
mov ebx, dword [sym.imp.msvcrt.dll__errno]
call ebx
cmp dword [eax], 0x11
je 0x4ddfea
call ebx
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_strerror
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], str.zstd:_failed_to_create_DIR__s:__s_n
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
jmp 0x4ddfea
mov dword [esp + 8], 0x34e
mov dword [esp + 4], str.util.c
mov dword [esp], str.pathname___NULL
mov dword [esp + 0x38], eax
call fcn.004ec460
mov eax, dword [esp + 0x38]
jmp 0x4de0d4
mov dword [esp + 8], 0x34e
mov dword [esp + 4], str.util.c
mov dword [esp], str.pathname___NULL
mov dword [esp + 0x38], eax
call fcn.004ec460
mov eax, dword [esp + 0x38]
jmp 0x4de147
mov dword [esp + 8], 0x34e
mov dword [esp + 4], str.util.c
mov dword [esp], str.pathname___NULL
call fcn.004ec460
jmp 0x4de250
mov edx, dword [0x51ae28]
test edx, edx
jle 0x4de62f
mov dword [esp + 0x10], str.uniqueDirNames___NULL
mov dword [esp + 0xc], 0x3d7
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], str.util.c
mov dword [esp + 4], str.Error_:__s___i_:__s
add eax, 0x40
mov dword [esp], eax
call fcn.004dc5f0
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov esi, dword [0x51ae28]
test esi, esi
jle 0x4de62f
mov dword [esp + 0x10], str.srcFileNames___NULL
mov dword [esp + 0xc], 0x401
jmp 0x4de60f
mov ebx, dword [0x51ae28]
test ebx, ebx
jle 0x4de62f
mov dword [esp + 0x10], str.fname___NULL
mov dword [esp + 0xc], 0x407
jmp 0x4de60f
mov dword [esp + 0x40], 1
jmp 0x4de235