Function at 0x404880
Capabilities:
Check if file exists
Get file attributes
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x432f50
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x446050]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebx
push ebp
push esi
mov eax, dword [0x446050]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov esi, dword [edi + 0x30]
cmp dword [edi + 0x2c], esi
lea ebp, [edi + 0x20]
jbe 0x4048c1
call fcn.00420164
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp]
mov dword [esp + 0x1c], eax
cmp ebx, dword [ebp + 0x10]
jbe 0x4048d5
call fcn.00420164
mov ecx, dword [esp + 0x1c]
mov eax, dword [ebp]
push esi
push ecx
push ebx
push eax
lea edx, [esp + 0x2c]
push edx
mov esi, ebp
call fcn.00409af0
mov ebx, dword [edi + 0x18]
cmp dword [edi + 0x14], ebx
lea esi, [edi + 8]
jbe 0x4048fc
call fcn.00420164
mov ecx, dword [esi + 0xc]
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
cmp ecx, dword [esi + 0x10]
jbe 0x404917
call fcn.00420164
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov eax, dword [esi]
push ebx
push edx
push ecx
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.00409af0
mov ecx, dword [esp + 0x1c]
push ecx
push 0x447868
push 0x4477f8
lea eax, [edi + 0x68]
call fcn.0040ab00
lea ecx, [edi + 0x38]
push 0x448948
call fcn.0040ed00
add esp, 4
lea ecx, [edi + 0x50]
push 0x449290
call fcn.0040ed00
add esp, 4
push ebp
push 0x448f78
mov ecx, 0x448e70
call fcn.0040eec0
push esi
push 0x449188
mov ecx, 0x448738
call fcn.0040eec0
xor eax, eax
mov byte [edi + 0x112], 0
mov dword [edi + 0x100], eax
mov dword [edi + 0x104], eax
mov dword [edi + 0x108], eax
mov dword [edi + 0x10c], eax
mov byte [edi + 0x110], al
mov byte [edi + 0x111], al
mov edx, dword [str.Not_available]
mov dword [edi + 0x80], edx
mov eax, dword [0x4365b4]
mov dword [edi + 0x84], eax
mov ecx, dword [0x4365b8]
mov dword [edi + 0x88], ecx
mov dx, word [0x4365bc]
mov word [edi + 0x8c], dx
mov eax, dword [str.Not_installed]
mov dword [edi + 0xc0], eax
mov ecx, dword [0x4365c4]
lea ebx, [edi + 0xc0]
mov dword [ebx + 4], ecx
mov edx, dword [0x4365c8]
push str.dtman.exe
mov dword [ebx + 8], edx
mov ax, word [0x4365cc]
push 0x448c60
push 0x436a34
lea ecx, [esp + 0x5c]
mov word [ebx + 0xc], ax
call fcn.004172c0
add esp, 0x1c
mov dword [esp + 0x68], 0
cmp dword [esp + 0x58], 0x10
mov eax, dword [esp + 0x44]
jae 0x404a3f
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [esp + 0x1c], eax
cmp eax, 0xffffffff
jne 0x404a9e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x404a6d
mov eax, dword [esp + 0x1c]
test al, 0x10
je 0x404a6d
mov dword [esp + 0x14], 2
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esp + 0x14], 0
sete al
mov byte [edi], al
test al, al
je 0x404aa8
cmp dword [esp + 0x58], 0x10
mov ecx, dword [esp + 0x44]
jae 0x404a95
lea ecx, [esp + 0x44]
mov edx, ebx
call fcn.004113a0
jmp 0x404aac
mov dword [esp + 0x14], 0
jmp 0x404a61
xor eax, eax
xor edx, edx
mov dword [edi + 0x10c], edx
mov ecx, edx
mov edx, eax
or edx, ecx
mov dword [edi + 0x108], eax
je 0x404ad1
mov dword [esp + 0x1c], eax
cmp cx, 0x64
jb 0x404ad1
mov eax, 1
jmp 0x404ad3
xor eax, eax
push str.dtman.exe
push 0x448840
push 0x436a34
lea ecx, [esp + 0x30]
mov byte [edi + 0x111], al
call fcn.004172c0
add esp, 0xc
mov byte [esp + 0x68], 1
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x4c]
call fcn.004096e0
mov byte [esp + 0x68], 0
mov ebx, 0x10
cmp dword [esp + 0x3c], ebx
jb 0x404b24
mov eax, dword [esp + 0x28]
push eax
call fcn.0042019e
add esp, 4
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
cmp dword [esp + 0x58], ebx
jae 0x404b47
lea ecx, [esp + 0x44]
lea edx, [edi + 0x80]
call fcn.004113a0
mov ecx, edx
cmp cx, 0x64
mov dword [edi + 0x104], edx
setae dl
cmp byte [edi], 0
mov dword [edi + 0x100], eax
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1b], dl
mov byte [edi + 0x110], dl
je 0x404b83
mov dword [edi + 4], 4
jmp 0x404ba2
cmp byte [0x449dbd], 0
jne 0x404b9b
mov ebx, eax
or ebx, ecx
je 0x404b9b
mov dword [edi + 4], 1
jmp 0x404ba2
mov dword [edi + 4], 0
mov ebx, eax
or ebx, ecx
je 0x404be2
mov edx, dword [edi + 0x108]
mov ebx, dword [edi + 0x10c]
or edx, ebx
je 0x404bde
mov edx, dword [edi + 0x108]
mov dword [esp + 0x20], ebx
movzx ebx, byte [0x449dbe]
push ebx
mov ebx, dword [esp + 0x24]
push ebx
push edx
push ecx
push eax
call fcn.004112f0
add esp, 0x14
test al, al
jne 0x404c0c
mov dl, byte [esp + 0x1b]
cmp byte [edi + 0x111], 0
je 0x404bff
test dl, dl
jne 0x404bff
mov eax, 1
mov byte [edi + 0x112], al
jmp 0x404d13
xor eax, eax
mov byte [edi + 0x112], al
jmp 0x404d13
cmp byte [edi + 0x112], 0
jne 0x404d13
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
xor ebx, ebx
add ecx, edx
je 0x404c91
mov dword [esp + 0x14], ebx
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x404c58
call fcn.00420164
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x14]
cmp byte [edx + ecx + 0xd2], 0
jne 0x404d62
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
add dword [esp + 0x14], 0xd8
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
cmp ebx, eax
jb 0x404c38
cmp byte [edi + 0x112], 0
jne 0x404d13
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
xor ebp, ebp
add ecx, edx
je 0x404d06
xor ebx, ebx
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x404cd7
call fcn.00420164
mov ecx, dword [esi + 0xc]
cmp byte [ebx + ecx + 0xd2], 0
jne 0x404d62
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x4bda12f7
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
inc ebp
add eax, edx
add ebx, 0xd8
cmp ebp, eax
jb 0x404cb7
cmp byte [edi + 0x112], 0
jne 0x404d13
or dword [edi + 4], 2
mov dword [esp + 0x68], 0xffffffff
cmp dword [esp + 0x58], 0x10
jb 0x404d2f
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0042019e
add esp, 4
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0041f826
add esp, 0x5c
ret
mov byte [edi + 0x112], 1
jmp 0x404d13