Function at 0x475870
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x144]
sub esp, 0x144
push 0xffffffffffffffff
push 0x618989
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x7161c0]
xor eax, ebp
mov dword [ebp + 0x140], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x28], esi
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.004019e0
mov byte [ebp - 4], 1
push str.Aborted
lea ecx, [ebp - 0x24]
call fcn.00401eb0
mov byte [ebp - 4], 2
mov byte [ebp - 4], 3
cmp dword [esi + 0x25c], 0
jne 0x475a1e
push 0
push 0x6e2d30
push 0x6e1204
push 0
mov ebx, dword [ebp + 0x14c]
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
jne 0x4759a1
push eax
push 0x6e2d68
push 0x6e1204
push eax
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
jne 0x4759a1
push eax
push 0x6e1220
push 0x6e1204
push eax
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
jne 0x4759a1
push eax
push 0x6e2d68
push 0x6e1204
push eax
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
jne 0x4759a1
push eax
push 0x6e2d4c
push 0x6e1204
push eax
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
jne 0x4759a1
push eax
push 0x6e2d84
push 0x6e1204
push eax
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
jne 0x4759a1
push eax
push 0x6e2da0
push 0x6e1204
push eax
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x475a1e
lea edi, [esi + 0x1f8]
lea eax, [ebx + 4]
push eax
mov ecx, edi
call fcn.00403400
push 0
push 0x3f
mov ecx, edi
call fcn.004070b0
test eax, eax
jle 0x4759e5
push eax
lea ecx, [ebp - 0x14]
push ecx
mov ecx, edi
call fcn.004048d0
mov byte [ebp - 4], 4
push eax
mov ecx, edi
call fcn.00403400
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x14]
call fcn.00401a50
mov dword [esi + 0x25c], 1
push 0
push 0x6e2d30
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x475bd0
cmp dword [eax + 0x28], 0
jne 0x475a71
mov dword [esi + 0x25c], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00401a50
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00401a50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14c]
call fcn.004e21b0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x140]
xor ecx, ebp
call fcn.005d8d34
add ebp, 0x144
mov esp, ebp
pop ebp
ret 4
lea ecx, [eax + 0x20]
call fcn.0040ae80
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402bc0
mov byte [ebp - 4], 5
push 0
push 0x638c10
lea ecx, [ebp - 0x1c]
call fcn.00402870
test eax, eax
jle 0x475bc4
add eax, 2
push eax
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x1c]
call fcn.004048d0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov edi, eax
push 0xa
lea ecx, [ebp - 0x68]
call fcn.0041a810
mov byte [ebp - 4], 7
cmp edi, 2
je 0x475b0a
cmp edi, 5
jne 0x475bac
mov eax, dword [ebp - 0x18]
cmp dword [eax - 0xc], 0
jge 0x475aec
push 0x80070057
call fcn.00401470
mov cl, byte [eax]
mov byte [ebp - 0x14], cl
lea edx, [ebp - 0x68]
push edx
mov eax, dword [ebp - 0x14]
push eax
call fcn.00499ba0
add esp, 8
cmp eax, 1
je 0x475bac
mov edi, 4
nop
cmp edi, 4
jne 0x475b74
lea ecx, [ebp]
push ecx
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x475b36
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, 1
jmp 0x475b10
lea ecx, [ebp - 0x14]
call fcn.004019e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x1c]
push eax
push str._s_was_not_found__please_insert_media_containing_this_file.
lea ecx, [ebp - 0x14]
push ecx
call fcn.004030a0
add esp, 0xc
push 0
push 5
mov edx, dword [ebp - 0x14]
push edx
call fcn.005bdbc4
mov edi, eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x14]
call fcn.00401a50
jmp 0x475b10
cmp edi, 1
je 0x475bac
mov dword [esi + 0x25c], 0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x68]
call fcn.00407300
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x18]
call fcn.00401a50
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call fcn.00401a50
jmp 0x475a1e
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x68]
call fcn.00407300
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x18]
call fcn.00401a50
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call fcn.00401a50
push 0
push 0
push 0x36a
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov byte [ebp - 4], 9
cmp byte [esi + 0x2b0], 0
je 0x475c0a
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x44]
call fcn.00402bc0
push 0x6b34bc
lea edx, [ebp - 0x44]
push edx
call fcn.005da4c5
push ebx
mov ecx, esi
call fcn.004678a0
cmp byte [esi + 0x2b0], 0
je 0x475c35
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x48]
call fcn.00402bc0
push 0x6b34bc
lea ecx, [ebp - 0x48]
push ecx
call fcn.005da4c5
mov ecx, esi
call fcn.00464b20
cmp byte [esi + 0x2b0], 0
je 0x475c5f
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00402bc0
push 0x6b34bc
lea eax, [ebp - 0x2c]
push eax
call fcn.005da4c5
push 0
push 0x6e2d68
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
mov edi, eax
push 0
test edi, edi
je 0x475cab
lea ebx, [esi + 0xaf0]
push 0x630be8
mov ecx, ebx
call fcn.0047e590
push 0
push 0x63ce58
mov ecx, ebx
call fcn.0047e590
push edi
mov ecx, esi
call fcn.0046d3c0
jmp 0x475dd5
push 0x6e1220
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
mov edi, eax
push 0
test edi, edi
je 0x475cf5
lea ebx, [esi + 0xaf0]
push 0x630be8
mov ecx, ebx
call fcn.0047e590
push 0
push 0x63ce58
mov ecx, ebx
call fcn.0047e590
push edi
mov ecx, esi
call fcn.00470b20
jmp 0x475dd5
push 0x6e2d30
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x475d1b
push eax
mov ecx, esi
call fcn.00471180
jmp 0x475ddb
push 0
push 0x6e2d4c
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x475d43
push eax
mov ecx, esi
call fcn.00468650
jmp 0x475ddb
push 0
push 0x6e2d84
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
mov edi, eax
push 0
test edi, edi
je 0x475d8c
lea ebx, [esi + 0xaf0]
push 0x630be8
mov ecx, ebx
call fcn.0047e590
push 0
push 0x63ce58
mov ecx, ebx
call fcn.0047e590
push edi
mov ecx, esi
call fcn.0046d9e0
jmp 0x475dd5
push 0x6e2da0
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
mov edi, eax
test edi, edi
je 0x476102
lea ebx, [esi + 0xaf0]
push 0
push 0x630be8
mov ecx, ebx
call fcn.0047e590
push 0
push 0x63ce58
mov ecx, ebx
call fcn.0047e590
push edi
mov ecx, esi
call fcn.0046dfd0
mov ebx, dword [ebp + 0x14c]
cmp byte [esi + 0x2b0], 0
je 0x475dfe
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x38]
call fcn.00402bc0
push 0x6b34bc
lea edx, [ebp - 0x38]
push edx
call fcn.005da4c5
mov ecx, esi
call fcn.00472460
cmp byte [esi + 0x2b0], 0
je 0x475e28
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00402bc0
push 0x6b34bc
lea ecx, [ebp - 0x4c]
push ecx
call fcn.005da4c5
mov ecx, esi
call fcn.00466420
cmp byte [esi + 0x2b0], 0
je 0x475e52
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x40]
call fcn.00402bc0
push 0x6b34bc
lea eax, [ebp - 0x40]
push eax
call fcn.005da4c5
mov eax, dword [esi + 0x188]
test eax, eax
je 0x475ec5
cmp byte [esi + 0x272], 0
je 0x475e6e
cmp byte [esi + 0x199], 0
je 0x475ec5
lea edi, [ebx + 8]
mov eax, dword [edi]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x475ea4
lea ecx, [ebp - 0x14]
push ecx
mov ecx, edi
call fcn.004e1d70
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call fcn.00402bc0
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 9
mov ecx, esi
call fcn.00472a50
jmp 0x475e76
mov eax, dword [esi + 0x170]
test eax, eax
jbe 0x475ec5
lea ecx, [esi + 0x168]
call fcn.0040ae80
mov eax, dword [eax]
push 0
push eax
mov ecx, esi
call fcn.0046a380
cmp byte [esi + 0x2b0], 0
je 0x475ee8
lea edx, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x30]
call fcn.00402bc0
push 0x6b34bc
lea eax, [ebp - 0x30]
push eax
call fcn.005da4c5
lea ecx, [ebx + 4]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00402bc0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x475fab
mov eax, dword [esi + 0x22c]
cmp eax, 1
jne 0x475f99
push 0x2f
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.00440a30
push 0x2f
lea ecx, [ebp - 0x1c]
call fcn.00402710
add eax, 1
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00407f80
mov byte [ebp - 4], 0xc
push 0
push 0x3f
lea ecx, [ebp - 0x18]
call fcn.004070b0
test eax, eax
jle 0x475f75
push eax
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x18]
call fcn.004048d0
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x18]
call fcn.00403020
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x14]
call fcn.00401a50
mov edx, dword [ebp - 0x18]
mov eax, dword [edx - 0xc]
test eax, eax
je 0x475f8b
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00403020
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x18]
call fcn.00401a50
jmp 0x475fab
cmp eax, 2
jne 0x475fab
push 0x63ce54
lea ecx, [ebp - 0x1c]
call fcn.00401e30
call fcn.005bc35c
mov edi, dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [edi + 0x30]
jne 0x475fc7
mov ecx, esi
call fcn.0046f260
jmp 0x475fdd
push 0
push 0x801c
push 0x111
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi + 0x25c], 2
je 0x475ff2
push 0x32
call edi
jmp 0x475fe3
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
lea edx, [ebp - 0x1c]
push edx
call fcn.00402bc0
mov byte [ebp - 4], 0xe
lea ecx, [esi + 0xaf0]
mov byte [ebp - 4], 0xb
call fcn.0047e600
call fcn.005bc35c
mov eax, dword [eax + 4]
test byte [eax + 0xd4], 1
jne 0x47603d
push 0
push 0x3eb
push 0x111
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
call fcn.005bc35c
mov eax, dword [eax + 4]
and dword [eax + 0xd4], 0xfffffffe
push 0
push 0x6e2d30
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x476096
mov ecx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
test eax, eax
jl 0x4760ea
jg 0x476077
test ecx, ecx
jbe 0x4760ea
push 0
push 0x2710
push eax
push ecx
call fcn.005da540
push eax
push 1
push 0x8003
mov ecx, esi
call fcn.0040f160
jmp 0x4760ea
push 0
push 0x6e2d4c
push 0x6e1204
push 0
push ebx
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x4760ea
add eax, 0x24
mov ecx, dword [eax]
test ecx, ecx
je 0x4760ea
push eax
lea ecx, [ebp - 0x14]
call fcn.00464400
mov byte [ebp - 4], 0xf
mov ecx, dword [eax]
mov dword [eax], 0
push ecx
push 2
push 0x8003
mov ecx, esi
call fcn.0040f160
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x14]
call fcn.00442b00
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1c]
call fcn.00401a50
mov dword [ebp - 4], 3
jmp 0x4761f4
mov dword [ebp - 0x34], str.Cant_open__invalid_input_parameters
push 0x6b3364
lea ecx, [ebp - 0x34]
push ecx
call fcn.005da4c5
mov edx, dword [ebp - 0x50]
push edx
lea ecx, [ebp - 0x20]
call fcn.00401e30
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
lea eax, [ebp - 0x20]
push eax
call fcn.00402bc0
mov byte [ebp - 4], 0x11
mov esi, dword [ebp - 0x28]
lea ecx, [esi + 0xaf0]
mov byte [ebp - 4], 0x10
call fcn.0047e600
mov byte [esi + 0x1fd], 0
mov dword [ebp - 4], 3
mov eax, 0x4761f1
ret
mov ecx, dword [ebp - 0x20]
cmp dword [ecx - 0xc], 0
je 0x476329
mov ecx, esi
call fcn.0046cd50
lea ecx, [esi + 0x1dc]
lea edx, [ebp - 0x20]
push edx
call fcn.00403020
push 0
push 0x6e2d30
push 0x6e1204
push 0
mov eax, dword [ebp + 0x14c]
push eax
call fcn.005da3f0
add esp, 0x14
test eax, eax
je 0x476336
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x20]
push edx
call fcn.0040ca70
add esp, 8
test al, al
je 0x476336
push 0
mov ecx, dword [esi + 0x1f0]
call fcn.00442d10
mov ecx, dword [esi + 0x1f0]
call fcn.00442c80
cmp eax, 1
jle 0x476336
push fcn.00440c40
push fcn.00440af0
push 2
push 0x98
lea eax, [ebp + 0x10]
push eax
call fcn.005db6c0
mov bl, 0x15
mov byte [ebp - 4], bl
lea ecx, [ebp + 0x10]
push ecx
mov ecx, dword [esi + 0x1f0]
call fcn.00442cd0
mov ecx, dword [esi + 0x1f0]
call fcn.00443110
lea edx, [ebp + 0xa8]
push edx
mov ecx, dword [esi + 0x1f0]
call fcn.00442cd0
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp + 0xb0]
je 0x47630e
push 0
push 0
mov ecx, dword [esi + 0x1f0]
call fcn.00445d40
mov dword [ebp - 0x18], eax
mov dl, 0x16
mov byte [ebp - 4], dl
test eax, eax
je 0x476303
push ecx
mov dword [ebp - 0x14], esp
mov ecx, esp
mov dword [ebp - 0x18], 0
mov dword [ecx], eax
mov byte [ebp - 4], 0x17
mov byte [ebp - 4], dl
mov ecx, esi
call fcn.00475870
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x18]
call fcn.004e21b0
mov byte [ebp - 4], 3
push fcn.00440c40
push 2
push 0x98
lea ecx, [ebp + 0x10]
push ecx
call fcn.005db5e3
jmp 0x476336
push 1
mov ecx, dword [esi + 0x1f0]
call fcn.00442d10
push 0
push 0
push 0x36a
mov edx, dword [esi + 0x20]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x20]
cmp dword [eax - 0xc], 0
sete bl
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
call fcn.00401a50
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00401a50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x14c]
call fcn.004e21b0
mov al, bl
jmp 0x475a4a