Function at 0x405fd0
Capabilities:
Get disk information
Move file
Read .ini file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push esi
push edi
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov eax, dword [0x55c92c]
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x144], 0x49f31
mov dword [ebp - 0x108], 0x250a5
mov dword [ebp - 0x104], 0
xor ecx, ecx
mov word [ebp - 0xac], cx
mov dword [ebp - 0x88], 0
xor edx, edx
jne 0x40606a
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressA]
cmp eax, 0x21067
jne 0x406059
mov eax, dword [ebp - 0x10c]
cmp eax, dword [ebp - 0x10c]
je 0x40606a
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessPriorityBoost]
cmp eax, 0x54b02
jne 0x4060ba
movzx eax, word [ebp - 0xac]
sub eax, 0x3991d
cdq
sub eax, dword [ebp - 0x70]
sbb edx, dword [ebp - 0x6c]
mov ecx, 0x53008
sub ecx, dword [ebp - 0x10c]
add ecx, 0xd0a0e
sub ecx, dword [ebp - 0x10c]
mov esi, 0xfffe3388
sub esi, dword [ebp - 0x10c]
sub esi, 0x73d28
and ecx, esi
xor esi, esi
or eax, ecx
or edx, esi
or eax, 0x1d94c
mov dword [ebp - 0x10c], eax
jmp 0x406114
mov esi, 0xa6be
sub esi, dword [ebp - 0x10c]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
and esi, eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FlushViewOfFile]
and esi, eax
mov edx, dword [ebp - 0x10c]
sub edx, 0x3d397
and esi, edx
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
lea edi, [ecx + eax - 0x1b86c]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
add edi, eax
or esi, edi
mov dword [ebp - 0x10c], esi
movzx edx, word [ebp - 0xac]
cmp dword [ebp - 0x10c], edx
jne 0x406177
mov esi, dword [ebp - 0x70]
and esi, 0xfff89482
mov edi, dword [ebp - 0x6c]
push 0
push 0
call sub.KERNEL32.dll_Module32FirstW
mov ebx, eax
sub ebx, 0x668c6
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesA]
sub ebx, eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
add ebx, dword [ebp - 0x10c]
lea eax, [eax + ebx - 0xbf5d5]
xor ecx, ecx
or esi, eax
or edi, ecx
mov dword [ebp - 0x10c], esi
jmp 0x40619f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
sub eax, dword [ebp - 0x10c]
or eax, dword [ebp - 0x10c]
mov byte [ebp - 0x81], al
mov esi, 0x29994
movzx edx, word [ebp - 0xac]
sub edx, 0x3af70
and esi, edx
movzx edi, byte [ebp - 0x81]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessIoCounters]
add edi, eax
and esi, edi
mov dword [ebp - 0x10c], esi
jae 0x4061e3
movzx eax, word [ebp - 0xac]
cmp dword [ebp - 0x10c], eax
jne 0x40625e
xor ecx, ecx
je 0x40625e
mov esi, dword [ebp - 0x10c]
add esi, dword [ebp - 0x10c]
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetThreadTimes]
mov edi, eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreW]
add edi, dword [ebp - 0x10c]
add eax, edi
sub eax, dword [ebp - 0x10c]
and eax, 0x5ee43
or esi, eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesW]
mov edi, eax
and edi, 0x64c55
movzx edx, byte [ebp - 0x81]
mov ebx, 0x23e86
sub ebx, edx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
movzx eax, ax
add ebx, eax
and edi, ebx
or esi, edi
mov word [ebp - 0xac], si
jmp 0x4062b6
mov ecx, dword [ebp - 0x10c]
add ecx, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x10c]
sub edx, dword [ebp - 0x10c]
or ecx, edx
or ecx, dword [ebp - 0x10c]
or ecx, dword [ebp - 0x10c]
or ecx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x10c]
sub eax, dword [ebp - 0x10c]
sub eax, dword [ebp - 0x10c]
add eax, 0x5d64c
or ecx, eax
mov edx, 0x604c4
sub edx, dword [ebp - 0x10c]
or ecx, edx
mov dword [ebp - 0x10c], ecx
movzx eax, word [ebp - 0xac]
movzx ecx, byte [ebp - 0x81]
sub ecx, dword [ebp - 0x10c]
or eax, ecx
mov dword [ebp - 0x10c], eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
cmp eax, dword [ebp - 0x10c]
jne 0x406306
mov edx, dword [ebp - 0x10c]
add edx, 0x6b71e
and edx, 0x12274
and edx, dword [ebp - 0x10c]
mov dword [ebp - 0x10c], edx
jmp 0x40635f
mov ebx, dword [ebp - 0x10c]
or ebx, 0xc22e
movzx eax, word [ebp - 0xac]
mov ecx, dword [ebp - 0x10c]
lea esi, [eax + ecx + 0x27e77]
mov ecx, dword [ebp - 0x10c]
sub ecx, 0x47140
shl esi, cl
and esi, 0x57c2e
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edx, dword [ebp - 0x10c]
lea eax, [edx + eax + 0x4eb5f]
and esi, eax
or ebx, esi
mov byte [ebp - 0x81], bl
mov ax, word [ebp - 0xac]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x2c