Function at 0x43714c
Capabilities:
Get disk information

Disassembly:
push 0x468
mov eax, 0x67cf89
call fcn.005b8597
mov edi, dword [ebp + 8]
and dword [ebp - 0x424], 0
mov esi, ecx
test edi, edi
jne 0x437175
xor eax, eax
call fcn.005b861a
ret 4
mov eax, dword [edi + 4]
sub eax, 0x10
push eax
call fcn.0040149c
lea ebx, [eax + 0x10]
pop ecx
mov dword [ebp - 0x428], ebx
and dword [ebp - 4], 0
cmp dword [ebx - 0xc], 0
jne 0x4371a3
xor esi, esi
lea ecx, [ebx - 0x10]
call fcn.0040124d
mov eax, esi
jmp 0x43716d
push 0xa
lea ecx, [ebp - 0x474]
call fcn.004b96c1
mov byte [ebp - 4], 1
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x42c]
call fcn.004015a6
lea eax, [ebp - 0x410]
push eax
push 0x400
mov byte [ebp - 4], 2
call dword [0x69b580]
and dword [ebp - 0x418], 0
mov dword [ebp - 0x414], eax
test eax, eax
jle 0x43728a
mov eax, dword [ebp - 0x418]
mov al, byte [ebp + eax - 0x410]
test al, al
jne 0x43725b
mov eax, dword [ebp - 0x42c]
cmp dword [eax - 0xc], 0
je 0x43724e
lea ecx, [ebp - 0x42c]
call fcn.0040776b
push 1
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x42c]
call fcn.00403bfd
push eax
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 3
call fcn.004b99ad
mov ecx, dword [ebp - 0x420]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.0040124d
lea ecx, [ebp - 0x42c]
call fcn.00401563
jmp 0x437272
mov byte [ebp - 0x41c], al
push dword [ebp - 0x41c]
lea ecx, [ebp - 0x42c]
call fcn.004252fa
inc dword [ebp - 0x418]
mov eax, dword [ebp - 0x418]
cmp eax, dword [ebp - 0x414]
jl 0x4371f0
push 0
push ebx
lea ecx, [ebp - 0x474]
call fcn.004b9773
test eax, eax
jne 0x4373ca
mov ebx, str.ERR_DRIVE_NOTEXIST
push ebx
lea ecx, [ebp - 0x41c]
call fcn.00401b65
lea eax, [ebp - 0x41c]
push eax
push 0x81
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.0042dda5
mov ecx, dword [ebp - 0x41c]
add ecx, 0xfffffff0
mov dword [ebp - 0x424], eax
mov byte [ebp - 4], 2
call fcn.0040124d
cmp dword [ebp - 0x424], 0
je 0x4373ca
call fcn.00442752
test eax, eax
jne 0x4377fb
push 0x10
push ecx
mov ecx, esp
mov dword [ebp - 0x430], esp
push str.MSG_ERROR
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x414]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov byte [ebp - 4], 5
push ecx
mov ecx, esp
mov dword [ebp - 0x430], esp
push ebx
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x418]
push eax
add ecx, 0x16c
call fcn.0043db02
mov edi, eax
push str.:_r_n_r_n
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x41c]
push eax
mov byte [ebp - 4], 6
call fcn.00405bb5
push edi
push eax
lea eax, [ebp - 0x420]
push eax
mov byte [ebp - 4], 7
call fcn.00405b5e
add esp, 0x18
push dword [eax]
mov eax, dword [esi + 8]
push dword [eax + 0x20]
call dword [0x69b9f8]
mov ecx, dword [ebp - 0x420]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x41c]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x414]
jmp 0x4377f3
push 0x6a1b0c
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.00405bb5
add esp, 0xc
push dword [eax]
call dword [0x69b584]
mov ecx, dword [ebp - 0x420]
cmp eax, 3
sete bl
add ecx, 0xfffffff0
call fcn.0040124d
test bl, bl
je 0x4377fb
mov ebx, str.ERR_DRIVE_NOTENOUGHSPACE
cmp dword [ebp - 0x424], 0
jne 0x4377fb
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x418]
call fcn.004015a6
push 0x6a1b0c
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x444]
push eax
mov byte [ebp - 4], 8
call fcn.00405bb5
add esp, 0xc
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 9
call fcn.0040191c
mov ecx, dword [ebp - 0x444]
add ecx, 0xfffffff0
mov byte [ebp - 4], 8
call fcn.0040124d
and dword [ebp - 0x43c], 0
and dword [ebp - 0x438], 0
lea eax, [ebp - 0x43c]
push eax
push dword [ebp - 0x418]
call fcn.0044e1ec
pop ecx
pop ecx
test eax, eax
jne 0x437762
mov eax, dword [ebp - 0x438]
cmp eax, dword [edi + 0xc]
ja 0x437762
jb 0x4374b7
mov eax, dword [ebp - 0x43c]
cmp eax, dword [edi + 8]
jae 0x437762
push ebx
lea ecx, [ebp - 0x420]
call fcn.00401b65
lea eax, [ebp - 0x420]
push eax
push 0x82
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.0042dda5
mov ecx, dword [ebp - 0x420]
add ecx, 0xfffffff0
mov dword [ebp - 0x424], eax
mov byte [ebp - 4], 8
call fcn.0040124d
cmp dword [ebp - 0x424], 0
jne 0x437762
call fcn.00442752
test eax, eax
jne 0x43771b
call fcn.004b8afa
push eax
lea ecx, [ebp - 0x41c]
call fcn.004015a6
push dword [ebp - 0x438]
lea eax, [ebp - 0x448]
push dword [ebp - 0x43c]
mov ecx, esi
push eax
mov byte [ebp - 4], 0xb
call fcn.00428ba8
push dword [eax]
mov byte [ebp - 4], 0xc
push ecx
mov ecx, esp
mov dword [ebp - 0x414], esp
push str.MSG_AVAILABLE_DRIVE
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x454]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
lea eax, [ebp - 0x44c]
push dword [edi + 0xc]
mov ecx, esi
push dword [edi + 8]
mov byte [ebp - 4], 0xd
push eax
call fcn.00428ba8
push dword [eax]
mov byte [ebp - 4], 0xe
push ecx
mov ecx, esp
mov dword [ebp - 0x414], esp
push str.MSG_REQUIRED_DRIVE
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x440]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov byte [ebp - 4], 0xf
push ecx
mov ecx, esp
mov dword [ebp - 0x414], esp
push ebx
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x450]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
lea eax, [ebp - 0x41c]
push dword [ebp - 0x428]
mov byte [ebp - 4], 0x10
push str._s:_r_n_r_n_s_r_n_r_n_s__s_r_n_s__s
push eax
call fcn.0040255b
mov ecx, dword [ebp - 0x450]
add esp, 0x20
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x440]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x44c]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x454]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x448]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xb
call fcn.0040124d
push 0x32
push ecx
mov ecx, esp
mov dword [ebp - 0x414], esp
push str.MSG_ERROR
call fcn.00401b65
mov ecx, dword [0x7534c4]
lea eax, [ebp - 0x458]
push eax
add ecx, 0x16c
call fcn.0043db02
push dword [eax]
mov eax, dword [esi + 8]
push dword [ebp - 0x41c]
push dword [eax + 0x20]
call dword [0x69b9f8]
mov ecx, dword [ebp - 0x458]
add ecx, 0xfffffff0
mov dword [ebp - 0x414], eax
call fcn.0040124d
mov eax, dword [ebp - 0x414]
sub eax, 4
je 0x437701
and dword [ebp - 0x414], 0
dec eax
je 0x43770b
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x434]
push str.Free_space_check_on_drive:
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push 0
push 0
push 1
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x11
call fcn.0043b7c8
mov ecx, dword [ebp - 0x434]
add ecx, 0xfffffff0
call fcn.0040124d
jmp 0x43770b
mov dword [ebp - 0x414], 1
mov ecx, dword [ebp - 0x41c]
add ecx, 0xfffffff0
call fcn.0040124d
jmp 0x437769
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x430]
push str.Free_space_check_on_drive:
push eax
call fcn.0040ccc6
add esp, 0xc
mov eax, dword [eax]
mov ecx, dword [0x7534c4]
push 0
push 0
push 1
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x12
call fcn.0043b7c8
mov ecx, dword [ebp - 0x430]
add ecx, 0xfffffff0
call fcn.0040124d
and dword [ebp - 0x414], 0
mov ecx, dword [ebp - 0x418]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.0040124d
cmp dword [ebp - 0x414], 0
jne 0x43740e
cmp dword [ebp - 0x424], 0
jne 0x4377fb
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x434]
push str.Free_space_check_on_drive:
push eax
call fcn.0040ccc6
push 0x6a1b0c
push eax
lea eax, [ebp - 0x430]
push eax
mov byte [ebp - 4], 0x13
call fcn.00405bb5
add esp, 0x18
mov eax, dword [eax]
xor ecx, ecx
push ecx
push ecx
push ecx
mov ecx, dword [0x7534c4]
push eax
add ecx, 0x6dc
mov byte [ebp - 4], 0x14
call fcn.0043b7c8
mov ecx, dword [ebp - 0x430]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x434]
add ecx, 0xfffffff0
call fcn.0040124d
mov ecx, dword [ebp - 0x42c]
add ecx, 0xfffffff0
call fcn.0040124d
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0
call fcn.004b97ef
mov esi, dword [ebp - 0x424]
mov ebx, dword [ebp - 0x428]
jmp 0x437197