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

Disassembly:
push 0xffffffffffffffff
push 0x100a7598
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 0x10136854
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 0x1008b161
mov dword [esp + 0x14], ebx
jmp 0x1008af32
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 0x10136848
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 0x1008b13c
mov al, byte [esp + 0xae]
test al, al
je 0x1008b13c
lea ecx, [esp + 0x37c]
lea eax, [esp + 0x78]
mov edx, 0x100
xor edi, edi
add ecx, 4
mov di, word [eax]
add eax, 2
mov dword [ecx - 4], edi
dec edx
jne 0x1008afcf
push 0x13
lea edx, [esp + 0x380]
push 0xa
lea eax, [esp + 0x40]
push edx
push eax
mov ecx, esi
call fcn.1008b190
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 0x1008b042
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1008b039
cmp al, 0xff
je 0x1008b039
dec al
mov byte [ecx], al
jmp 0x1008b042
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 0x1008b075
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 0x1008b0aa
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 0x1008b0b8
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 0x1008b0c7
mov ecx, ebp
mov esi, dword [esi + 4]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x1008b0d5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x1008b0eb
cmp edx, ebp
jae 0x1008b0e2
or eax, 0xffffffff
jmp 0x1008b0e9
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 0x1008b11e
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x1008b115
cmp al, 0xff
je 0x1008b115
dec al
mov byte [ecx], al
jmp 0x1008b11e
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 0x1008b136
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 0x1008af2e
mov ecx, dword [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x1c]
cmp eax, ebx
jne 0x1008b177
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 2
mov dword [esp + 0x10], eax
jl 0x1008aecf
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