Function at 0x402e19
Capabilities:
Check if file exists
Create thread
Get disk information
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x151c
call fcn.0040be80
push edi
mov word [ebp - 0xa08], 0
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0xa06]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
push 0
lea eax, [ebp - 0x1514]
push eax
call fcn.0040be20
add esp, 0xc
push 0x400
push 0
lea ecx, [ebp - 0xb0c]
push ecx
call fcn.0040be20
add esp, 0xc
push 0x400
push 0
lea edx, [ebp - 0x800]
push edx
call fcn.0040be20
add esp, 0xc
push 0x400
push 0
lea eax, [ebp - 0x130c]
push eax
call fcn.0040be20
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x151c], ecx
cmp dword [ebp - 0x151c], 0x80
jg 0x402eef
cmp dword [ebp - 0x151c], 0x80
je 0x4032ab
mov edx, dword [ebp - 0x151c]
sub edx, 1
mov dword [ebp - 0x151c], edx
cmp dword [ebp - 0x151c], 0x3f
ja case.0x402ee8.7
mov ecx, dword [ebp - 0x151c]
xor eax, eax
mov al, byte [ecx + 0x40351d]
jmp dword [eax*4 + 0x4034fd]
cmp dword [ebp - 0x151c], 0x4000
jg 0x402f40
cmp dword [ebp - 0x151c], 0x4000
je 0x4034b0
cmp dword [ebp - 0x151c], 0x100
je 0x403315
cmp dword [ebp - 0x151c], 0x200
je 0x40347c
cmp dword [ebp - 0x151c], 0x2000
je 0x403490
jmp case.0x402ee8.7
cmp dword [ebp - 0x151c], 0x20000
je 0x4034c4
cmp dword [ebp - 0x151c], 0x8000000
je 0x4034d8
jmp case.0x402ee8.7
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x402f7a
jmp case.0x402ee8.7
push str.renamefile:
lea eax, [ebp - 0x800]
push eax
call fcn.0040c8aa
add esp, 8
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push str._to
lea eax, [ebp - 0x800]
push eax
call fcn.0040c880
add esp, 8
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push 0x422578
lea eax, [ebp - 0x800]
push eax
call fcn.0040c880
add esp, 8
push 0
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.004045ed
add esp, 0xc
mov eax, dword [ebp + 0x10]
push eax
call fcn.0040355d
add esp, 4
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x403017
jmp case.0x402ee8.7
push str.createfile:
lea edx, [ebp - 0x800]
push edx
call fcn.0040c8aa
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push 0x422598
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push 0
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.004045ed
add esp, 0xc
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040355d
add esp, 4
push 0x426d28
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x403088
jmp case.0x402ee8.7
jmp case.0x402ee8.7
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4030a2
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.0040355d
add esp, 4
push str.delfile:
lea edx, [ebp - 0x800]
push edx
call fcn.0040c8aa
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push 0x4225b4
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push 0
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.004045ed
add esp, 0xc
jmp case.0x402ee8.7
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x403118
jmp case.0x402ee8.7
push str.create_dir1:
lea eax, [ebp - 0x800]
push eax
call fcn.0040c8aa
add esp, 8
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push 0x4225d8
lea eax, [ebp - 0x800]
push eax
call fcn.0040c880
add esp, 8
push 0
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.004045ed
add esp, 0xc
jmp case.0x402ee8.7
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x403182
jmp case.0x402ee8.7
push str.del_dir
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c8aa
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.0040c880
add esp, 8
push 0x4225f4
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push 0
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.004045ed
add esp, 0xc
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4031ec
jmp case.0x402ee8.7
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.0040c8aa
add esp, 8
push str.insert_usb
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push 0x422614
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push 0
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.004045ed
add esp, 0xc
jmp case.0x402ee8.7
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x403256
jmp case.0x402ee8.7
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c8aa
add esp, 8
push str.remove_insert
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
push 0x422638
lea eax, [ebp - 0x800]
push eax
call fcn.0040c880
add esp, 8
push 0
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x800]
push edx
call fcn.004045ed
add esp, 0xc
jmp case.0x402ee8.7
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4032c0
jmp case.0x402ee8.7
push str.remove_driver
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c8aa
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.0040c880
add esp, 8
push 0x422660
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push 0
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.004045ed
add esp, 0xc
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x40332a
jmp case.0x402ee8.7
push str.add_driver
lea edx, [ebp - 0x800]
push edx
call fcn.0040c8aa
add esp, 8
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push str.__ID:
lea edx, [ebp - 0x800]
push edx
call fcn.0040c880
add esp, 8
lea eax, [ebp - 0xb0c]
push eax
call fcn.00404336
add esp, 4
lea ecx, [ebp - 0xb0c]
push ecx
call fcn.0040c940
add esp, 4
cmp eax, 3
jae 0x40339f
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [ebp - 0xb0c]
push edx
call fcn.00404336
add esp, 4
push 0x104
push 0
lea eax, [ebp - 0xa08]
push eax
call fcn.0040be20
add esp, 0xc
push 0x104
lea ecx, [ebp - 0xa08]
push ecx
push 0xffffffffffffffff
lea edx, [ebp - 0xb0c]
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0xa08]
push eax
lea ecx, [ebp - 0x800]
push ecx
call fcn.0040c880
add esp, 8
push 0
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x800]
push eax
call fcn.004045ed
add esp, 0xc
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x403475
push 4
push 0
push 0x427794
call fcn.0040be20
add esp, 0xc
mov edx, dword [ebp + 0xc]
push edx
push 0x427794
call fcn.0040c8aa
add esp, 8
mov dword [0x42778c], 0
push 0
push 0
push 0x427794
push 0x40402a
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x1518], eax
push 0x9c4
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x1518]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.0040858e
call fcn.00404b51
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x40348e
jmp case.0x402ee8.7
jmp case.0x402ee8.7
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4034a2
jmp case.0x402ee8.7
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040355d
add esp, 4
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4034c2
jmp case.0x402ee8.7
jmp case.0x402ee8.7
mov edx, dword [ebp + 0xc]
push edx
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4034d6
jmp case.0x402ee8.7
jmp case.0x402ee8.7
mov eax, dword [ebp + 0xc]
push eax
call fcn.0040be00
add esp, 4
test eax, eax
ja 0x4034ea
jmp case.0x402ee8.7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0040355d
add esp, 4
mov al, 1
pop edi
mov esp, ebp
pop ebp
ret