Function at 0x414c40
Capabilities:
Get disk information
Get geographical location
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
push ebx
push esi
push edi
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_BindIoCompletionCallback]
mov esi, eax
push 0
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
add esi, eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, eax
sub edi, dword [ebp - 0x10c]
sub edi, dword [ebp - 0x10c]
sub edi, dword [ebp - 0x10c]
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
sub edi, eax
sub edi, 0x14e84
or esi, edi
mov dword [ebp - 0x10c], esi
mov eax, 0xc95ba
sub eax, dword [ebp - 0x10c]
movzx ecx, byte [ebp - 0x81]
add eax, dword [ebp - 0x10c]
lea esi, [ecx + eax + 0x94cc]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceA]
add eax, 0x256ec
and esi, eax
xor edx, edx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edx
mov eax, dword [ebp - 0x70]
sub eax, 0x3683a
mov ecx, dword [ebp - 0x6c]
sbb ecx, 0
mov edx, dword [ebp - 0x10c]
xor esi, esi
and eax, edx
and ecx, esi
or eax, 0x771bd
or eax, 0x5fc00
mov word [ebp - 0xac], ax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
movzx ecx, word [ebp - 0xac]
mov edx, dword [ebp - 0x10c]
lea ecx, [ecx + edx + 0x5b1dc]
and eax, ecx
or eax, 0x771ae
or eax, 0x79cfa
mov dword [ebp - 0x10c], eax
xor edx, edx
je 0x414d74
movzx esi, word [ebp - 0xac]
and esi, 0x62b55
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
movzx ecx, word [ebp - 0xac]
add eax, ecx
sub eax, dword [ebp - 0x10c]
add eax, 0x65af7
or esi, eax
xor edx, edx
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edx
jmp 0x414d93
mov eax, 0x12812
sub eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
sub ecx, 0x141dd
and eax, ecx
mov dword [ebp - 0x10c], eax
mov eax, 0x2cd52
sub eax, dword [ebp - 0x70]
mov edx, 0
sbb edx, dword [ebp - 0x6c]
mov cl, 0x92
call fcn.0043dfd0
mov esi, eax
mov edi, edx
mov ebx, dword [ebp - 0x10c]
add ebx, 0x10a44
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleMode]
sub ebx, eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
sub eax, dword [ebp - 0x10c]
sub eax, 0x5f7eb
and ebx, eax
and ebx, 0x2020d
xor edx, edx
or esi, ebx
or edi, edx
or esi, 0x63e0e
or esi, 0xd8ae
mov word [ebp - 0xac], si
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
lea edx, [ecx + eax - 0x2be32]
sub edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0x10c]
add edx, 0x63f98
and edx, 0x46d3b
mov word [ebp - 0xac], dx
movzx eax, word [ebp - 0xac]
or eax, 0x36b42
cdq
mov esi, eax
mov edi, edx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextChangeNotification]
mov ebx, eax
xor eax, eax
add ebx, dword [ebp - 0x70]
adc eax, dword [ebp - 0x6c]
push 0
push 0
push 0
mov dword [ebp - 0x14c], eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointA]
mov ecx, dword [ebp - 0x10c]
sub ecx, eax
xor edx, edx
and ebx, ecx
mov eax, dword [ebp - 0x14c]
and eax, edx
movzx ecx, word [ebp - 0xac]
push 0
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x154], ecx
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
mov ecx, dword [ebp - 0x154]
lea eax, [ecx + eax + 0x14fd1]
xor ecx, ecx
and ebx, eax
mov eax, dword [ebp - 0x150]
and eax, ecx
or esi, ebx
or edi, eax
or esi, 0x6437c
mov dword [ebp - 0x10c], esi
mov edx, dword [ebp - 0x10c]
add edx, 0x46690
mov dword [ebp - 0x10c], edx
mov eax, 1
test eax, eax
je 0x414ee4
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x10c], ecx
jmp 0x414f53
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesW]
mov esi, eax
xor edi, edi
mov ebx, dword [ebp - 0x70]
add ebx, 0x5a579
mov eax, dword [ebp - 0x6c]
adc eax, 0
movzx edx, byte [ebp - 0x81]
mov dword [ebp - 0x158], eax
mov eax, edx
cdq
add ebx, eax
mov eax, dword [ebp - 0x158]
adc eax, edx
push 0
push 0
push 0
mov dword [ebp - 0x15c], eax
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
movzx ecx, byte [ebp - 0x81]
sub eax, ecx
add eax, 0x6b108
xor edx, edx
and ebx, eax
mov eax, dword [ebp - 0x15c]
and eax, edx
or esi, ebx
or edi, eax
mov dword [ebp - 0x10c], esi
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetAtomNameA]
xor ecx, ecx
add eax, dword [ebp - 0x70]
adc ecx, dword [ebp - 0x6c]
movzx edx, byte [ebp - 0x81]
movzx esi, word [ebp - 0xac]
add edx, esi
sub edx, dword [ebp - 0x10c]
sub edx, 0x13e6
xor esi, esi
and eax, edx
and ecx, esi
mov word [ebp - 0xac], ax
movzx eax, word [ebp - 0xac]
mov dword [ebp - 0x10c], eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleMode]
mov esi, eax
add esi, dword [ebp - 0x10c]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
add eax, 0x3636e
and esi, eax
mov edi, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
shr edi, cl
and edi, 0x2f6a0
mov ecx, 0x3c67
sub ecx, dword [ebp - 0x10c]
shl ecx, 0xac
and edi, ecx
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
add eax, dword [ebp - 0x10c]
and edi, eax
or esi, edi
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x10c], 0x3e27
mov al, byte [ebp - 0x81]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c