Function at 0x42cac0
Capabilities:
Create directory
Delete file
Get common file path
Get disk information
Set file attributes

Disassembly:
sub esp, 0x734
mov eax, dword [esp + 0x738]
push ebx
push ebp
push esi
push edi
lea ecx, [esp + 0x53c]
push 0x104
push ecx
lea ebp, [eax + 0x110]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
movsx edx, byte [esp + 0x53c]
push edx
call sub.MSVCRT.dll_tolower
add esp, 4
mov esi, eax
lea eax, [esp + 0x28]
sub esi, 0x60
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov ecx, dword [0x4388c0]
mov edi, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [esp + 0x10], ecx
mov ebx, 3
push ebx
call sub.MSVCRT.dll__chdrive
add esp, 4
test eax, eax
jne case.0x42cb47.16
mov dl, bl
lea eax, [esp + 0x10]
add dl, 0x40
push eax
mov byte [esp + 0x14], dl
call edi
cmp eax, 5
ja case.0x42cb47.13
jmp dword [eax*4 + 0x42cdc4]
lea ecx, [esp + 0x18]
push ecx
push ebx
call sub.MSVCRT.dll__getdiskfree
add esp, 8
test eax, eax
jne case.0x42cb47.16
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x20]
imul eax, dword [esp + 0x1c]
cmp eax, ebp
jb case.0x42cb47.16
sub eax, ebp
shr eax, 0xa
cmp ebx, esi
jne 0x42cb84
cmp eax, 0xc350
ja 0x42cbab
jmp case.0x42cb47.16
cmp eax, 0x3e8
ja 0x42cbab
inc ebx
cmp ebx, 0x1a
jle 0x42cb25
lea ecx, [esp + 0x28]
push ecx
call sub.MSVCRT.dll__chdir
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x734
ret
test ebx, ebx
jle 0x42cb91
lea edx, [ebx + 0x60]
lea eax, [esp + 0x230]
push edx
push str._c:_
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [esp + 0x340]
push 0x103
push ecx
push ebx
call sub.MSVCRT.dll__getdcwd
lea edx, [esp + 0x248]
push edx
call sub.MSVCRT.dll__chdir
add esp, 0x1c
test eax, eax
jge 0x42cc38
lea eax, [esp + 0x230]
push eax
call sub.MSVCRT.dll__mkdir
add esp, 4
test eax, eax
jge 0x42cc28
lea ecx, [esp + 0x334]
push ecx
call sub.MSVCRT.dll__chdir
lea edx, [esp + 0x2c]
push edx
call sub.MSVCRT.dll__chdir
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x734
ret
lea eax, [esp + 0x230]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [esp + 0x438]
lea edx, [esp + 0x230]
push ecx
push 0
push 0x4388b4
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x42cc80
lea eax, [esp + 0x334]
push eax
call sub.MSVCRT.dll__chdir
lea ecx, [esp + 0x2c]
push ecx
call sub.MSVCRT.dll__chdir
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x734
ret
lea edi, [esp + 0x438]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x12c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x28]
push ecx
call sub.MSVCRT.dll__chdir
add esp, 4
lea edx, [esp + 0x12c]
push 0
push 0x8000080
push 2
push 0
push 1
push 0xc0000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x42cb9e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea eax, [esp + 0x644]
push str.JK__08X
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x640]
push ecx
push ebp
push 0
push 0x8000004
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, eax
call edi
test esi, esi
jne 0x42cd43
lea edx, [esp + 0x12c]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x734
ret
push 0
push 0
push 0
push 0xf001f
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edx, eax
test edx, edx
jne 0x42cd79
push esi
call edi
lea eax, [esp + 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x734
ret
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
mov dword [edx], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [edx + 4]
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [edx + 0x110]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
mov dword [edx + 0x108], ebp
pop esi
pop ebp
mov dword [edx + 0x10c], 3
pop ebx
add esp, 0x734
ret