Function at 0x40a0a0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x848
mov eax, dword [0x42c2f0]
xor eax, esp
mov dword [esp + 0x844], eax
push ebx
push ebp
push esi
push edi
push 0x103
xor edi, edi
lea eax, [esp + 0x525]
mov esi, ecx
push edi
push eax
mov dword [esp + 0x24], esi
mov byte [esp + 0x52c], 0
call fcn.00412200
push 0x103
lea ecx, [esp + 0x42d]
push edi
push ecx
mov byte [esp + 0x434], 0
call fcn.00412200
mov ebp, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add esp, 0x18
xor ebx, ebx
mov byte [esi], 0
mov dword [esp + 0x10], ebx
jmp 0x40a110
cmp ebx, 0x10
jge 0x40a328
push ebx
lea edx, [esp + 0x524]
push str..Scsi_d:
push edx
call fcn.0040fac5
add esp, 0xc
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea eax, [esp + 0x538]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40a186
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x524]
push ecx
lea edx, [esp + 0x424]
push str.R_S_D_I_e1____C_F__.failed__szDriveName:_s__dwErrCode:_lu_n
push edx
call fcn.0040fac5
add esp, 0x10
lea eax, [esp + 0x41c]
push eax
call ebp
jmp 0x40a319
xor ebx, ebx
test edi, edi
jne 0x40a30e
cmp ebx, 2
jge 0x40a30e
push 0x22c
lea ecx, [esp + 0x629]
push 0
push ecx
call fcn.00412200
push 8
lea edx, [esp + 0x638]
push str.SCSIDISK
push edx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x63c], 0x1c
mov dword [esp + 0x648], 0x1388
mov dword [esp + 0x654], 0x211
mov dword [esp + 0x64c], 0x1b0501
call fcn.00411430
add esp, 0x18
push 0
lea eax, [esp + 0x18]
push eax
push 0x22d
lea ecx, [esp + 0x630]
push ecx
push 0x3c
mov edx, ecx
push edx
push 0x4d008
push esi
mov byte [esp + 0x66a], 0xec
mov byte [esp + 0x66c], bl
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x40a262
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
lea eax, [esp + 0x528]
push eax
lea ecx, [esp + 0x428]
push str.R_S_D_I_e2____D_I_C_I_S_M_.failed__szDriveName:_s__nDriveId:_d__dwErrCode:_lu_n
push ecx
call fcn.0040fac5
add esp, 0x14
lea edx, [esp + 0x41c]
push edx
jmp 0x40a301
cmp byte [esp + 0x686], 0
je 0x40a2db
xor eax, eax
mov edi, edi
movzx ecx, word [esp + eax*2 + 0x650]
mov dword [esp + eax*4 + 0x1c], ecx
add eax, 1
cmp eax, 0x100
jl 0x40a270
mov edi, dword [esp + 0x18]
mov ecx, edi
lea eax, [esp + 0x1c]
call fcn.004098f0
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40a2a0
sub eax, edx
push eax
push ebx
lea edx, [esp + 0x528]
push edx
lea eax, [esp + 0x428]
push str.R_S_D_I_OK____succeed__szDriveName:_s__nDriveId:_d__nSnLength:_d_n
push eax
call fcn.0040fac5
add esp, 0x14
lea ecx, [esp + 0x41c]
push ecx
call ebp
mov edi, 1
jmp 0x40a303
push ebx
lea edx, [esp + 0x524]
push edx
lea eax, [esp + 0x424]
push str.R_S_D_I_e3____pId__sModelNumber_0___0__szDriveName:_s__nDriveId:_d_n
push eax
call fcn.0040fac5
add esp, 0x10
lea ecx, [esp + 0x41c]
push ecx
call ebp
add ebx, 1
test edi, edi
je 0x40a190
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [esp + 0x10]
add ebx, 1
test edi, edi
mov dword [esp + 0x10], ebx
je 0x40a110
mov ecx, dword [esp + 0x854]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040fbc6
add esp, 0x848
ret