Function at 0x100ce51d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x100e3dd8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x76c
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x27c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x27c]
push eax
push str..Scsi_d:
push 0xff
push ecx
call dword [sym.imp.MSVCRT.dll__snprintf]
add esp, 0x10
lea edx, [esp + 0x27c]
push ebx
push ebx
push 3
push ebx
push 3
push 0xc0000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
mov dword [esp + 0x30], ebp
je 0x100ce7c1
mov dword [esp + 0x14], ebx
jmp 0x100ce592
mov ebp, dword [esp + 0x30]
mov ecx, 0x8b
xor eax, eax
lea edi, [esp + 0x4c]
push 8
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [esp + 0x54]
push str.SCSIDISK
push eax
mov dword [esp + 0x58], 0x1c
mov dword [esp + 0x64], 0x2710
mov dword [esp + 0x70], 0x211
mov dword [esp + 0x68], 0x1b0501
call dword [sym.imp.MSVCRT.dll_strncpy]
mov cl, byte [esp + 0x20]
add esp, 0xc
lea edx, [esp + 0x48]
lea eax, [esp + 0x4c]
push ebx
push edx
mov byte [esp + 0x7c], cl
push 0x22d
push eax
lea ecx, [esp + 0x5c]
push 0x3c
push ecx
push 0x4d008
push ebp
mov byte [esp + 0x92], 0xec
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x100ce79c
mov al, byte [esp + 0xae]
test al, al
je 0x100ce79c
lea ecx, [esp + 0x37c]
lea eax, [esp + 0x78]
mov edx, pe_nt_image_headers32
xor edi, edi
add ecx, 4
mov di, word [eax]
add eax, 2
mov dword [ecx - 4], edi
dec edx
jne 0x100ce62f
push 0x13
lea edx, [esp + 0x380]
push 0xa
lea eax, [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.100ce7f0
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov dword [esp + 0x784], ebx
mov edx, dword [ecx]
mov ecx, esi
push edx
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x784], 0xffffffff
cmp eax, ebx
je 0x100ce6a2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x100ce699
cmp al, 0xff
je 0x100ce699
dec al
mov byte [ecx], al
jmp 0x100ce6a2
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov al, byte [esp + 0x1b]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [esp + 0x20], al
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov eax, dword [ecx]
mov dword [esp + 0x3c], ebx
cmp eax, 0x14
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
jne 0x100ce6d5
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
push 1
push 0x14
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x100ce70a
mov eax, dword [esp + 0x24]
mov edx, 0x20202020
push 0x14
lea ecx, [esp + 0x24]
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov edi, dword [esp + 0x24]
cmp edi, ebx
jne 0x100ce718
mov edi, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov edx, dword [esi + 8]
mov ebp, dword [esp + 0x28]
cmp edx, ebp
mov ecx, edx
jb 0x100ce727
mov ecx, ebp
mov esi, dword [esi + 4]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x100ce735
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x100ce74b
cmp edx, ebp
jae 0x100ce742
or eax, 0xffffffff
jmp 0x100ce749
xor eax, eax
cmp edx, ebp
setne al
cmp eax, ebx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x784], 0xffffffff
setne bl
xor esi, esi
cmp ecx, esi
je 0x100ce77e
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x100ce775
cmp al, 0xff
je 0x100ce775
dec al
mov byte [ecx], al
jmp 0x100ce77e
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
test bl, bl
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
je 0x100ce796
mov dword [esp + 0x1c], 1
mov esi, dword [esp + 0x34]
xor ebx, ebx
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 2
mov dword [esp + 0x14], eax
jl 0x100ce58e
mov ecx, dword [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jne 0x100ce7d7
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 2
mov dword [esp + 0x10], eax
jl 0x100ce52f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x77c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x778
ret