Function at 0x44fe90
Capabilities:
Get disk information
Get disk size

Disassembly:
push 0xffffffffffffffff
push 0x54b4d0
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5b0c20]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [0x5fd0b8], ebx
cmp dword [0x5b2ba4], ebx
jne 0x44f831
cmp dword [esp + 0x40], ebx
je 0x44f83e
mov edi, 1
mov dword [0x5fd0b8], edi
jmp 0x44f843
mov edi, 1
call fcn.0044b630
call fcn.004143a0
call fcn.0044b330
mov esi, eax
mov dword [0x5fd0c4], eax
mov dword [0x5fd0c0], eax
cmp esi, ebx
je 0x44fabb
jmp 0x44f870
mov dword [esi + 0x3b04], edi
xor eax, eax
lea ebp, [esi + 2]
lea edi, [esi + 0x358]
push ebp
mov dword [esi + 0x2aec], ebx
mov dword [esi + 0x37c], ebx
mov dword [esi + 0x380], ebx
mov dword [esi + 0x388], ebx
mov dword [esi + 0x370], ebx
mov dword [esi + 0x36c], ebx
mov dword [esi + 0x374], ebx
mov word [esi + 0x6f4], ax
mov dword [esi + 0x384], ebx
mov dword [esi + 0x3b10], ebx
mov dword [esi + 0x3b14], ebx
mov dword [esi + 0x3b0c], ebx
mov dword [edi], 0xffffffff
mov dword [esi + 0x35c], ebx
mov dword [esi + 0x3b20], 0xff
mov dword [esi + 0x3b24], ebx
mov dword [esi + 0x3b28], ebx
mov dword [esi + 0x3b2c], ebx
mov dword [esi + 0x3b44], ebx
mov dword [esi + 0x3b48], ebx
mov dword [esi + 0x3b4c], ebx
mov dword [esi + 0x3b40], ebx
mov dword [esi + 0x3b38], ebx
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
jne 0x44f926
mov dword [esi + 0x3b0c], 1
push 0x10
lea ecx, [esi + 0x6d4]
push ecx
lea edx, [esi + 0x378]
push edx
lea eax, [esp + 0x34]
push eax
push edi
push 0x20
lea ecx, [esi + 0x316]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x44fa94
mov eax, ebp
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x44f960
sub eax, edx
sar eax, 1
movzx eax, word [esi + eax*2]
cmp ax, 0x5c
je 0x44f998
cmp ax, 0x2f
je 0x44f998
mov edi, ebp
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
cmp ax, bx
jne 0x44f984
mov edx, dword [0x554368]
mov dword [edi], edx
lea edi, [esi + 0x364]
push edi
lea eax, [esi + 0x368]
push eax
lea eax, [esi + 0x35c]
push eax
lea ecx, [esi + 0x360]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x44faa8
push esi
call fcn.0044e180
add esp, 4
test eax, eax
je 0x44faa8
mov eax, dword [esi + 0x35c]
imul eax, dword [esi + 0x360]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
test eax, eax
jge 0x44f9f3
fadd dword [0x552108]
fmul qword [0x552fa0]
mov ecx, dword [edi]
fstp dword [esp + 0x20]
fild dword [edi]
test ecx, ecx
jge 0x44fa0b
fadd dword [0x552108]
fld dword [esp + 0x20]
mov edx, dword [esi + 0x368]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fild dword [esi + 0x368]
test edx, edx
jge 0x44fa2f
fadd dword [0x552108]
fmulp st(1)
lea eax, [esi + 0x694]
push eax
push ecx
fstp dword [esp + 0x2c]
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.0044f140
fld dword [esp + 0x2c]
lea ecx, [esi + 0x6b4]
add esp, 8
push ecx
push ecx
fstp dword [esp]
call fcn.0044f140
push esi
mov dword [esi + 0x734], ebx
call fcn.0044e720
add esp, 0xc
test eax, eax
je 0x44faa8
mov edx, dword [esp + 0x3c]
push edx
push esi
call fcn.0044f580
add esp, 8
cmp dword [0x5b2b9c], ebx
jne 0x44faa8
push esi
call fcn.0044df80
add esp, 4
jmp 0x44faa8
mov eax, dword [esp + 0x3c]
push eax
push esi
call fcn.0044f7a0
push esi
call fcn.0044df80
add esp, 0xc
mov esi, dword [esi + 0x3f54]
mov edi, 1
cmp esi, ebx
jne 0x44f870
call fcn.0044f330
mov ecx, dword [0x5fd0c0]
cmp ecx, ebx
je 0x44fb1c
cmp dword [ecx + 0x734], ebx
jne 0x44fae0
cmp dword [ecx + 0x3b0c], ebx
jne 0x44fae0
mov dword [ecx + 0x3b2c], edi
mov eax, str.QSoftRam
mov esi, ecx
sub esi, eax
mov edx, 8
add esi, 0x1a0b
mov ebp, dword [esi + eax]
cmp ebp, dword [eax]
jne 0x44fb0c
sub edx, 4
add eax, 4
cmp edx, 4
jae 0x44faf4
mov dword [ecx + 0x3b2c], edi
mov ecx, dword [ecx + 0x3f54]
cmp ecx, ebx
jne 0x44faca
mov ecx, dword [0x5fd0c0]
mov edi, ecx
mov dword [0x5fd0bc], ebx
cmp edi, ebx
je 0x44fbec
lea esp, [esp]
cmp dword [edi + 0x3b2c], ebx
je 0x44fb84
cmp edi, ecx
jne 0x44fb84
mov eax, dword [edi + 0x734]
cmp eax, ebx
je 0x44fb55
push eax
call fcn.00401bc0
mov ecx, dword [0x5fd0c0]
add esp, 4
mov edi, dword [edi + 0x2aec]
cmp edi, ebx
je 0x44fb6e
push edi
call fcn.00401bc0
mov ecx, dword [0x5fd0c0]
add esp, 4
inc dword [0x5fd0bc]
mov ecx, dword [ecx + 0x3f54]
mov dword [0x5fd0c0], ecx
mov edi, ecx
jmp 0x44fbe4
mov eax, dword [edi + 0x3f54]
cmp eax, ebx
je 0x44fbec
cmp dword [eax + 0x3b2c], ebx
je 0x44fbe2
mov eax, dword [eax + 0x734]
cmp eax, ebx
je 0x44fba9
push eax
call fcn.00401bc0
add esp, 4
mov ecx, dword [edi + 0x3f54]
mov eax, dword [ecx + 0x2aec]
cmp eax, ebx
je 0x44fbc2
push eax
call fcn.00401bc0
add esp, 4
inc dword [0x5fd0bc]
mov edx, dword [edi + 0x3f54]
mov eax, dword [edx + 0x3f54]
mov dword [edi + 0x3f54], eax
mov ecx, dword [0x5fd0c0]
jmp 0x44fbe4
mov edi, eax
cmp edi, ebx
jne 0x44fb30
mov esi, ecx
cmp esi, ebx
je 0x44fca0
push esi
call fcn.0044b590
movzx eax, word [esi]
add esp, 4
cmp ax, bx
je 0x44fc20
movzx ecx, ax
push ecx
lea edx, [esi + 0x316]
push edx
push str._s___c:_
lea eax, [esi + 0x38c]
push eax
jmp 0x44fc8a
mov eax, dword [esi + 0x30c]
cmp eax, ebx
je 0x44fc70
movzx eax, word [eax]
cmp ax, bx
je 0x44fc5a
movzx edx, ax
lea ecx, [esi + 0x102]
push ecx
push edx
lea eax, [esi + 0x316]
push eax
lea ecx, [esi + 0x38c]
push str._s__Mount_point__c:_s_
push ecx
call fcn.00525f70
add esp, 0x14
jmp 0x44fc92
lea edx, [esi + 0x38c]
push str._Undefined_volume_
push edx
call fcn.00525f70
add esp, 8
jmp 0x44fc92
lea eax, [esi + 0x102]
push eax
lea ecx, [esi + 0x316]
push ecx
push str._s__Mount_point__s_
lea edx, [esi + 0x38c]
push edx
call fcn.00525f70
add esp, 0x10
mov esi, dword [esi + 0x3f54]
cmp esi, ebx
jne 0x44fbf6
call fcn.0044b4a0
test eax, eax
jne 0x44fcda
call fcn.0044b630
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x44fcc4
lea ecx, [esp + 0x1c]
push ecx
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
xor eax, eax
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edx, dword [0x5b2ed4]
push edx
call fcn.0040cad0
mov eax, dword [esp + 0x48]
add esp, 4
mov dword [0x5b2ed4], ebx
cmp eax, ebx
je 0x44fd05
lea ecx, [esp + 0x1c]
push ecx
push 1
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov esi, dword [0x5fd0c0]
cmp esi, ebx
je 0x44fe61
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
lea esp, [esp]
cmp dword [esi + 0x380], ebx
jne 0x44fd40
cmp dword [0x5b2990], ebx
je 0x44fe49
cmp dword [esi + 0x37c], ebx
je 0x44fe49
cmp dword [0x5b28f4], ebx
je 0x44fe49
cmp dword [0x5b2918], ebx
jne 0x44fe49
cmp dword [0x5b291c], ebx
jne 0x44fe49
cmp word [esi], bx
je 0x44fe49
call fcn.0050d475
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x44fe7f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], ebx
call fcn.0050d475
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
je 0x44fe7f
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esi + 0x38c]
push ecx
lea edx, [esp + 0x18]
push 0xef89
push edx
mov byte [esp + 0x40], 1
call fcn.00405140
add esp, 0xc
push 0xef1c
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x5b2810
call fcn.004050c0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
push ebx
push ecx
push edx
push eax
call edi
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x34], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44fe21
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x34], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44fe49
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ebx
push esi
call fcn.004215d0
mov esi, dword [esi + 0x3f54]
add esp, 8
cmp esi, ebx
jne 0x44fd20
mov eax, 1
mov dword [0x5b291c], eax
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
push 0x80004005
call fcn.00401c60
int3
sub esp, 0xc
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push ebx
push ebp
push esi
push edi
push ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
push ecx
xor ebp, ebp
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], ebp
xor edi, edi
call 0x44f7f0
mov esi, dword [0x5fd0c0]
add esp, 0xc
mov ebx, eax
cmp esi, ebp
je 0x44fee9
lea ebx, [ebx]
push esi
call fcn.0044dbb0
mov esi, dword [esi + 0x3f54]
add esp, 4
cmp esi, ebp
jne 0x44fed0
mov esi, dword [0x5fd0c0]
mov eax, esi
cmp eax, ebp
je 0x44ff0b
nop
cmp dword [eax + 0x3b38], ebp
je 0x44fefd
mov edi, 1
mov eax, dword [eax + 0x3f54]
cmp eax, ebp
jne 0x44fef0
cmp edi, ebp
jne 0x44ff15
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xc
ret
mov eax, esi
cmp eax, ebp
je 0x44ff2a
jmp 0x44ff20
mov eax, dword [eax + 0x3f54]
cmp eax, ebp
jne 0x44ff20
cmp esi, ebp
je 0x450019
cmp dword [esi + 0x3b38], ebp
je 0x44ff63
push ebp
lea edi, [esi + 0x3b3c]
lea edx, [esi + 2]
push edi
push edx
call fcn.00421310
add esp, 0xc
test eax, eax
je 0x44ff5d
mov edi, dword [edi]
cmp edi, ebp
je 0x44ff5d
cmp edi, 0xffffffff
jne 0x44ff63
mov dword [esi + 0x3b38], ebp
mov esi, dword [esi + 0x3f54]
cmp esi, ebp
jne 0x44ff32
mov esi, dword [0x5fd0c0]
cmp esi, ebp
je 0x450019
jmp 0x44ff80
cmp dword [esi + 0x3b38], ebp
je 0x44ffda
mov edi, dword [esp + 0x10]
cmp edi, ebp
jne 0x44ffad
push 0x3f58
push 1
call fcn.00525178
add esp, 8
mov dword [esp + 0x10], eax
cmp eax, ebp
je 0x45004b
mov edi, eax
lea eax, [esi + 2]
mov ecx, edi
sub ecx, eax
lea edx, [ecx + 2]
jmp 0x44ffc0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, bp
jne 0x44ffc0
push ebp
push edi
push ebp
call fcn.004139a0
add esp, 0xc
mov esi, dword [esi + 0x3f54]
cmp esi, ebp
jne 0x44ff80
mov esi, dword [0x5fd0c0]
cmp esi, ebp
je 0x450019
mov edi, edi
cmp dword [esi + 0x3b38], ebp
je 0x45000f
lea edi, [esi + 0x3b3c]
push edi
call fcn.00421500
add esp, 4
mov dword [edi], ebp
mov dword [esi + 0x3b38], ebp
mov esi, dword [esi + 0x3f54]
cmp esi, ebp
jne 0x44fff0
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x45002a
push eax
call fcn.005251b8
add esp, 4
call fcn.00425160
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
jmp 0x44f7f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret