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

Disassembly:
sub esp, 0x58
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
lea ebx, [edi + 0x30]
test ebx, ebx
mov dword [esp + 0xc], ebx
je 0x1000f0ce
mov ecx, ebx
call fcn.100125e0
mov al, byte [esp + 0x68]
push ebp
push 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ebp, dword [edi + 0x14]
mov eax, dword [edi + 0x18]
cmp ebp, eax
je 0x1000f373
mov bl, byte [esp + 0x6c]
lea esi, [ebp + 0x13c]
cmp byte [ebp], 0
je 0x1000f358
test byte [esi + 0x1108], 1
jne 0x1000f358
mov cl, byte [esp + 0x6c]
push 0
mov byte [esp + 0x2c], cl
lea ecx, [esp + 0x2c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x30]
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_char_const___unsigned_int_]
mov eax, dword [esi - 0x110]
test eax, eax
jne 0x1000f2bc
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0x4c], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea edx, [esi + 0x100]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x50]
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_char_const___unsigned_int_]
mov dl, byte [esp + 0x6c]
push 0
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3c], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea edx, [esi + 0x80]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [esp + 0x40]
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_char_const___unsigned_int_]
mov al, byte [esi - 0x13b]
test al, al
je 0x1000f209
mov edi, 0x10046c80
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10046c80
lea ecx, [esp + 0x30]
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__::append_char_const___unsigned_int_]
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 edx, dword [ecx]
lea ecx, [esp + 0x48]
push edx
push 0
push ecx
mov ecx, 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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov edx, eax
mov edi, 0x10046c84
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10046c84
jmp 0x1000f29c
lea edx, [esp + 0x38]
lea eax, [esp + 0x48]
push edx
push eax
call dword [sym.imp.MSVCP60.dll_bool___cdecl_std::operator__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
add esp, 8
test al, al
je 0x1000f2a4
mov edi, 0x10046c88
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push eax
push 0x10046c88
lea ecx, [esp + 0x44]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
jne 0x1000f2a4
mov edi, 0x10046c8c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10046c8c
lea ecx, [esp + 0x30]
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__::append_char_const___unsigned_int_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [edx]
lea edx, [esp + 0x38]
push ecx
push 0
push edx
mov ecx, 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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov edx, eax
mov edi, 0x10046c90
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x10046c90
mov ecx, edx
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__::append_char_const___unsigned_int_]
push 1
lea ecx, [esp + 0x3c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x4c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, dword [esi - 0x124]
test ecx, ecx
jne 0x1000f2cc
mov ecx, dword [esi - 0x120]
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x1000f2d9
mov eax, 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 - 0x114]
push edx
mov edx, dword [esi + 0x110c]
push edx
mov edx, dword [esi - 0x118]
push 0
push ecx
mov ecx, dword [esi - 0x110]
push ecx
push 0
push eax
push edx
lea eax, [esp + 0x78]
push 0x10046c94
push eax
call fcn.100022b0
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x28
mov edx, dword [ecx]
lea ecx, [esp + 0x28]
push edx
push 0
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_]
push 1
lea ecx, [esp + 0x5c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea edx, [esp + 0x28]
mov ecx, dword [eax]
push ecx
push 0
push edx
lea ecx, [esp + 0x24]
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x2c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x18]
add ebp, 0x13f8
add esi, 0x13f8
cmp ebp, eax
jne 0x1000f0fb
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1000f477
mov ecx, dword [esp + 0x1c]
lea esi, [eax - 1]
cmp eax, esi
jb 0x1000f3c4
test ecx, ecx
je 0x1000f3c4
mov dl, byte [ecx - 1]
test dl, dl
je 0x1000f3af
cmp dl, 0xff
je 0x1000f3af
push 0
push eax
lea ecx, [esp + 0x20]
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_]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1000f3bf
mov byte [ecx - 1], 0xff
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + esi]
jmp 0x1000f3ca
mov edx, 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]
cmp byte [edx], 0xa
jne 0x1000f477
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ebx, [eax - 1]
cmp eax, ebx
mov ebp, dword [edx]
jae 0x1000f3f0
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xran_void_]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1000f42e
mov dl, byte [ecx - 1]
test dl, dl
je 0x1000f42e
cmp dl, 0xff
je 0x1000f42e
mov esi, ecx
push 1
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
lea ecx, [esp + 0x20]
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_char_const___unsigned_int_]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, eax
sub edx, ebx
cmp edx, ebp
jae 0x1000f438
mov ebp, edx
test ebp, ebp
jbe 0x1000f473
sub eax, ebx
add ecx, ebx
sub eax, ebp
push eax
lea eax, [ecx + ebp]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [esp + 0x2c]
add esp, 0xc
sub esi, ebp
lea ecx, [esp + 0x18]
push 0
push esi
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 0x1000f473
push esi
lea ecx, [esp + 0x1c]
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 ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x6c]
mov cl, byte [esp + 0x18]
xor edi, edi
mov byte [esi], cl
push edi
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
lea ecx, [esp + 0x18]
mov eax, dword [edx]
push eax
push edi
push ecx
mov ecx, esi
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 ecx, dword [esp + 0x1c]
pop ebp
cmp ecx, edi
je 0x1000f4c8
mov al, byte [ecx - 1]
test al, al
je 0x1000f4be
cmp al, 0xff
je 0x1000f4be
dec al
mov byte [ecx - 1], al
jmp 0x1000f4c8
dec ecx
push ecx
call fcn.1003ed30
add esp, 4
cmp ebx, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
je 0x1000f4e1
mov edx, dword [ebx]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x58
ret 4