Function at 0x1004a2f0
Capabilities:
Check mutex on windows
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008f5d1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x198
push ebx
push esi
push edi
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x10], esp
mov al, byte [edi + 4]
mov dword [ebp - 0x48], edi
test al, al
mov dword [ebp - 0x1c], esi
je 0x1004a5c5
lea eax, [edi + 0x5c]
lea ecx, [ebp - 0xbc]
push eax
call fcn.10067f70
lea eax, [ebp + 8]
lea ecx, [ebp - 0x64]
push eax
push ecx
lea ecx, [edi + 0x130]
mov dword [ebp - 4], esi
call fcn.10050750
mov eax, dword [edi + 0x134]
mov ecx, dword [ebp - 0x64]
cmp eax, ecx
je 0x1004a5a7
mov edx, dword [str.GlobalConnectionHistoryMutex]
mov dword [ebp - 0x80], 0x10094520
push edx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, eax
cmp ebx, esi
mov dword [ebp - 0x7c], ebx
je 0x1004a389
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x1004a392
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x78], eax
cmp ebx, esi
mov byte [ebp - 4], 1
jne 0x1004a3fd
mov esi, dword [edi + 0x14c]
mov dword [ebp - 0x30], 0x6de
test esi, esi
jne 0x1004a3b1
mov esi, 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]
lea eax, [ebp - 0x30]
lea ecx, [ebp - 0x98]
push eax
push str.F:SCVLibScvLIBNetAvailableNetworkAdapters.cpp
call fcn.1006ae90
mov ecx, dword [ebp - 0x78]
mov edx, dword [str.AvailableNetworkAdaptersFunction]
push ecx
push esi
push 0x100a9564
push 1
push edx
push eax
mov byte [ebp - 4], 2
call fcn.1006b020
add esp, 0x18
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 1
call fcn.1006afc0
mov byte [ebp - 4], 0
jmp 0x1004a5a7
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x18], 0x10094500
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x18]
call fcn.1005ab10
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 3
cmp eax, esi
je 0x1004a582
mov eax, dword [eax + 8]
cmp eax, esi
je 0x1004a582
lea ecx, [eax + 0x24]
call fcn.1003aa00
test al, al
jne 0x1004a582
mov eax, dword [ebp - 0x14]
cmp eax, esi
jne 0x1004a44a
xor eax, eax
jmp 0x1004a44d
mov eax, dword [eax + 8]
add eax, 0x24
push eax
call fcn.1003b740
add esp, 4
test al, al
jne 0x1004a582
mov eax, dword [ebp - 0x14]
cmp eax, esi
jne 0x1004a46c
xor eax, eax
jmp 0x1004a46f
mov eax, dword [eax + 8]
lea ecx, [eax + 0x24]
call fcn.1003a9f0
cmp eax, 2
mov dword [ebp - 0x30], eax
lea esi, [edi + 0x110]
je 0x1004a48b
lea esi, [edi + 0x120]
test esi, esi
je 0x1004a582
mov dl, byte [ebp + 0xb]
xor eax, eax
mov byte [ebp - 0x2c], dl
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
push ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.1004e710
mov edx, dword [ebp - 0x30]
mov ecx, edi
push edx
call fcn.1004c2f0
mov eax, dword [esi + 4]
test eax, eax
je 0x1004a5d8
mov ecx, dword [esi + 8]
sub ecx, eax
sar ecx, 3
je 0x1004a5d8
mov ecx, esi
call fcn.1004e6f0
test eax, eax
ja 0x1004a4eb
mov ecx, esi
call fcn.1004fd90
mov edi, dword [esi + 4]
mov eax, dword [edi + 4]
test eax, eax
je 0x1004a4f8
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x1004a502
mov ecx, dword [ecx + 8]
mov edx, dword [ecx + 0x24]
add ecx, 0x24
add eax, 0x24
push eax
call dword [edx + 8]
test al, al
je 0x1004a5d8
mov eax, dword [edi + 4]
test eax, eax
je 0x1004a521
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
test eax, eax
jne 0x1004a52d
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 ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x1004a537
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x1004a544
mov ecx, 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]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x1004a5d8
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 3
call fcn.1004fd20
mov edx, dword [ebp - 0x28]
push edx
call fcn.10088e50
add esp, 4
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], 0x10094500
call fcn.100507f0
push ebx
mov byte [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x48]
call fcn.10047840
lea ecx, [ebp - 0xbc]
mov dword [ebp - 4], 0xffffffff
call fcn.10067fb0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
cmp ebx, edi
je 0x1004a65e
mov eax, dword [edi + 4]
test eax, eax
je 0x1004a657
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1004a657
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x1004a5fa
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
test eax, eax
jne 0x1004a606
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 ecx, dword [ecx + 8]
test ecx, ecx
jne 0x1004a613
mov ecx, 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]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
jne 0x1004a64a
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x1004a62d
xor edx, edx
jmp 0x1004a630
mov edx, dword [eax + 8]
mov eax, dword [edi + 4]
test eax, eax
je 0x1004a63a
mov eax, dword [eax + 8]
lea ecx, [eax + 0x24]
add edx, 0x24
push edx
mov eax, dword [ecx]
call dword [eax + 8]
test al, al
jne 0x1004a657
mov ecx, dword [ebp - 0x24]
push edi
push ecx
lea ecx, [ebp - 0x2c]
call fcn.1004e710
add edi, 8
cmp edi, ebx
jne 0x1004a5e2
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], 0x71d
mov edi, dword [ebx + 0x14c]
test edi, edi
jne 0x1004a678
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]
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0x98]
push edx
push str.F:SCVLibScvLIBNetAvailableNetworkAdapters.cpp
call fcn.1006ae90
mov ecx, dword [ebp + 8]
mov edx, dword [str.AvailableNetworkAdaptersFunction]
push ecx
push edi
push 0x100a9538
push 0xb
push edx
push eax
mov byte [ebp - 4], 5
call fcn.1006b020
add esp, 0x18
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 4
call fcn.1006afc0
mov eax, dword [esi + 4]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword [esi + 4], ecx
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [esi + 8]
mov dword [esi + 8], edx
mov dword [ebp - 0x24], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 4]
test ecx, ecx
mov dword [ebp - 0x20], eax
je 0x1004a75b
mov edi, dword [esi + 8]
mov eax, edi
sub eax, ecx
sar eax, 3
cmp eax, 0xa
jbe 0x1004a75b
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0x10094500
mov byte [ebp - 4], 7
jae 0x1004a726
lea edx, [ebp - 0x60]
mov ecx, esi
push edx
call fcn.1004e6f0
mov ecx, 0xa
sub ecx, eax
push ecx
push edi
mov ecx, esi
call fcn.1004fa60
jmp 0x1004a744
mov ecx, esi
call fcn.1004e6f0
cmp eax, 0xa
jbe 0x1004a744
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
add ecx, 0x50
push eax
push ecx
mov ecx, esi
call fcn.1004fcd0
mov ecx, dword [ebp - 0x5c]
mov byte [ebp - 4], 4
test ecx, ecx
mov dword [ebp - 0x60], 0x10094500
je 0x1004a75b
call fcn.100511f0
mov edx, dword [str.GlobalConnectionHistoryMutex]
mov dword [ebp - 0xb4], 0x10094520
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
test edi, edi
mov dword [ebp - 0xb0], edi
je 0x1004a78d
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x1004a799
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0xac], eax
test edi, edi
mov byte [ebp - 4], 9
jne 0x1004a825
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0x74]
push eax
push 0x100a9508
push ecx
call fcn.1005f8c0
add esp, 0xc
mov esi, dword [ebp - 0x70]
mov byte [ebp - 4], 0xa
test esi, esi
jne 0x1004a7ce
mov esi, 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 dl, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x40], 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_]
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, [ebp - 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_]
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x1a4]
push eax
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::runtime_error::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x1a4]
push 0x1009ab50
push ecx
mov dword [ebp - 0x1a4], 0x10094514
call sub.MSVCRT.dll__CxxThrowException
lea eax, [ebx + 0x5c]
lea ecx, [ebp - 0xc4]
push eax
call fcn.10067f70
mov dl, byte [ebp + 0xb]
push 0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xc
mov byte [ebp - 0x58], 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_]
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 0xd
cmp eax, 2
jne 0x1004a864
mov eax, dword [ebx + 0x20]
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]
test eax, eax
je 0x1004a873
jmp 0x1004a871
mov eax, dword [ebx + 0x30]
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]
test eax, eax
je 0x1004a873
mov edx, eax
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x58]
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_]
lea eax, [ebp - 0x58]
push str..new
lea ecx, [ebp - 0xa8]
push eax
push ecx
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0xc
mov eax, dword [ebp - 0xa4]
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]
test eax, eax
mov byte [ebp - 4], 0xe
je 0x1004a8b8
mov edi, eax
mov edx, dword [sym.imp.MSVCP60.dll_const_std::basic_ofstream_char__struct_std::char_traits_char__::vbtable]
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x150], edx
call dword [sym.imp.MSVCP60.dll_protected:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::constructor_void_]
mov dword [ebp - 0x1c], 1
push 0
push 1
lea eax, [ebp - 0x14c]
push 0
push eax
lea ecx, [ebp - 0x150]
mov byte [ebp - 4], 0xf
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char_____bool__bool_]
push 0
lea ecx, [ebp - 0x14c]
mov dword [ebp - 4], 0x10
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_filebuf_char__struct_std::char_traits_char__::constructor_struct__iobuf__]
mov ecx, dword [ebp - 0x150]
mov eax, dword [sym.imp.MSVCP60.dll_const_std::basic_ofstream_char__struct_std::char_traits_char__::vftable]
push 0x12
push edi
mov edx, dword [ecx + 4]
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x11
mov dword [ebp + edx - 0x150], eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_filebuf_char__struct_std::char_traits_char______thiscall_std::basic_filebuf_char__struct_std::char_traits_char__::open_char_const___int_]
test eax, eax
jne 0x1004a94e
mov ecx, dword [ebp - 0x150]
push eax
push 2
mov edx, dword [ecx + 4]
lea ecx, [ebp + edx - 0x150]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
mov byte [ebp - 4], 0x12
cmp ebx, edi
je 0x1004aa3b
mov eax, dword [edi + 4]
test eax, eax
je 0x1004aa33
mov eax, dword [eax + 8]
test eax, eax
je 0x1004aa33
add eax, 0x24
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.1003b360
add esp, 8
mov eax, dword [ebp - 0x70]
mov byte [ebp - 4], 0x13
test eax, eax
jne 0x1004a996
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]
lea ecx, [ebp - 0x90]
push eax
push ecx
lea ecx, [ebp - 0x44]
call fcn.1008a290
mov esi, eax
mov eax, dword [edi + 4]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x1004a9b6
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
test eax, eax
jne 0x1004a9c2
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]
lea edx, [ebp - 0x40]
push eax
push edx
lea ecx, [ebp - 0x44]
call fcn.1008a290
push eax
lea eax, [ebp - 0x150]
push eax
mov byte [ebp - 4], 0x15
call sub.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___class_std::basic_ostream_char__struct_std::char_traits_char_____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 8
push 9
push eax
call dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___class_std::basic_ostream_char__struct_std::char_traits_char_____char_]
add esp, 8
push esi
push eax
call sub.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___class_std::basic_ostream_char__struct_std::char_traits_char_____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 8
push eax
call dword [sym.imp.MSVCP60.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
add esp, 4
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x14
push 1
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, [ebp - 0x90]
mov byte [ebp - 4], 0x13
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, [ebp - 0x74]
mov byte [ebp - 4], 0x12
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
add edi, 8
jmp 0x1004a958
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x1004aa70
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
test eax, eax
jne 0x1004aa70
xor ebx, ebx
push 2
push ebx
lea ecx, [ebp - 0x14c]
call dword [sym.imp.MSVCP60.dll_protected:_void___thiscall_std::basic_filebuf_char__struct_std::char_traits_char__::_Init_struct__iobuf___enum_std::basic_filebuf_char__struct_std::char_traits_char__::_Initfl_]
lea ecx, [ebp - 0x14c]
test ecx, ecx
jne 0x1004aa8b
jmp 0x1004aa72
xor ebx, ebx
mov edx, dword [ebp - 0x150]
push ebx
push 2
mov eax, dword [edx + 4]
lea ecx, [ebp + eax - 0x150]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov ecx, dword [ebp - 0x54]
cmp ecx, ebx
jne 0x1004aa98
mov ecx, 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 eax, dword [ebp - 0xa4]
cmp eax, ebx
jne 0x1004aaa7
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 esi, dword [sym.imp.KERNEL32.dll_MoveFileExA]
push 3
push ecx
push eax
call esi
test eax, eax
jne 0x1004abf0
lea ecx, [ebp - 0x58]
push str..bak
lea edx, [ebp - 0x74]
push ecx
push edx
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0xc
mov ecx, dword [ebp - 0x70]
mov byte [ebp - 4], 0x16
cmp ecx, ebx
jne 0x1004aae1
mov ecx, 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 eax, dword [ebp - 0x54]
cmp eax, ebx
jne 0x1004aaed
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]
push 3
push ecx
push eax
call esi
test eax, eax
je 0x1004aca6
mov ecx, dword [ebp - 0x54]
cmp ecx, ebx
jne 0x1004ab08
mov ecx, 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 eax, dword [ebp - 0xa4]
cmp eax, ebx
jne 0x1004ab17
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]
push 3
push ecx
push eax
call esi
test eax, eax
jne 0x1004abce
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [ebp - 0x90]
push 0x100a94d0
push eax
call fcn.1005f8c0
add esp, 0xc
mov esi, dword [ebp - 0x8c]
mov byte [ebp - 4], 0x17
cmp esi, ebx
jne 0x1004ab54
mov esi, 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 cl, byte [ebp + 0xb]
push ebx
mov byte [ebp - 0x40], cl
lea ecx, [ebp - 0x40]
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
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x40]
push ebx
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 0x1004ab9f
mov edi, dword [ebp - 0x3c]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x40]
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_]
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x188]
push eax
mov byte [ebp - 4], 0x18
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::runtime_error::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x188]
push 0x1009ab50
push ecx
mov dword [ebp - 0x188], 0x10094514
call sub.MSVCRT.dll__CxxThrowException
mov eax, dword [ebp - 0x70]
cmp eax, ebx
jne 0x1004abda
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]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 1
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x12
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
call fcn.1006ca90
mov esi, eax
cmp esi, ebx
je 0x1004ac18
mov eax, dword [ebp - 0x54]
cmp eax, ebx
jne 0x1004ac07
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]
push esi
push eax
call fcn.1006ca10
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [ebp - 0x150]
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [sym.imp.MSVCP60.dll_const_std::basic_ofstream_char__struct_std::char_traits_char__::vftable]
mov eax, dword [edx + 4]
mov dword [ebp + eax - 0x150], ecx
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x1c
call dword [sym.imp.MSVCP60.dll_public_virtual:_void___thiscall_std::basic_filebuf_char__struct_std::char_traits_char__::destructor_void_]
mov edx, dword [ebp - 0x150]
mov ecx, dword [sym.imp.MSVCP60.dll_const_std::basic_ostream_char__struct_std::char_traits_char__::vftable]
mov byte [ebp - 4], 0xe
mov eax, dword [edx + 4]
mov dword [ebp + eax - 0x150], ecx
mov edx, dword [sym.imp.MSVCP60.dll_const_std::basic_ios_char__struct_std::char_traits_char__::vftable]
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0xf8], edx
call dword [sym.imp.MSVCP60.dll_public_virtual:_void___thiscall_std::ios_base::destructor_void_]
mov eax, dword [ebp - 0xa4]
cmp eax, ebx
je 0x1004ad77
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1004ad6e
cmp al, 0xff
je 0x1004ad6e
dec al
mov byte [ecx], al
jmp 0x1004ad77
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [ebp - 0x90]
push 0x100a94a4
push edx
call fcn.1005f8c0
add esp, 0xc
mov esi, dword [ebp - 0x8c]
mov byte [ebp - 4], 0x19
cmp esi, ebx
jne 0x1004acd5
mov esi, 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 al, byte [ebp + 0xb]
push ebx
lea ecx, [ebp - 0x40]
mov byte [ebp - 0x40], 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 edi, esi
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x40]
push ebx
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 0x1004ad20
mov edi, dword [ebp - 0x3c]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x38], ebx
mov byte [eax + ebx], 0
lea ecx, [ebp - 0x1c]
mov bl, 0x1a
push ecx
lea ecx, [ebp - 0x16c]
mov byte [ebp - 4], bl
mov dword [ebp - 0x1c], 0x100aba18
call dword [sym.imp.MSVCRT.dll_public:_void___thiscall_exception::constructor_char_const__const_const__]
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x160]
push edx
mov byte [ebp - 4], 0x1b
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea eax, [ebp - 0x16c]
push 0x1009ab50
push eax
mov byte [ebp - 4], bl
mov dword [ebp - 0x16c], 0x10094514
call sub.MSVCRT.dll__CxxThrowException
push ecx
call fcn.10088e50
add esp, 4
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xa4], ebx
cmp eax, ebx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x9c], ebx
je 0x1004adad
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x1004ada4
cmp al, 0xff
je 0x1004ada4
dec al
mov byte [ecx], al
jmp 0x1004adad
push ecx
call fcn.10088e50
add esp, 4
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 4], 9
call fcn.10067fb0
mov esi, dword [ebp - 0xb0]
cmp esi, ebx
je 0x1004ae4a
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1004ae4a
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
cmp esi, edi
mov dword [ebp - 4], 3
je 0x1004ae6c
mov edx, dword [esi]
push ebx
mov ecx, esi
call dword [edx]
add esi, 8
cmp esi, edi
jne 0x1004ae5b
mov esi, dword [ebp - 0x28]
push esi
call fcn.10088e50
mov esi, dword [ebp - 0x14]
add esp, 4
cmp esi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], 0x10094500
je 0x1004aed2
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push esi
call ebx
test eax, eax
jne 0x1004aed2
mov edi, dword [esi + 8]
test edi, edi
je 0x1004aeb4
mov ecx, edi
call fcn.10051640
push edi
call fcn.10088e50
add esp, 4
lea eax, [esi + 4]
mov dword [esi + 8], 0
push eax
call ebx
test eax, eax
jne 0x1004aed2
test esi, esi
je 0x1004aed2
push esi
call fcn.10088e50
add esp, 4
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 4], 0
test eax, eax
je 0x1004a5a7
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
jmp 0x1004a5a1