Function at 0x566530
Capabilities:
Get disk information
Print debug messages

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x120
cmp byte [0x95cd22], 0
mov ebp, ecx
je 0x566552
add esp, 0x120
mov al, 1
pop ebp
pop edi
pop esi
pop ebx
ret
xor eax, eax
xor ebx, ebx
mov ecx, eax
mov dword [ebp + ebx + 0x158], 0
inc ecx
mov dword [ebp + ebx + 0x15c], 0
mov dword [ebp + ebx + 0x160], 0x5622
mov dword [ebp + ebx + 0x164], 0
or dword [ebp + ebx + 0x168], 0xffffffff
lea ecx, [ecx + ecx*4]
lea ecx, [ecx*4]
add ebx, 0xa0
mov dword [ebp + ecx + 0x158], 0
mov dword [ebp + ecx + 0x15c], 0
mov dword [ebp + ecx + 0x160], 0x5622
mov dword [ebp + ecx + 0x164], 0
or dword [ebp + ecx + 0x168], 0xffffffff
lea edx, [eax + 2]
lea edx, [edx + edx*4]
lea edx, [edx*4]
mov dword [ebp + edx + 0x158], 0
mov dword [ebp + edx + 0x15c], 0
mov dword [ebp + edx + 0x160], 0x5622
mov dword [ebp + edx + 0x164], 0
or dword [ebp + edx + 0x168], 0xffffffff
lea esi, [eax + 3]
lea esi, [esi + esi*4]
lea esi, [esi*4]
mov dword [ebp + esi + 0x158], 0
mov dword [ebp + esi + 0x15c], 0
mov dword [ebp + esi + 0x160], 0x5622
mov dword [ebp + esi + 0x164], 0
or dword [ebp + esi + 0x168], 0xffffffff
lea edi, [eax + 4]
lea edi, [edi + edi*4]
lea edi, [edi*4]
mov dword [ebp + edi + 0x158], 0
mov dword [ebp + edi + 0x15c], 0
mov dword [ebp + edi + 0x160], 0x5622
mov dword [ebp + edi + 0x164], 0
or dword [ebp + edi + 0x168], 0xffffffff
lea ecx, [eax + 5]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx*4]
mov dword [ebp + ecx + 0x158], 0
mov dword [ebp + ecx + 0x15c], 0
mov dword [ebp + ecx + 0x160], 0x5622
mov dword [ebp + ecx + 0x164], 0
or dword [ebp + ecx + 0x168], 0xffffffff
lea edx, [eax + 6]
lea edx, [edx + edx*4]
lea edx, [edx*4]
mov dword [ebp + edx + 0x158], 0
mov dword [ebp + edx + 0x15c], 0
mov dword [ebp + edx + 0x160], 0x5622
mov dword [ebp + edx + 0x164], 0
or dword [ebp + edx + 0x168], 0xffffffff
lea esi, [eax + 7]
lea esi, [esi + esi*4]
add eax, 8
lea esi, [esi*4]
mov dword [ebp + esi + 0x158], 0
mov dword [ebp + esi + 0x15c], 0
mov dword [ebp + esi + 0x160], 0x5622
mov dword [ebp + esi + 0x164], 0
or dword [ebp + esi + 0x168], 0xffffffff
cmp eax, 0xbd8
jb 0x566556
mov byte [ebp], 0x7f
mov byte [ebp + 1], 0x7f
mov byte [ebp + 2], 0x7f
mov byte [ebp + 3], 0x7f
mov byte [ebp + 4], 0
or dword [0x604800], 0xffffffff
mov byte [0x95cd6b], 0
or dword [0x604804], 0xffffffff
xor eax, eax
mov dword [0x95cb3c], 0
mov dword [0x8f2c54], 0
mov dword [0x94304c], 0
mov dword [0x8f395c], 0
mov dword [0x942fb8], 0
mov dword [0x8f1a24], 0
lea eax, [eax]
mov dword [eax*4 + 0x87c648], 0
mov dword [eax*4 + 0x87c64c], 0
mov dword [eax*4 + 0x87c650], 0
mov dword [eax*4 + 0x87c654], 0
mov dword [eax*4 + 0x87c658], 0
mov dword [eax*4 + 0x87c65c], 0
mov dword [eax*4 + 0x87c660], 0
add eax, 7
cmp eax, 0x1c
jb 0x5667d0
xor eax, eax
mov dword [0x8f1a9c], 0
pxor mm1, mm1
mov dword [0x8f1ab4], 0
movq mm0, qword [0x604b18]
mov dword [0x942f9c], 0
mov byte [0x95cc4c], 0
mov dword [0x87f9a0], 0
mov byte [0x95cc4d], 0
mov dword [0x70d6a0], 0
mov dword [0x70d6a4], 0
mov dword [0x87c7d8], 0
mov dword [0x87c7dc], 0
mov dword [0x87f9a4], 0
lea eax, [eax]
movq qword [eax*4 + 0x94074c], mm1
movq qword [eax*4 + 0x8e2a44], mm0
movq qword [eax*4 + 0x940754], mm1
movq qword [eax*4 + 0x8e2a4c], mm0
movq qword [eax*4 + 0x94075c], mm1
movq qword [eax*4 + 0x8e2a54], mm0
add eax, 6
cmp eax, 1
jb 0x5668a0
mov dword [eax*4 + 0x94074c], 0
mov dword [eax*4 + 0x8e2a44], 0xbd9
xor eax, eax
mov byte [0x95cd96], 0
pxor mm2, mm2
lea eax, [eax]
movq qword [eax + 0x95cd24], mm2
lea ebx, [eax + 8]
movq qword [ebx + 0x95cd24], mm2
lea edx, [eax + 0x10]
add eax, 0x18
movq qword [edx + 0x95cd24], mm2
cmp eax, 5
jb 0x566900
mov ecx, eax
mov byte [eax + 0x95cd24], 0
emms
inc ecx
mov byte [ecx + 0x95cd24], 0
lea esi, [eax + 2]
mov byte [esi + 0x95cd24], 0
lea edi, [eax + 3]
add eax, 4
mov byte [edi + 0x95cd24], 0
push 0x604b20
mov byte [eax + 0x95cd24], 0
call dword [0x61d5dc]
call dword [0x61d5e0]
push 0x20
push 1
call dword [0x61d5e4]
push 0
push 2
push 0x10
push 0x7d00
call dword [0x61d5e8]
cmp eax, 0
mov dword [0x8f1a24], eax
jne 0x5669b0
call dword [0x61d5ac]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, ebp
call fcn.00566dc0
xor al, al
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
call fcn.00565540
mov ecx, ebp
call fcn.005682d0
test al, al
jne 0x5669d4
mov ecx, ebp
call fcn.00566dc0
xor al, al
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [0x70d6a0]
push eax
call dword [0x61d5ec]
cmp eax, 0
mov dword [0x87c7d8], eax
jne 0x566a00
mov ecx, ebp
call fcn.00566dc0
xor al, al
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
push 0x87028
call dword [0x61d5ec]
mov dword [0x87c7dc], eax
mov byte [ebp + 0x56], 0
mov ebx, 0x2e
lea eax, [eax]
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], bl
lea eax, [ebp + 6]
lea edx, [esp + 0x12]
push edx
push eax
call fcn.005a0920
lea eax, [ebp + 6]
pop ecx
pop ecx
push 0x604b24
push eax
call fcn.005a0970
lea eax, [ebp + 6]
pop ecx
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 5
jne 0x566a5c
lea eax, [esp + 0x14]
lea ecx, [ebp + 6]
push ecx
push eax
call fcn.005a0920
lea eax, [esp + 0x1c]
pop ecx
pop ecx
push 0x6034dc
push eax
call fcn.005a0970
lea eax, [esp + 0x1c]
pop ecx
pop ecx
push 0x604b28
push eax
call fcn.005abb00
test eax, eax
pop ecx
pop ecx
je 0x566b50
push eax
call fcn.005ab990
xor esi, esi
pop ecx
mov edi, 0x6034dc
mov byte [esp + 4], 0
lea eax, [eax]
lea eax, [esp + 0x14]
lea edx, [ebp + 6]
push edx
push eax
call fcn.005a0920
lea eax, [esp + 0x1c]
pop ecx
pop ecx
push edi
push eax
call fcn.005a0970
mov eax, dword [0x8f1a24]
pop ecx
pop ecx
lea ecx, [esp + 0x14]
push 0
push ecx
push eax
call dword [0x61d5c8]
cmp eax, 0
mov dword [0x709c50], eax
je 0x566b21
lea edx, [esp + 0x118]
push 0
push edx
push eax
call dword [0x61d5cc]
mov eax, dword [0x709c50]
push eax
call dword [0x61d5d0]
mov eax, dword [esp + 0x118]
mov dword [0x709c50], 0
mov dword [esi*4 + 0x87fef0], eax
jmp 0x566b28
mov byte [esp + 4], 1
jmp 0x566b38
inc esi
add edi, 0x19
cmp esi, 0xc4
jb 0x566ab0
cmp byte [esp + 4], 0
je 0x566b45
mov byte [ebp + 0x56], 0
jmp 0x566b50
mov byte [ebp + 0x56], 1
jmp 0x566b5a
inc ebx
cmp ebx, 0x5a
jbe 0x566a20
cmp byte [ebp + 0x56], 0
jne 0x566b90
mov ecx, 0x8f59d8
call fcn.0048add0
cmp byte [0x8f5e29], 0
je 0x566a14
mov ecx, ebp
call fcn.00566dc0
xor al, al
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
xor edi, edi
mov dword [0x709c50], 0
mov byte [0x95cc2a], 0x3f
mov dword [0x709c54], 0
mov byte [0x95cc2b], 0x3f
mov byte [0x95cca4], 0x64
mov byte [0x95cca5], 0x64
mov eax, dword [0x8f1a24]
push eax
call dword [0x61d5f0]
mov dword [edi*4 + 0x8f4350], eax
mov eax, dword [edi*4 + 0x8f4350]
test eax, eax
je 0x566bf9
push eax
call dword [0x61d5f4]
mov eax, dword [edi*4 + 0x8f4350]
push 1
push 1
push eax
call dword [0x61d5f8]
inc edi
cmp edi, 1
jb 0x566bc2
xor ebx, ebx
mov byte [0x95cd22], 1
mov edx, 0x730118
jmp 0x566c3a
mov ecx, 0x1f
lea esi, [edx + 4]
mov edi, str.Miles_Fast_2D_Positional_Audio
repe cmpsb byte [esi], byte es:[edi]
movzx ecx, byte [esi - 1]
movzx eax, byte [edi - 1]
sub ecx, eax
test ecx, ecx
jne 0x566c36
push ebx
call fcn.005656f0
pop ecx
jmp 0x566c42
add edx, 0x54
inc ebx
movzx eax, byte [ebp + 0x57]
cmp ebx, eax
jb 0x566c10
movzx eax, byte [ebp + 0x57]
cmp ebx, eax
jne 0x566c60
mov ecx, ebp
call fcn.00566dc0
xor al, al
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret
mov ecx, ebp
push 0
call fcn.00567050
mov dword [0x95cc00], 0
mov dword [0x8e2c7c], 0
call fcn.00565b40
cmp dword [0x95cc00], 0
je 0x566da0
mov ebp, dword [0x8e2c7c]
mov dword [0x87ff14], 0
cmp ebp, 0
je 0x566cc5
mov eax, dword [0x87ff14]
mov dword [ebp + 0x108], eax
mov eax, dword [ebp + 0x104]
add dword [0x87ff14], eax
mov ebp, dword [ebp + 0x10c]
test ebp, ebp
jne 0x566ca4
push 0
call fcn.005be590
cmp eax, 0xffffffff
pop ecx
mov dword [esp + 0x11c], eax
je 0x566cf0
lea eax, [esp + 0x11c]
push eax
call fcn.005be5b0
xor bl, bl
pop ecx
mov dword [esp + 0xc], eax
jmp 0x566cf2
mov bl, 1
test bl, bl
je 0x566d00
mov eax, dword [0x885abc]
jmp 0x566d0e
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
imul eax, dword [ecx]
xor edx, edx
div dword [0x95cc00]
mov dword [0x8f2558], edx
mov edi, dword [0x8f2558]
mov ecx, dword [0x8e2c7c]
test edi, edi
mov eax, edi
jle 0x566d3b
mov eax, eax
dec eax
mov ecx, dword [ecx + 0x10c]
test eax, eax
jg 0x566d30
test bl, bl
je 0x566d54
xor edx, edx
mov eax, dword [0x885ab8]
div dword [ecx + 0x104]
mov dword [0x8f29fc], edx
jmp 0x566daa
mov eax, dword [esp + 0xc]
mov esi, dword [eax]
test esi, esi
jle 0x566d85
mov eax, esi
xor edx, edx
imul eax, esi
imul eax, esi
imul eax, esi
imul eax, esi
imul eax, esi
imul eax, esi
imul eax, esi
div dword [ecx + 0x104]
mov dword [0x8f29fc], edx
jmp 0x566daa
xor edx, edx
mov eax, dword [0x885ab8]
div dword [ecx + 0x104]
mov dword [0x8f29fc], edx
jmp 0x566daa
mov dword [0x8f29fc], 0
mov al, 1
mov byte [0x95cd94], 0
add esp, 0x120
pop ebp
pop edi
pop esi
pop ebx
ret