Function at 0x402360
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 8]
mov eax, 0x90d4f121
push esi
mul ebx
mov eax, ebx
push edi
mov edi, dword [ebp + 0xc]
sub eax, edx
shr eax, 1
add eax, edx
and edi, 0xffff
shr eax, 9
xor edx, edx
mov dword [ebp - 0x14], edi
div edi
xor edx, edx
mov esi, eax
mov eax, 0x316
div ebx
not esi
and esi, edi
sub eax, edi
or esi, eax
cmp esi, 0x50
ja 0x4023b0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4023e9
cmp esi, 0x19
jb 0x4023e9
cmp esi, 0xffffffff
jne 0x4023c4
mov eax, 0x441b68
mov dword [ebp - 8], eax
jmp 0x402430
cmp esi, 0xa
jae 0x4023db
mov eax, edi
xor edx, edx
div edi
mov ecx, dword [ebp + 0x10]
mov esi, eax
add esi, ecx
and esi, 9
jmp 0x4023e9
cmp esi, 0x23
jae 0x4023e9
mov esi, dword [ebp + 0x10]
xor esi, 0x263
cmp esi, 0x55
jne 0x40242b
mov esi, ebx
sub esi, edi
add esi, 0xe8
or esi, 0x2f7
mov eax, dword [ebp + 8]
sub esi, edi
sub esi, 0x53a
cmp eax, 0x218c
mov ebx, esi
jne 0x402472
mov ecx, dword [ebp - 8]
mov edx, edi
or edx, 0x303
mov esi, dword [ecx]
lea edx, [edx + esi + 0xbaf4]
mov dword [ebp - 0x1c], edx
jmp 0x402475
cmp esi, 0xffffffff
jne 0x402455
mov eax, edi
imul eax, ebx
lea ecx, [eax + eax*2]
shl ecx, 4
sub ecx, eax
lea eax, [ecx + ecx*4 + 0x29]
mov ecx, dword [ebp - 8]
and eax, 0x1b6
lea edx, [ecx + eax + 0xd54]
mov dword [ebp - 8], edx
jmp 0x4023fe
cmp esi, 0xe
ja 0x402463
pop edi
mov al, bl
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, 0x24
jae 0x4023fe
mov al, byte [ebp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 8]
mov esi, ebx
or esi, 0x256
cmp eax, 0x5e
jae 0x40248e
mov esi, ebx
sub esi, edi
xor esi, 0x8c
jmp 0x4024b3
cmp eax, 0x17
jae 0x4024e0
mov ecx, dword [ebp + 8]
mov eax, ebx
and eax, 0x201
sub ecx, ebx
xor eax, 0x242
or eax, ecx
or al, 0xbc
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0x10]
cmp eax, 0x19
jae 0x40260e
mov ecx, dword [ebp + 8]
mov eax, 0x8f
sub eax, ebx
mov ebx, dword [ebp + 0x10]
sub eax, ecx
or eax, ebx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 8]
jmp 0x40266d
cmp eax, 0x3d
jae 0x402500
mov ecx, dword [ebp + 0x10]
mov eax, 0x178
sub eax, ecx
and eax, ebx
and eax, ecx
or eax, edi
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetProfileIntW]
jmp 0x4024b0
cmp eax, 0x52
jne 0x402529
mov eax, 0x3e22cbcf
mul edi
mov eax, edi
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp + 0x10]
shr eax, 8
lea esi, [eax + edx + 0x7c]
and esi, 0x85
or esi, 0x52
jmp 0x4024b3
cmp eax, 0x218c
jne 0x4024b3
cmp esi, 0x57
ja 0x40254e
mov eax, 0x7a190a23
mov ebx, esi
mul dword [ebp + 0x10]
sub ebx, edi
shr edx, 0xc
xor ebx, edx
xor ebx, 0x7c
jmp 0x4024b3
cmp esi, 0xffff22de
jne 0x4025a9
mov eax, dword [ebp + 0xc]
cmp ax, 0x49
jae 0x40256a
mov ebx, dword [ebp + 0x10]
or ebx, 0xa
jmp 0x4024b3
cmp ax, 0xd7e7
jne 0x40257d
mov eax, 0x404479
mov dword [ebp - 8], eax
jmp 0x4024b0
cmp ax, 0x5d
ja 0x402591
mov eax, dword [ebp + 0x10]
lea esi, [eax + 0x3a5]
jmp 0x4024b3
cmp ax, 0x12
jae 0x4024b3
add ebx, 0xffffffb8
or ebx, 0x218c
jmp 0x4024b3
cmp esi, 0x19
jae 0x4025c7
mov eax, 0x160de
xor edx, edx
div dword [ebp + 0x10]
mov eax, edx
xor edx, edx
div edi
mov esi, eax
xor esi, edi
jmp 0x4024b0
cmp esi, 0x41
jae 0x4025dd
add ebx, 0x3b
and ebx, 0x41
or ebx, 0x23a4
jmp 0x4024b3
cmp esi, 0x21
jne 0x4025fb
mov eax, 0x132
xor edx, edx
div edi
mov esi, edx
and esi, 0x2188
or esi, 0x14
jmp 0x4024b3
cmp esi, 0xd
jae 0x4024b3
mov al, byte [ebp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x29
jae 0x40261c
mov esi, 0xfffffce6
sub esi, edi
jmp 0x40266d
cmp eax, 0x1f
jne 0x40262a
pop edi
pop esi
mov al, al
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x4860
jne 0x402648
mov edx, dword [ebp + 8]
lea eax, [edx + edx]
xor eax, 0xde
lea ecx, [ecx + eax - 0x2d9f]
mov dword [ebp - 8], ecx
jmp 0x40266d
cmp eax, 0x57
jb 0x40266d
cmp eax, 0x1e
ja 0x40266d
mov eax, 0x228
xor edx, edx
div esi
mov eax, dword [ebp + 0x10]
add eax, eax
imul edx, edi
and edx, 0x347
or edx, eax
mov esi, edx
cmp word [ebp + 0xc], 0xd7e7
mov dword [ebp - 0x18], ecx
jne 0x40268d
mov ecx, 0xd7e7
sub ecx, esi
xor ecx, esi
or ecx, 0x17
add ecx, 0x2b143
mov dword [ebp - 8], ecx
test ecx, ecx
mov dword [ebp - 0x20], 0
jbe 0x40291b
mov eax, 0x2f2
xor edx, edx
div edi
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
xor eax, 0x18f
or eax, ecx
mov dword [ebp - 0x24], eax
jmp 0x4026bd
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x14]
mov ebx, eax
mov ecx, ebx
shl ecx, 6
add ecx, ebx
and ecx, ebx
and ecx, 0x11f
xor ecx, 0x15d
or ecx, ebx
cmp esi, 0x10
mov dword [ebp - 0xc], ecx
jae 0x4026e8
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_TransmitCommChar]
jmp 0x402749
cmp esi, 0x17
jbe 0x402925
cmp esi, 0x4d
ja 0x402715
mov eax, 0x240
xor edx, edx
div dword [ebp + 0x10]
mov eax, edx
xor edx, edx
div edi
mov edi, 0x12
mov eax, edx
xor edx, edx
div edi
mov ebx, edx
jmp 0x40274f
cmp esi, 0x40
je 0x40274f
cmp esi, 0x218c
jne 0x40274f
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
mov edx, 0xffffdeaa
sub edx, esi
and eax, 0xffff
and edx, eax
mov dl, byte [edx + ecx - 0x4a]
push edx
call fcn.00401ec0
add esp, 4
mov byte [ebp - 1], al
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
cmp cx, 0x48
jb 0x4027cd
cmp cx, 9
jb 0x40245a
cmp cx, 0x28
ja 0x40277a
mov edi, dword [ebp + 0x10]
mov eax, 1
sub eax, edi
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
jmp 0x4027c7
cmp cx, 0x4b
jb 0x4027cd
cmp cx, 0x60
je 0x402468
cmp cx, 0x49ff
jne 0x4027cd
lea eax, [ebx + ebx*8]
lea ecx, [ebx + eax*8]
mov eax, 0xdee95c4d
lea edx, [ebx + ecx*4]
mov ecx, 0x25b
shl edx, 1
mul edx
mov eax, edx
xor edx, edx
shr eax, 8
div ecx
mov eax, dword [ebp - 0x18]
mov cl, byte [edx + eax - 0x152]
push ecx
call fcn.00401ec0
add esp, 4
mov byte [ebp - 2], al
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov al, cl
mov dl, 0x54
imul dl
mov dl, al
mov al, 0xea
sub al, dl
or al, bl
cmp cx, 0x49ff
mov byte [ebp - 0x10], al
jne 0x402838
mov eax, 0x9aee72fd
mov edi, dword [ebp - 0x10]
mul dword [ebp - 0x14]
mov eax, 0xb81702e1
mov ecx, edx
mul dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov esi, edi
and esi, 0xff
shr ecx, 8
shr edx, 8
add ecx, esi
sub edx, eax
and ecx, edx
mov dl, byte [ebp - 1]
sub ecx, 0x7c
mov eax, esi
shl dl, cl
mov cl, byte [ebp - 2]
mov esi, dword [ebp + 8]
or dl, cl
mov cl, dl
xor edx, edx
div ebx
mov eax, dword [ebp - 0x1c]
and edx, 0x50
mov byte [edx + eax - 0x50], cl
mov ecx, dword [ebp - 0xc]
jmp 0x40285c
cmp cx, 0x18
ja 0x402859
mov eax, esi
xor edx, edx
div ebx
mov dl, byte [ebp - 0x10]
add al, dl
mov dl, byte [ebp + 0xc]
add dl, 0x7f
sub al, 0x69
xor dl, 0xca
or al, dl
mov byte [ebp - 0x10], al
mov edi, dword [ebp - 0x10]
cmp ebx, 0x5e
je 0x4028a5
cmp ebx, 0x49ef
jne 0x40289c
mov esi, ecx
mov eax, 0x6e
and esi, 0xffff
xor edx, edx
div esi
mov esi, dword [ebp + 8]
mov edx, eax
shl edx, 5
add edx, eax
shl edx, 3
sub edx, eax
shl edx, 3
sub edx, eax
mov eax, dword [ebp - 0x1c]
add eax, edx
lea edx, [eax + edx*8 + 1]
mov dword [ebp - 0x1c], edx
jmp 0x4028a5
cmp ebx, 0x10
jb 0x402925
and edi, 0xff
mov eax, 0xfd
xor edx, edx
div edi
mov eax, esi
sub eax, edx
sub eax, ecx
cmp ebx, 0x52
je 0x402907
cmp ebx, 0x49ef
jne 0x402907
cmp ax, 0x5e
je 0x40292e
cmp ax, 9
jae 0x4028e8
mov eax, dword [ebp - 0xc]
and eax, 0xffff
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
mov esi, dword [ebp + 8]
jmp 0x402907
cmp ax, 0xd690
jne 0x402907
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
mov eax, esi
xor eax, edx
xor eax, 0x49ef
lea edx, [ecx + eax - 0x2001]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
add eax, 2
cmp eax, ecx
mov dword [ebp - 0x20], eax
jb 0x4026b7
mov al, byte [ebp + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov al, 0x5e
pop ebx
mov esp, ebp
pop ebp
ret