Function at 0x634338
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x5f
push 0
push 0
dec ecx
jne 0x634340
push ebx
push esi
push edi
mov dword [ebp - 0x294], eax
lea eax, [ebp - 0x290]
mov edx, dword [0x41c15c]
call fcn.0040b070
xor eax, eax
push ebp
push 0x634c84
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3fc]
call fcn.00514230
jmp 0x63439b
mov esi, edi
test esi, esi
je 0x634390
sub esi, 4
mov esi, dword [esi]
mov edx, esi
dec edx
lea eax, [ebp - 0xc]
call fcn.0040ab3c
mov edi, dword [ebp - 0xc]
mov ebx, edi
test ebx, ebx
je 0x6343a9
sub ebx, 4
mov ebx, dword [ebx]
mov eax, dword [ebp - 0xc]
cmp word [eax + ebx*2 - 2], 0x5c
je 0x634385
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3fc]
mov edx, dword [ebp - 0xc]
call fcn.00514284
mov eax, dword [ebp - 0xc]
call fcn.005b392c
lea edx, [ebp - 0x29c]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3fc]
call fcn.00514230
mov eax, dword [ebp - 0x29c]
call fcn.005b3924
test al, al
jne 0x634413
push 0x10
mov ecx, 0x634c98
mov edx, 0x634ca8
mov eax, dword [0x6b8b4c]
mov eax, dword [eax]
call fcn.005a2368
call fcn.0042b500
lea edx, [ebp - 0x2a0]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3fc]
call fcn.00514230
mov eax, dword [ebp - 0x2a0]
call fcn.004071a0
lea edx, [ebp - 0x2a8]
xor eax, eax
call fcn.00407724
mov eax, dword [ebp - 0x2a8]
lea edx, [ebp - 0x2a4]
call fcn.00424e20
mov eax, dword [ebp - 0x2a4]
lea edx, [ebp - 4]
call fcn.005ae954
lea eax, [ebp - 0x2ac]
mov ecx, 0x634d34
mov edx, dword [ebp - 4]
call fcn.0040ac14
mov eax, dword [ebp - 0x2ac]
lea ecx, [ebp - 0x290]
mov edx, 0x1ff
call fcn.00424bd0
mov ebx, eax
mov eax, dword [0x6b8754]
xor edx, edx
mov dword [eax], edx
test ebx, ebx
jne 0x6344b7
mov eax, dword [0x6b8754]
mov edx, dword [ebp - 0x288]
add dword [eax], edx
lea eax, [ebp - 0x290]
call fcn.00424c20
mov ebx, eax
test ebx, ebx
je 0x634499
lea eax, [ebp - 0x290]
call fcn.00424c44
mov eax, dword [0x6b8754]
add dword [eax], 0xf4240
mov eax, dword [0x6b8754]
mov ecx, 0x3e8
push eax
mov eax, dword [eax]
cdq
idiv ecx
pop edx
mov dword [edx], eax
mov eax, dword [0x6b8754]
imul eax, dword [eax], 0x3e8
cdq
push edx
push eax
lea edx, [ebp - 0x2b4]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3fc]
call fcn.00514230
mov eax, dword [ebp - 0x2b4]
lea edx, [ebp - 0x2b0]
call fcn.004232e4
mov eax, dword [ebp - 0x2b0]
movzx eax, byte [eax]
sub al, 0x41
inc eax
call fcn.006338e8
test al, al
jne 0x63457f
push 0x634d48
mov eax, dword [0x6b8754]
mov eax, dword [eax]
mov ecx, 0x3e8
cdq
idiv ecx
lea edx, [ebp - 0x2bc]
call fcn.00423eb4
push dword [ebp - 0x2bc]
push 0x634de8
lea eax, [ebp - 0x2b8]
mov edx, 3
call fcn.0040ac9c
mov eax, dword [ebp - 0x2b8]
mov ecx, 0x10
mov edx, 0x634e28
call fcn.005adb90
jmp 0x634bf0
mov eax, dword [ebp - 0x294]
mov byte [eax + 0x480], 1
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x428]
xor edx, edx
call fcn.00514134
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x408]
mov dl, 1
call fcn.00514134
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3e8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3f0]
xor edx, edx
call fcn.00514134
xor edx, edx
push ebp
push 0x634b1f
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 0
lea eax, [ebp - 0x298]
push eax
mov eax, dword [0x6b8720]
mov eax, dword [eax]
add eax, 0x414
push eax
push 0
push 0
push 0
push 0
call sub.kernel32.dll_GetVolumeInformationW
lea edx, [ebp - 0x2c4]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3fc]
call fcn.00514230
mov eax, dword [ebp - 0x2c4]
lea edx, [ebp - 0x2c0]
call fcn.004236b0
mov edx, dword [ebp - 0x2c0]
mov eax, dword [0x6b8720]
mov eax, dword [eax]
add eax, 0x3f0
mov ecx, 0x634e44
call fcn.0040ac14
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x404]
mov edx, dword [eax]
call dword [edx + 0x150]
mov edx, dword [0x6b8720]
mov edx, dword [edx]
mov byte [edx + 0x40e], al
mov eax, dword [0x6b861c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3f4]
mov edx, dword [eax]
call dword [edx + 0x150]
mov edx, dword [0x6b8720]
mov edx, dword [edx]
mov byte [edx + 0x40f], al
mov eax, dword [0x6b861c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3ec]
mov edx, dword [eax]
call dword [edx + 0x150]
mov edx, dword [0x6b8720]
mov edx, dword [edx]
mov byte [edx + 0x41c], al
mov eax, dword [0x6b8720]
mov eax, dword [eax]
cmp byte [eax + 0x40f], 0
jne 0x6346f4
mov eax, dword [0x6b8720]
mov eax, dword [eax]
mov edx, dword [eax + 0x3f0]
lea eax, [ebp - 0x2c8]
mov ecx, 0x634e54
call fcn.0040ac14
mov eax, dword [ebp - 0x2c8]
call fcn.005adc04
jmp 0x634739
mov eax, dword [0x6b8720]
mov eax, dword [eax]
mov edx, dword [eax + 0x3f0]
lea eax, [ebp - 0x2cc]
mov ecx, 0x634e54
call fcn.0040ac14
mov ecx, dword [ebp - 0x2cc]
mov dl, 1
mov eax, dword [0x5b3c28]
call fcn.005b469c
mov ebx, eax
mov edx, ebx
mov eax, dword [ebp - 0x294]
call fcn.00634180
mov eax, ebx
call fcn.00408128
mov eax, dword [0x6b8720]
mov eax, dword [eax]
call fcn.00636c8c
mov eax, dword [0x6b8720]
mov eax, dword [eax]
mov edx, 0x634e7c
call fcn.00514284
mov eax, dword [0x6b8720]
mov eax, dword [eax]
cmp byte [eax + 0x41c], 0
je 0x6347ae
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x464]
mov edx, dword [eax + 0x58]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x420]
call fcn.00513634
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x420]
mov edx, 0x634ea8
call fcn.00514284
lea eax, [ebp - 8]
mov edx, 0x635008
call fcn.0040a1e0
jmp 0x6348ca
mov edx, 0x17
mov eax, dword [ebp - 0x294]
mov ecx, dword [eax]
call dword [ecx + 0xe0]
test eax, eax
je 0x6347d4
lea eax, [ebp - 0x14]
mov edx, 0x635030
call fcn.0040a1e0
jmp 0x6347e1
lea eax, [ebp - 0x14]
mov edx, 0x635048
call fcn.0040a1e0
mov eax, dword [0x6b8720]
mov eax, dword [eax]
cmp byte [eax + 0x40d], 0
je 0x634868
lea eax, [ebp - 0x2d0]
push eax
mov eax, 0x635060
mov dword [ebp - 0x2e0], eax
mov byte [ebp - 0x2dc], 0x11
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2d8], eax
mov byte [ebp - 0x2d4], 0x11
lea edx, [ebp - 0x2e0]
mov ecx, 1
mov eax, 0x635078
call fcn.0042565c
mov edx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x420]
call fcn.00514284
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x464]
mov edx, dword [eax + 0x58]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x420]
call fcn.00513634
jmp 0x6348bd
lea eax, [ebp - 0x2e4]
push eax
mov eax, 0x6351c0
mov dword [ebp - 0x2e0], eax
mov byte [ebp - 0x2dc], 0x11
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2d8], eax
mov byte [ebp - 0x2d4], 0x11
lea edx, [ebp - 0x2e0]
mov ecx, 1
mov eax, 0x635078
call fcn.0042565c
mov edx, dword [ebp - 0x2e4]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x420]
call fcn.00514284
lea eax, [ebp - 8]
mov edx, 0x6351d8
call fcn.0040a1e0
mov eax, dword [0x6b8720]
mov eax, dword [eax]
cmp byte [eax + 0x40f], 0
jne 0x634903
mov eax, dword [ebp - 8]
push eax
mov eax, dword [0x6b8720]
mov eax, dword [eax]
movzx eax, byte [eax + 0x41c]
push eax
mov eax, dword [0x6b8720]
mov eax, dword [eax]
mov ecx, 0x6351fc
mov edx, 0x635244
call fcn.006384cc
call fcn.0042c7a4
cmp eax, 6
jg 0x634923
call fcn.0042c7a4
cmp eax, 6
jne 0x63491f
call fcn.0042c7ac
dec eax
jge 0x634923
xor eax, eax
jmp 0x634925
mov al, 1
test al, al
je 0x63494c
mov eax, dword [0x6b8720]
mov eax, dword [eax]
cmp dword [eax + 0x418], 0
je 0x63494c
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x464]
mov dl, 1
call fcn.00514134
mov eax, dword [0x6b8720]
mov eax, dword [eax]
cmp byte [eax + 0x41c], 0
jne 0x634a96
xor edx, edx
push ebp
push 0x634a8c
push dword fs:[edx]
mov dword fs:[edx], esp
xor eax, eax
mov dword [ebp - 0x1c], eax
xor edx, edx
push ebp
push 0x634a01
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 0x2e8]
mov eax, dword [0x6b8720]
mov eax, dword [eax]
mov eax, dword [eax + 0x3f0]
call fcn.005ae954
mov edx, dword [ebp - 0x2e8]
lea eax, [ebp - 0x1c]
mov ecx, 0x635260
call fcn.0040ac14
call fcn.005ae1b4
test al, al
je 0x6349c4
lea eax, [ebp - 0x18]
mov edx, 0x635280
call fcn.0040a1e0
jmp 0x6349d1
lea eax, [ebp - 0x18]
mov edx, 0x635294
call fcn.0040a1e0
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
push 0x6352a8
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.0040ac9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x634a08
lea eax, [ebp - 0x1c]
call fcn.00409da8
pop eax
jmp eax
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3ec]
xor edx, edx
call fcn.00514134
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3e8]
mov edx, dword [ebp - 0x294]
mov dword [eax + 0x124], edx
mov dword [eax + 0x120], 0x6353b0
mov edx, 0x63536c
call fcn.00514284
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x3e8]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x98]
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x424]
mov dl, 1
call fcn.00514134
mov eax, dword [ebp - 0x294]
xor edx, edx
mov dword [eax + 0x348], edx
mov dword [eax + 0x34c], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x634ba7
mov eax, dword [ebp - 0x294]
cmp byte [eax + 0x49a], 0
jne 0x634bbf
cmp byte [0x6b83a0], 0
je 0x634bca
mov eax, dword [ebp - 0x294]
call fcn.0059cd78
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x41c]
mov dl, 1
call fcn.00514134
mov eax, dword [ebp - 0x294]
mov eax, dword [eax + 0x408]
xor edx, edx
call fcn.00514134
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x634c8e
lea eax, [ebp - 0x2f8]
mov edx, 6
call fcn.00409e08
lea eax, [ebp - 0x2d0]
mov edx, 3
call fcn.00409e08
lea eax, [ebp - 0x2c4]
call fcn.00409da8
lea eax, [ebp - 0x2c0]
mov edx, 3
call fcn.00409e08
lea eax, [ebp - 0x2b4]
call fcn.00409da8
lea eax, [ebp - 0x2b0]
mov edx, 4
call fcn.00409e08
lea eax, [ebp - 0x2a0]
mov edx, 2
call fcn.00409e08
lea eax, [ebp - 0x290]
mov edx, dword [0x41c15c]
call fcn.0040b45c
lea eax, [ebp - 0x18]
mov edx, 6
call fcn.00409e08
pop eax
jmp eax