Function at 0x10006de4
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x1000e884
call fcn.1000e630
sub esp, 0x1a8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edi, dword [ebp + 0xc]
xor esi, esi
cmp dword [edi + 8], esi
jne 0x10006e0c
or eax, 0xffffffff
jmp 0x10007189
mov ebx, dword [ebp + 8]
lea eax, [ebx + 0x10]
push eax
push ebx
call fcn.100085e9
pop ecx
pop ecx
test al, al
jne 0x10006e46
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x10006e2b
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
push str._p2pupdate__Check_Zip_MD5_failed.___s_n
push 0x2718
call fcn.10001a38
add esp, 0xc
push 0xfffffffffffffffe
pop eax
jmp 0x10007189
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 4], esi
mov dword [ebp - 0x18], esi
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x10006e5f
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 fcn.1000af20
pop ecx
mov dword [ebp - 0x18], eax
cmp eax, esi
jne 0x10006e98
mov eax, dword [ebx + 4]
cmp eax, esi
jne 0x10006e79
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
push str._p2pupdate__open_zip_file_failed.___s_n
push 0x2718
call fcn.10001a38
add esp, 0xc
mov dword [ebp - 0x14], 0xfffffffc
jmp 0x100070b9
mov esi, dword [ebx + 0x28]
mov dword [ebp - 0x1c], esi
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x1a0], eax
cmp esi, eax
je 0x10007087
mov dword [ebp - 0x18c], esi
mov al, byte [edi]
mov byte [ebp - 0x188], al
push 0
lea ecx, [ebp - 0x188]
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]
push dword [eax]
push 0
push edi
lea ecx, [ebp - 0x188]
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_]
lea ecx, [ebp - 0x188]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x180]
add ecx, eax
neg eax
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x1a8], eax
mov dword [ebp - 0x194], eax
cmp byte [eax - 1], 0x5c
je 0x10006f39
mov edi, 0x10014480
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x188]
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 dword [ebp - 0x1ac], eax
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [eax]
push 0
push esi
lea ecx, [ebp - 0x188]
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 dword [ebp - 0x1b0], eax
mov eax, dword [esi + 4]
test eax, eax
jne 0x10006f61
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 2
push eax
push dword [ebp - 0x18]
call fcn.1000b6b1
add esp, 0xc
test eax, eax
je 0x10006f9e
mov eax, dword [esi + 4]
test eax, eax
jne 0x10006f7f
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
push str._p2pupdate__locate_file_failed.___s_n
push 0x2718
call fcn.10001a38
add esp, 0xc
mov dword [ebp - 0x14], 0xfffffffb
jmp 0x10007079
and dword [ebp - 0x178], 0
push 0x13
pop ecx
xor eax, eax
lea edi, [ebp - 0x174]
rep stosd dword es:[edi], eax
and byte [ebp - 0x120], al
push 0x40
pop ecx
lea edi, [ebp - 0x11f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor edi, edi
push edi
push edi
push edi
push edi
push 0x104
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x178]
push eax
push dword [ebp - 0x18]
call fcn.1000b2c8
add esp, 0x20
test eax, eax
je 0x10007016
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x10006ffa
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
push str._p2pupdate__get_file_info_failed.___s_n
push 0x2718
call fcn.10001a38
add esp, 0xc
mov dword [ebp - 0x14], 0xfffffffa
jmp 0x10007079
push dword [ebp - 0x18]
call fcn.1000b742
pop ecx
test eax, eax
je 0x1000704b
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x1000702f
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
push str._p2pupdate__open_file_failed.___s_n
push 0x2718
call fcn.10001a38
add esp, 0xc
mov dword [ebp - 0x14], 0xfffffff9
jmp 0x10007079
push dword [ebp - 0x15c]
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov edi, eax
mov dword [ebp - 0x198], edi
mov dword [ebp - 0x128], edi
test edi, edi
jne 0x100070d3
push dword [ebp - 0x18]
call fcn.1000bbf6
pop ecx
mov dword [ebp - 0x14], 0xfffffff8
push 1
lea ecx, [ebp - 0x188]
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 [ebx + 0x2c]
mov dword [ebp - 0x1b4], eax
cmp esi, eax
jne 0x100070b7
mov eax, dword [ebx + 4]
test eax, eax
jne 0x100070a0
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
push str._p2pupdate__unzip_file_success.___s_n
push 0x7538
call fcn.10001a38
add esp, 0xc
and dword [ebp - 0x14], 0
xor esi, esi
cmp dword [ebp - 0x18], esi
je 0x10007182
push dword [ebp - 0x18]
call fcn.1000b27c
pop ecx
mov dword [ebp - 0x18], esi
jmp 0x10007182
push dword [ebp - 0x15c]
push 0
push edi
call sub.MSVCRT.dll_memset
push dword [ebp - 0x15c]
push edi
push dword [ebp - 0x18]
call fcn.1000b9df
add esp, 0x18
mov dword [ebp - 0x124], eax
test eax, eax
jle 0x10007143
mov eax, dword [ebp - 0x184]
test eax, eax
jne 0x1000710c
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 0x10014a74
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
pop ecx
pop ecx
mov ebx, eax
mov dword [ebp - 0x190], ebx
test ebx, ebx
je 0x10007140
push ebx
push dword [ebp - 0x124]
push 1
push edi
call dword [sym.imp.MSVCRT.dll_fwrite]
push ebx
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
mov ebx, dword [ebp + 8]
push dword [ebp - 0x18]
call fcn.1000bbf6
mov dword [ebp - 0x19c], edi
push edi
call fcn.1000e3bc
pop ecx
pop ecx
push 1
lea ecx, [ebp - 0x188]
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 esi, 0x28
mov dword [ebp - 0x1c], esi
mov edi, dword [ebp + 0xc]
jmp 0x10006e9e
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret