Function at 0x40fa50
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x45f719
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x66c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x6d]
mov byte [esp + 0x6c], 0
mov byte [esp + 0x4c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x4d]
mov dword [esp + 0x2c], esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [esp + 0x28], 1
xor ecx, ecx
mov eax, dword [esi + 0x190]
mov dword [esp + 0x30], ecx
test eax, eax
je 0x40ff3f
mov edx, dword [esi + 0x194]
sub edx, eax
sar edx, 2
cmp ecx, edx
jae 0x40ff3f
mov ebp, dword [eax + ecx*4]
mov eax, dword [ebp + 0x190]
test eax, eax
jne 0x40ff35
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 ecx, [ebp + 0xfc]
mov edx, dword [eax]
lea eax, [esi + 0x15c]
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_]
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, [ebp + 0x10c]
mov eax, dword [edx]
lea edx, [esi + 0x16c]
push eax
push 0
push 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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esi, 0x260
lea ecx, [ebp + 0x11c]
mov edx, dword [eax]
push edx
push 0
push 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 eax, dword [ebp + 0xb0]
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 dword [esp + 0x28], 0
mov dword [esp + 0x10], edi
je 0x40fb57
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xa0]
mov ebx, edi
test eax, eax
je 0x40fb65
mov ebx, eax
mov eax, dword [ebp + 0xc0]
mov edx, edi
test eax, eax
je 0x40fb73
mov edx, eax
mov eax, dword [ebp + 0x90]
test eax, eax
je 0x40fb7f
mov edi, eax
test edi, edi
je 0x40fbad
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
lea esi, [esp + 0x26c]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
je 0x40fbdd
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x370]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test edx, edx
je 0x40fc07
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x474]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x10]
test edi, edi
je 0x40fc33
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x578]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x26c]
push ecx
call fcn.00459920
add esp, 4
test eax, eax
je 0x40fc5a
push ebp
mov dword [esp + 0x14], 0
call fcn.00412d00
add esp, 4
jmp 0x40fc62
mov dword [esp + 0x10], 4
lea ecx, [esp + 0x18]
call fcn.0040c720
lea ecx, [esp + 0x18]
mov dword [esp + 0x684], 0
call fcn.0040e760
push 0x473498
push str.biz_type
lea ecx, [esp + 0x20]
call fcn.0040c450
mov esi, str.media
mov eax, 0x473498
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40fcc6
test cl, cl
je 0x40fcc0
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40fcc6
add eax, 2
add esi, 2
test cl, cl
jne 0x40fc9c
xor ebx, ebx
xor eax, eax
jmp 0x40fccd
sbb eax, eax
sbb eax, 0xffffffff
xor ebx, ebx
cmp eax, ebx
je 0x40fd08
mov esi, str.mini
mov eax, 0x473498
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40fcff
test cl, cl
je 0x40fcfb
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40fcff
add eax, 2
add esi, 2
test cl, cl
jne 0x40fcdb
xor eax, eax
jmp 0x40fd04
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x40fd1b
push 0x478924
push str.biz_stay_time
lea ecx, [esp + 0x20]
call fcn.0040c450
mov al, byte [ebp + 0x11c]
sub esp, 0x10
lea edi, [ebp + 0x11c]
mov esi, esp
mov dword [esp + 0x24], esp
push ebx
mov ecx, esi
mov dword [esp + 0x698], 1
mov byte [esi], 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 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]
mov ecx, esi
push edx
push ebx
push edi
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_]
sub esp, 0x10
lea eax, [ebp + 0x10c]
mov ecx, esp
mov dword [esp + 0x5c], esp
push eax
mov byte [esp + 0x6a8], 2
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__]
sub esp, 0x10
lea eax, [ebp + 0xfc]
mov ecx, esp
mov dword [esp + 0x70], esp
push eax
mov byte [esp + 0x6b8], 3
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, [esp + 0x48]
mov byte [esp + 0x6b4], 1
push eax
call fcn.00426710
mov eax, dword [ebp + 4]
add esp, 0x34
cmp eax, ebx
jne 0x40fdb6
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, [esp + 0x4c]
push 0xa
push ecx
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov esi, dword [sym.imp.MSVCRT.dll__itoa]
add esp, 4
push eax
call esi
add esp, 0xc
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x18]
push edx
push str.biz_id
call fcn.0040c450
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x4c]
push 0xa
push eax
push edi
call esi
add esp, 0xc
lea ecx, [esp + 0x4c]
push ecx
push str.biz_status
lea ecx, [esp + 0x20]
call fcn.0040c450
lea edx, [esp + 0x18]
push edx
call fcn.004104a0
add esp, 4
cmp edi, ebx
mov ecx, 0x4714dc
jne 0x40fe25
mov ecx, 0x4714e4
mov eax, dword [ebp + 0x90]
cmp eax, ebx
jne 0x40fe34
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 ecx
push eax
lea eax, [esp + 0x74]
push 0x473548
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov eax, dword [ebp + 0x198]
add esp, 0x10
cmp eax, ebx
jne 0x40fe58
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]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x684], 4
mov ecx, dword [eax]
cmp ecx, eax
mov dword [esp + 0x34], ecx
je 0x40fead
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
cmp eax, ebx
je 0x40fe8b
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp esi, ebx
je 0x40fe98
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x34]
call fcn.00417460
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x1c]
cmp ecx, eax
jne 0x40fe78
mov ecx, dword [eax]
push eax
push ecx
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x24]
call fcn.004167e0
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x44]
push eax
mov dword [esp + 0x688], 0xffffffff
mov ecx, dword [eax]
push ecx
push edx
lea ecx, [esp + 0x24]
call fcn.004167e0
mov eax, dword [esp + 0x1c]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x38]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
xor esi, esi
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::_Lockit::constructor_void_]
mov eax, dword [0x4789d8]
dec eax
mov dword [0x4789d8], eax
jne 0x40ff1a
mov esi, dword [0x4789dc]
mov dword [0x4789dc], ebx
lea ecx, [esp + 0x38]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::_Lockit::destructor_void_]
cmp esi, ebx
je 0x40ff31
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc ecx
jmp 0x40faa9
mov ecx, dword [esp + 0x67c]
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x678
ret