Function at 0x40e3d0
Capabilities:
Get disk information
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x42c8f0
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ed6a
push str.Deleting_temporary_files
lea ecx, [esp + 0x38]
call fcn.0042432b
or ebp, 0xffffffff
mov ecx, esi
push ebp
push eax
mov dword [esp + 0x88], ebx
call fcn.00402b50
lea ecx, [esp + 0x34]
mov dword [esp + 0x80], ebp
call fcn.004242bd
push str.TEMP
call fcn.00410ff9
add esp, 4
lea ecx, [esp + 0x18]
push eax
call fcn.0042432b
mov eax, dword [esp + 0x18]
mov dword [esp + 0x80], 1
mov eax, dword [eax - 8]
cmp eax, 5
jle 0x40e4f9
lea ecx, [esp + 0x34]
push 5
push ecx
lea ecx, [esp + 0x20]
call fcn.0041f0df
mov edx, dword [eax]
push str._temp
push edx
call fcn.00410d60
add esp, 8
cmp eax, ebx
lea ecx, [esp + 0x34]
sete byte [esp + 0x13]
call fcn.004242bd
cmp byte [esp + 0x13], bl
je 0x40e4f9
push 0x4392d0
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea eax, [esp + 0x18]
push 0x4392c8
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x8c], 2
call fcn.00424506
lea edx, [esp + 0x28]
push 1
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 3
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 2
call fcn.004242bd
mov byte [esp + 0x80], 1
lea ecx, [esp + 0x28]
jmp 0x40e5c5
mov eax, dword [esp + 0x18]
cmp dword [eax - 8], ebx
je 0x40e5ca
push str..tmp
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea ecx, [esp + 0x18]
push 0x4392c8
lea edx, [esp + 0x38]
push ecx
push edx
mov byte [esp + 0x8c], 4
call fcn.00424506
lea ecx, [esp + 0x28]
push ebx
push ecx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 5
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 4
call fcn.004242bd
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 1
call fcn.004242bd
push 0x43afa4
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea edx, [esp + 0x18]
push 0x4392c8
lea eax, [esp + 0x38]
push edx
push eax
mov byte [esp + 0x8c], 6
call fcn.00424506
lea ecx, [esp + 0x28]
push ebx
push ecx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 7
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 6
call fcn.004242bd
mov byte [esp + 0x80], 1
lea ecx, [esp + 0x28]
call fcn.004242bd
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea4c
push 0x43afa0
call fcn.00410ff9
add esp, 4
lea ecx, [esp + 0x1c]
push eax
call fcn.0042432b
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x80], 8
mov eax, dword [edx - 8]
cmp eax, 5
jle 0x40e69f
lea eax, [esp + 0x34]
push 5
push eax
lea ecx, [esp + 0x24]
call fcn.0041f0df
mov ecx, dword [eax]
push str._temp
push ecx
call fcn.00410d60
add esp, 8
cmp eax, ebx
lea ecx, [esp + 0x34]
sete byte [esp + 0x13]
call fcn.004242bd
cmp byte [esp + 0x13], bl
je 0x40e69f
push 0x4392d0
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea edx, [esp + 0x1c]
push 0x4392c8
lea eax, [esp + 0x38]
push edx
push eax
mov byte [esp + 0x8c], 9
call fcn.00424506
lea ecx, [esp + 0x28]
push 1
push ecx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0xa
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 9
call fcn.004242bd
mov byte [esp + 0x80], 8
lea ecx, [esp + 0x28]
jmp 0x40e76b
mov edx, dword [esp + 0x1c]
cmp dword [edx - 8], ebx
je 0x40e770
push str..tmp
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea eax, [esp + 0x1c]
push 0x4392c8
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x8c], 0xb
call fcn.00424506
lea edx, [esp + 0x28]
push ebx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0xc
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 0xb
call fcn.004242bd
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
push 0x43afa4
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea eax, [esp + 0x1c]
push 0x4392c8
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x8c], 0xd
call fcn.00424506
lea edx, [esp + 0x28]
push ebx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0xe
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 0xd
call fcn.004242bd
mov byte [esp + 0x80], 8
lea ecx, [esp + 0x28]
call fcn.004242bd
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea3b
push str..tmp
lea ecx, [esp + 0x24]
call fcn.0042432b
push str.C:DOS_
lea ecx, [esp + 0x2c]
mov byte [esp + 0x84], 0xf
call fcn.0042432b
lea eax, [esp + 0x20]
push ebx
lea ecx, [esp + 0x2c]
push eax
push ecx
mov ecx, esi
mov byte [esp + 0x8c], 0x10
call fcn.00401e50
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 0xf
call fcn.004242bd
lea ecx, [esp + 0x20]
mov byte [esp + 0x80], 8
call fcn.004242bd
mov edx, dword [esi + 0xa0]
lea edi, [esi + 0xa0]
cmp dword [edx - 8], ebx
je 0x40e9b3
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea3b
push str.ff.tmp
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea eax, [esp + 0x28]
push ebx
push eax
push edi
mov ecx, esi
mov byte [esp + 0x8c], 0x11
call fcn.00401e50
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
push str..tmp
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea ecx, [esp + 0x28]
push ebx
push ecx
push edi
mov ecx, esi
mov byte [esp + 0x8c], 0x12
call fcn.00401e50
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
push 0x43afa4
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea edx, [esp + 0x28]
push ebx
push edx
push edi
mov ecx, esi
mov byte [esp + 0x8c], 0x13
call fcn.00401e50
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
push str.IE4_Error_Log.txt
lea ecx, [esp + 0x2c]
call fcn.0042432b
lea eax, [esp + 0x28]
push ebx
push eax
push edi
mov ecx, esi
mov byte [esp + 0x8c], 0x14
call fcn.00401e50
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea3b
push 0x4392d0
lea ecx, [esp + 0x2c]
call fcn.0042432b
push str.tmp_
lea ecx, [esp + 0x38]
push edi
push ecx
mov byte [esp + 0x8c], 0x15
call fcn.00424506
lea edx, [esp + 0x28]
push 1
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0x16
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 0x15
call fcn.004242bd
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
push 0x4392d0
lea ecx, [esp + 0x2c]
call fcn.0042432b
push str.temp_
lea eax, [esp + 0x38]
push edi
push eax
mov byte [esp + 0x8c], 0x17
call fcn.00424506
lea ecx, [esp + 0x28]
push 1
push ecx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0x18
call fcn.00401e50
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 0x17
call fcn.004242bd
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 8
call fcn.004242bd
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea3b
push edi
mov ecx, esi
call fcn.0040f030
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea3b
mov edx, dword [esi + 0xa4]
cmp byte [edx + 7], bl
jne 0x40e9d7
lea eax, [esi + 0x9c]
mov ecx, esi
push eax
call fcn.0040f030
jmp 0x40ea2b
lea ecx, [esp + 0x48]
call fcn.0041fe34
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 0x19
push ecx
mov ecx, esi
call fcn.0040f4a0
mov edx, dword [esp + 0x50]
lea edi, [edx - 1]
cmp edi, ebx
jl 0x40ea1a
mov eax, dword [esp + 0x4c]
lea ecx, [eax + edi*4]
push ecx
mov ecx, esi
call fcn.0040f030
mov eax, dword [0x43c820]
cmp eax, ebx
jne 0x40ea58
dec edi
jns 0x40e9ff
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 8
call fcn.0041fe67
mov ecx, esi
call fcn.0040f820
mov eax, dword [0x43c820]
cmp eax, ebx
je 0x40ea6b
lea ecx, [esp + 0x1c]
mov byte [esp + 0x80], 1
call fcn.004242bd
mov dword [esp + 0x80], ebp
jmp 0x40ed61
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 8
call fcn.0041fe67
jmp 0x40ea3b
mov edx, dword [0x43b340]
mov dword [esp + 0x24], edx
mov byte [esp + 0x80], 0x1a
mov byte [esp + 0x15], 0x3a
mov byte [esp + 0x16], bl
mov dword [esp + 0x28], 0x43
mov ebp, 0x42f384
mov al, byte [esp + 0x28]
lea ecx, [esp + 0x14]
push ecx
mov byte [esp + 0x18], al
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 3
jne 0x40ed1b
lea edx, [esp + 0x14]
lea ecx, [esp + 0x20]
push edx
call fcn.0042432b
push 0x4392d0
lea ecx, [esp + 0x30]
mov byte [esp + 0x84], 0x1b
call fcn.0042432b
lea eax, [esp + 0x20]
push str._temp_
lea ecx, [esp + 0x3c]
push eax
push ecx
mov byte [esp + 0x8c], 0x1c
call fcn.00424506
lea edx, [esp + 0x2c]
push 1
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0x1d
call fcn.00401e50
lea ecx, [esp + 0x38]
mov byte [esp + 0x80], 0x1c
call fcn.004242bd
lea ecx, [esp + 0x2c]
mov byte [esp + 0x80], 0x1b
call fcn.004242bd
push 0x4392d0
lea ecx, [esp + 0x34]
call fcn.0042432b
lea eax, [esp + 0x20]
push str._tmp_
lea ecx, [esp + 0x40]
push eax
push ecx
mov byte [esp + 0x8c], 0x1e
call fcn.00424506
lea edx, [esp + 0x30]
push 1
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0x1f
call fcn.00401e50
lea ecx, [esp + 0x3c]
mov byte [esp + 0x80], 0x1e
call fcn.004242bd
lea ecx, [esp + 0x30]
mov byte [esp + 0x80], 0x1b
call fcn.004242bd
push str.file.chk
lea ecx, [esp + 0x38]
call fcn.0042432b
lea eax, [esp + 0x20]
push 0x4392c8
lea ecx, [esp + 0x44]
push eax
push ecx
mov byte [esp + 0x8c], 0x20
call fcn.00424506
lea edx, [esp + 0x34]
push ebx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x8c], 0x21
call fcn.00401e50
lea ecx, [esp + 0x40]
mov byte [esp + 0x80], 0x20
call fcn.004242bd
lea ecx, [esp + 0x34]
mov byte [esp + 0x80], 0x1b
call fcn.004242bd
mov eax, dword [esi + 0xa4]
cmp byte [eax + 6], bl
je 0x40ed01
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x24]
push ecx
push 0xe017
push edx
call fcn.0042875e
lea eax, [esp + 0x24]
push 0xffffffffffffffff
push eax
mov ecx, esi
call fcn.00402b50
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], 0xa
push ecx
mov byte [esp + 0x84], 0x22
mov ecx, esp
mov dword [esp + 0x48], esp
push str..chk
call fcn.0042432b
lea ecx, [esp + 0x60]
call fcn.0040f940
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str..tmp
call fcn.0042432b
lea ecx, [esp + 0x60]
call fcn.0040f940
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push str..bak
call fcn.0042432b
lea ecx, [esp + 0x60]
call fcn.0040f940
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push 0x43af3c
call fcn.0042432b
lea ecx, [esp + 0x60]
call fcn.0040f940
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x20]
push ecx
push edx
mov ecx, esi
call fcn.0040ed90
mov dword [esp + 0x5c], ebp
mov edi, dword [esp + 0x60]
mov byte [esp + 0x80], 0x23
cmp edi, ebx
je 0x40ece4
lea eax, [edi + 8]
push 1
push eax
call fcn.0041f612
mov edi, dword [edi]
cmp edi, ebx
jne 0x40ecd3
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebx
call fcn.004200c5
mov dword [esp + 0x70], ebx
mov eax, dword [0x43c820]
cmp eax, ebx
mov byte [esp + 0x80], 0x1a
lea ecx, [esp + 0x20]
jne 0x40ed2f
call fcn.004242bd
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 0x5a
mov dword [esp + 0x28], eax
jle 0x40ea93
jmp 0x40ed34
call fcn.004242bd
lea ecx, [esp + 0x24]
mov byte [esp + 0x80], 8
call fcn.004242bd
lea ecx, [esp + 0x1c]
mov byte [esp + 0x80], 1
call fcn.004242bd
mov dword [esp + 0x80], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.004242bd
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x74
ret