Function at 0x10010170
Capabilities:
Create directory
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
push ebx
push 0x103
lea eax, [ebp - 0x113]
push 0
push eax
mov byte [ebp - 0x114], 0
call sub.MSVCRT.dll_memset
mov ebx, dword [ebp + 8]
add esp, 0xc
xor eax, eax
mov dword [ebp - 4], 0
test ebx, ebx
je 0x100103fa
jmp 0x100101b0
mov cl, byte [eax + 0x1001fdd0]
mov byte [ebp + eax - 0x218], cl
inc eax
test cl, cl
jne 0x100101b0
push esi
push 0x100221f8
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
mov eax, 0x100221f8
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100101d5
push edi
lea edi, [ebp - 0x218]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x100101e6
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edi, dword [sym.imp.SHLWAPI.dll_StrStrIA]
push 0x1001c950
push ebx
call edi
xor edx, edx
cmp edx, eax
mov eax, dword [ebp + 8]
sbb ebx, ebx
push 0x1001c958
neg ebx
push eax
mov dword [ebp - 8], ebx
call edi
mov edx, dword [ebp + 8]
xor ecx, ecx
cmp ecx, eax
sbb esi, esi
push str.self.pub
neg esi
push edx
mov dword [ebp - 0xc], esi
call edi
xor ecx, ecx
cmp ecx, eax
sbb edi, edi
neg edi
mov dword [ebp - 0x10], edi
test esi, esi
jne 0x1001025c
test ebx, ebx
jne 0x1001025c
test edi, edi
je 0x100102ba
lea eax, [ebp - 0x218]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10010263
mov edx, dword [str.path.txt]
mov ecx, dword [0x1001c858]
mov dword [eax], edx
mov dl, byte [0x1001c85c]
mov dword [eax + 4], ecx
mov byte [eax + 8], dl
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edx, dword [ebp + 8]
mov eax, edx
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100102a0
sub eax, esi
mov ebx, eax
push edx
lea eax, [ebp - 0x218]
call fcn.10003f60
mov ebx, dword [ebp - 8]
call fcn.100104f0
test eax, eax
jne 0x100102cf
test ebx, ebx
jne 0x100102cf
test edi, edi
je 0x100103d1
call fcn.100107c0
call fcn.10010c10
xor eax, eax
jmp 0x100102e0
mov cl, byte [eax + 0x1001fdd0]
mov byte [ebp + eax - 0x114], cl
inc eax
test cl, cl
jne 0x100102e0
push 0x100221f8
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
mov eax, 0x100221f8
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10010304
lea edi, [ebp - 0x114]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x10010316
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x114]
rep movsb byte es:[edi], byte [esi]
dec eax
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x10010333
cmp dword [ebp - 0xc], 0
mov ecx, dword [str.keys.zip]
mov edx, dword [0x1001c864]
mov dword [eax], ecx
mov cl, byte [0x1001c868]
mov dword [eax + 4], edx
mov byte [eax + 8], cl
je 0x10010362
mov dword [ebp - 4], 1
mov esi, dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
not eax
test al, 0x10
je 0x10010390
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10010377
sub eax, edx
add eax, esi
cmp byte [eax], 0x5c
je 0x10010390
mov byte [eax], 0
dec eax
cmp byte [eax], 0x5c
jne 0x10010387
cmp dword [ebp - 4], 0
je 0x10010401
lea edx, [ebp - 0x114]
push edx
push esi
call fcn.1000fa70
push str.LocalEAF799BF_8989_4fe1_9A0D_95CD39DC2014
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov esi, eax
test esi, esi
je 0x100103d1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push edi
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapValidate]
test eax, eax
je 0x100103f6
push edi
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebp - 8], 0
jne 0x1001040d
cmp dword [ebp - 0x10], 0
je 0x100103a3
push esi
lea eax, [ebp - 0x114]
push eax
call fcn.1001aaf0
test eax, eax
jne 0x100103a3
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push esi
push eax
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapValidate]
test eax, eax
je 0x100103f6
push esi
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4