Function at 0x432a38
Capabilities:
Get volume information via ioctl
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe04
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x1f8], edx
mov dword [ebp - 0x1fc], edx
mov dword [ebp - 0x1f4], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x43311d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x40060
mov edx, 0x1026c
call fcn.00407290
push 0
lea eax, [ebp - 8]
push eax
push 0x60
lea eax, [ebp - 0xac]
push eax
push 0
push 0
push 0x90064
mov eax, dword [0x466154]
push eax
call sub.kernel32.dll_DeviceIoControl
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x4330c2
mov eax, dword [ebp - 0x7c]
add eax, 0xd
dec eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
call fcn.00402d80
mov dword [ebp - 0x14], eax
xor edx, edx
push ebp
push 0x4330bb
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0xe0]
mov eax, dword [ebp - 4]
call fcn.00431b04
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc], eax
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 8
lea eax, [ebp - 0x10]
push eax
push 0x90068
mov eax, dword [0x466154]
push eax
call sub.kernel32.dll_DeviceIoControl
cmp eax, 1
sbb eax, eax
inc eax
test al, al
je 0x4330a2
mov eax, dword [ebp - 0x14]
add eax, 0xc
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax + 0x14]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
jmp 0x433090
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x100
jne 0x433084
mov eax, dword [ebp - 0x20]
cmp byte [eax + 8], 0
jne 0x432bbf
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax + 0x14]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x10], 0
jbe 0x432b7b
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x10], 0x10000
jbe 0x432b7f
xor eax, eax
jmp 0x432b81
mov al, 1
neg al
sbb eax, eax
xor ecx, ecx
mov edx, 0x114
call fcn.0042e974
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x10]
add eax, 0x10
mov edx, dword [ebp - 4]
mov dword [edx + 0x40092], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x400a2]
mov eax, dword [ebp - 0x44]
call fcn.00403054
jmp 0x432ffa
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x34], 0
jne 0x432bd6
cmp dword [eax + 0x30], 0
jbe 0x432bee
jmp 0x432bd8
jle 0x432bee
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x34], 0
jne 0x432bec
cmp dword [eax + 0x30], 0x10000
jbe 0x432bf2
jmp 0x432bee
jle 0x432bf2
xor eax, eax
jmp 0x432bf4
mov al, 1
neg al
sbb eax, eax
xor ecx, ecx
mov edx, 0x114
call fcn.0042e974
lea eax, [ebp - 0x1e8]
mov edx, 0x108
call fcn.00407290
mov eax, dword [ebp - 0x38]
movzx eax, word [eax + 0x20]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
jmp 0x432e59
mov eax, dword [ebp - 0x44]
mov al, byte [eax]
mov byte [ebp - 0x3d], al
cmp byte [ebp - 0x3d], 0
jbe 0x432e66
xor ebx, ebx
mov bl, byte [ebp - 0x3d]
shr ebx, 4
mov al, byte [ebp - 0x3d]
and al, 0xf
mov byte [ebp - 0x3e], al
inc dword [ebp - 0x44]
xor ecx, ecx
mov cl, byte [ebp - 0x3e]
mov eax, dword [ebp - 0x1e8]
add eax, eax
lea edx, [ebp + eax*8 - 0x1e0]
mov eax, dword [ebp - 0x44]
call fcn.00403054
xor eax, eax
mov al, byte [ebp - 0x3e]
add dword [ebp - 0x44], eax
xor ecx, ecx
mov cl, bl
mov eax, dword [ebp - 0x1e8]
add eax, eax
lea edx, [ebp + eax*8 - 0x1d8]
mov eax, dword [ebp - 0x44]
call fcn.00403054
cmp dword [ebp - 0x1e8], 0
jle 0x432e4c
cmp bl, 8
jae 0x432e0a
mov eax, dword [ebp - 0x1e8]
add eax, eax
push dword [ebp + eax*8 - 0x1d4]
push dword [ebp + eax*8 - 0x1d8]
mov eax, ebx
shl eax, 3
dec eax
call fcn.00432a10
test al, al
je 0x432e0a
mov eax, ebx
dec al
je 0x432ce8
dec al
je 0x432d2c
dec al
je 0x432d70
dec al
je 0x432db4
jmp 0x432df2
mov eax, dword [ebp - 0x1e8]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x1d8]
movsx eax, al
cdq
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
add eax, dword [ebp + ecx*8 - 0x1e8]
adc edx, dword [ebp + ecx*8 - 0x1e4]
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
mov dword [ebp + ecx*8 - 0x1d8], eax
mov dword [ebp + ecx*8 - 0x1d4], edx
jmp 0x432e4c
mov eax, dword [ebp - 0x1e8]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x1d8]
movsx eax, ax
cdq
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
add eax, dword [ebp + ecx*8 - 0x1e8]
adc edx, dword [ebp + ecx*8 - 0x1e4]
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
mov dword [ebp + ecx*8 - 0x1d8], eax
mov dword [ebp + ecx*8 - 0x1d4], edx
jmp 0x432e4c
mov eax, dword [ebp - 0x1e8]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x1d8]
movsx eax, ax
cdq
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
add eax, dword [ebp + ecx*8 - 0x1e8]
adc edx, dword [ebp + ecx*8 - 0x1e4]
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
mov dword [ebp + ecx*8 - 0x1d8], eax
mov dword [ebp + ecx*8 - 0x1d4], edx
jmp 0x432e4c
mov eax, dword [ebp - 0x1e8]
add eax, eax
mov eax, dword [ebp + eax*8 - 0x1d8]
cdq
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
add eax, dword [ebp + ecx*8 - 0x1e8]
adc edx, dword [ebp + ecx*8 - 0x1e4]
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
mov dword [ebp + ecx*8 - 0x1d8], eax
mov dword [ebp + ecx*8 - 0x1d4], edx
jmp 0x432e4c
mov ecx, 0x433134
mov dl, 1
mov eax, dword [0x4308f4]
call fcn.0040f260
call fcn.0040426c
jmp 0x432e4c
mov eax, dword [ebp - 0x1e8]
add eax, eax
mov edx, dword [ebp + eax*8 - 0x1d4]
mov eax, dword [ebp + eax*8 - 0x1d8]
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
add eax, dword [ebp + ecx*8 - 0x1e8]
adc edx, dword [ebp + ecx*8 - 0x1e4]
mov ecx, dword [ebp - 0x1e8]
add ecx, ecx
mov dword [ebp + ecx*8 - 0x1d8], eax
mov dword [ebp + ecx*8 - 0x1d4], edx
xor eax, eax
mov al, bl
add dword [ebp - 0x44], eax
inc dword [ebp - 0x1e8]
cmp dword [ebp - 0x1e8], 0x10
jl 0x432c26
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x1f0], eax
xor eax, eax
mov dword [ebp - 0x1ec], eax
fild qword [ebp - 0x1f0]
fdivr dword [0x433140]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.0042a8f8
mov edx, dword [ebp - 4]
imul dword [edx + 0x38]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
call fcn.00402d80
mov dword [ebp - 0x48], eax
xor eax, eax
push ebp
push 0x432fe1
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
jmp 0x432fa7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
xor edx, edx
push edx
push eax
mov eax, esi
add eax, eax
mov edx, dword [ebp + eax*8 - 0x1d4]
mov eax, dword [ebp + eax*8 - 0x1d8]
call fcn.00405a14
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
push dword [ebp - 0x24]
push dword [ebp - 0x28]
mov edx, dword [0x466154]
mov eax, dword [ebp - 4]
call fcn.004311a0
mov eax, dword [ebp - 0x4c]
sub eax, edi
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
xor edx, edx
push edx
push eax
mov eax, esi
add eax, eax
mov edx, dword [ebp + eax*8 - 0x1dc]
mov eax, dword [ebp + eax*8 - 0x1e0]
call fcn.00405a14
push edx
push eax
call fcn.0042a928
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
push 0
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [0x466154]
push eax
call sub.kernel32.dll_ReadFile
test eax, eax
jne 0x432f8e
call sub.kernel32.dll_GetLastError
lea edx, [ebp - 0x1f4]
call fcn.0040ea48
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0x1f0], eax
mov byte [ebp - 0x1ec], 0xb
lea eax, [ebp - 0x1f0]
push eax
push 0
mov ecx, 0x43314c
mov dl, 1
mov eax, dword [0x4308f4]
call fcn.0040f29c
call fcn.0040426c
mov eax, dword [ebp - 4]
lea edx, [eax + edi + 0x400a2]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x34]
call fcn.00403054
add edi, dword [ebp - 0x34]
inc esi
mov eax, edi
xor edx, edx
mov ecx, dword [ebp - 0x38]
cmp edx, dword [ecx + 0x34]
jne 0x432fba
cmp eax, dword [ecx + 0x30]
jae 0x432fc8
jmp 0x432fbc
jge 0x432fc8
cmp esi, dword [ebp - 0x1e8]
jl 0x432ebd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x432fe8
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
call fcn.00402db0
ret
mov eax, dword [ebp - 4]
mov dword [eax + 0x40060], 0x100
mov eax, dword [ebp - 4]
lea edx, [eax + 0x40064]
mov eax, 0x45e304
mov ecx, 8
call fcn.00403054
mov eax, dword [ebp - 4]
mov dword [eax + 0x40074], 0x1e
mov eax, dword [ebp - 4]
lea edx, [eax + 0x40078]
mov eax, 0x45e30c
mov ecx, 8
call fcn.00403054
mov eax, dword [ebp - 4]
mov dword [eax + 0x4008c], 2
mov eax, dword [ebp - 4]
mov byte [eax + 0x40090], 0x10
mov eax, dword [ebp - 4]
mov byte [eax + 0x40091], 0x19
mov eax, dword [ebp - 4]
lea edx, [eax + 0x40096]
mov eax, 0x45e314
mov ecx, 8
call fcn.00403054
call fcn.00404318
jmp 0x4330ff
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x18]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x20]
jg 0x432b3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4330c2
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
call fcn.00402db0
ret
call sub.kernel32.dll_GetLastError
lea edx, [ebp - 0x1fc]
call fcn.0040ea48
mov ecx, dword [ebp - 0x1fc]
lea eax, [ebp - 0x1f8]
mov edx, 0x43318c
call fcn.00404be0
mov ecx, dword [ebp - 0x1f8]
mov dl, 1
mov eax, dword [0x4308f4]
call fcn.0040f260
call fcn.0040426c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x433124
lea eax, [ebp - 0x1fc]
mov edx, 3
call fcn.004048dc
ret