Function at 0x10002040
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x2f0
push ebx
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
push edi
push str.IsBMUDisk2_r_n
call ebp
mov eax, dword [0x1000f16c]
mov esi, dword [0x1000f514]
xor ebx, ebx
cmp eax, ebx
jne 0x10002081
push 0x1000f16c
push 0x1000c25c
mov ecx, 0x1000f148
call fcn.10002a30
mov dword [0x1000f168], eax
mov eax, dword [0x1000f16c]
mov edi, 2
cmp eax, edi
jne 0x1000209a
push esi
call dword [0x1000f168]
cmp eax, ebx
jne 0x100020ae
push str.No_device_Found__
call ebp
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f0
ret
push str.IsBMUDisk3_r_n
mov dword [0x1000f51c], edi
call ebp
mov eax, dword [0x1000f174]
mov edi, dword [0x1000f514]
cmp eax, ebx
jne 0x10002127
mov eax, dword [0x1000f148]
xor esi, esi
cmp eax, ebx
mov dword [0x1000f174], ebx
jne 0x10002106
mov eax, dword [0x1000f154]
cmp eax, ebx
je 0x10002121
cmp byte [eax], bl
je 0x10002121
cmp dword [0x1000f14c], ebx
jne 0x10002121
push 1
push eax
mov ecx, 0x1000f148
call fcn.10002730
mov eax, dword [0x1000f148]
cmp eax, ebx
je 0x10002121
push 0x1000c21c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
xor eax, eax
cmp esi, ebx
setne al
inc eax
mov dword [0x1000f174], eax
mov dword [0x1000f170], esi
cmp dword [0x1000f174], 2
jne 0x10002144
mov ecx, dword [esp + 0x304]
push ecx
push 0x1000f520
push edi
call dword [0x1000f170]
mov ecx, 0x18
xor eax, eax
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], bl
rep stosd dword es:[edi], eax
mov dl, byte [0x1000f520]
mov esi, dword [0x1000f514]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x1000f1ac]
mov byte [esp + 0x10], dl
cmp eax, ebx
jne 0x10002190
push 0x1000f1ac
push 0x1000c208
mov ecx, 0x1000f148
call fcn.10002a30
mov dword [0x1000f1a8], eax
cmp dword [0x1000f1ac], 2
jne 0x100021ae
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x9c]
push eax
push ecx
push ebx
push esi
call dword [0x1000f1a8]
cmp byte [esp + 0x9c], bl
je 0x100021c4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f0
ret
push str.IsBMUDisk4_r_n
call ebp
mov eax, dword [0x1000f20c]
mov dl, byte [0x1000f520]
mov edi, dword [0x1000f514]
cmp eax, ebx
mov byte [esp + 0x10], dl
jne 0x10002241
mov eax, dword [0x1000f148]
xor esi, esi
cmp eax, ebx
mov dword [0x1000f20c], ebx
jne 0x10002220
mov eax, dword [0x1000f154]
cmp eax, ebx
je 0x1000223b
cmp byte [eax], bl
je 0x1000223b
cmp dword [0x1000f14c], ebx
jne 0x1000223b
push 1
push eax
mov ecx, 0x1000f148
call fcn.10002730
mov eax, dword [0x1000f148]
cmp eax, ebx
je 0x1000223b
push 0x1000c1e0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
xor eax, eax
cmp esi, ebx
setne al
inc eax
mov dword [0x1000f20c], eax
mov dword [0x1000f208], esi
cmp dword [0x1000f20c], 2
jne 0x1000225e
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x100]
push ecx
push edx
push edi
call dword [0x1000f208]
push str.IsBMUDisk5_r_n
call ebp
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x19]
mov byte [esp + 0x18], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x18]
mov dword [esp + 0x14], 0x20
rep stosd dword es:[edi], eax
mov al, byte [0x1000f520]
mov edi, dword [0x1000f514]
mov byte [esp + 0x10], al
mov eax, dword [0x1000f1b4]
cmp eax, ebx
jne 0x10002304
mov eax, dword [0x1000f148]
xor esi, esi
cmp eax, ebx
mov dword [0x1000f1b4], ebx
jne 0x100022e2
mov eax, dword [0x1000f154]
cmp eax, ebx
je 0x100022fe
cmp byte [eax], bl
je 0x100022fe
cmp dword [0x1000f14c], ebx
jne 0x100022fe
push 1
push eax
mov ecx, 0x1000f148
call fcn.10002730
mov eax, dword [0x1000f148]
cmp eax, ebx
je 0x100022fe
push 0x1000c1b8
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
xor ecx, ecx
cmp esi, ebx
setne cl
inc ecx
mov dword [0x1000f1b4], ecx
mov dword [0x1000f1b0], esi
cmp dword [0x1000f1b4], 2
jne 0x10002323
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push eax
push ecx
push edi
call dword [0x1000f1b0]
lea edi, [esp + 0x18]
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x38], bl
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x39]
mov dword [esp + 0x14], ecx
mov ecx, 0x18
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea edx, [esp + 0x38]
lea eax, [esp + 0x18]
push edx
push eax
call fcn.10001fd0
add esp, 8
lea esi, [esp + 0x38]
lea eax, [esp + 0x100]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x1000239a
cmp cl, bl
je 0x10002384
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x1000239a
add eax, 2
add esi, 2
cmp cl, bl
jne 0x10002364
xor eax, eax
xor ecx, ecx
cmp eax, ebx
pop edi
sete cl
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2f0
ret
sbb eax, eax
pop edi
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ebx
pop esi
sete cl
pop ebp
mov eax, ecx
pop ebx
add esp, 0x2f0
ret