Function at 0x1002fb90
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x10043b29
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x1005e3c8]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1005e3c8]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov esi, dword [esp + 0x48]
push str.ExtractFileThread_Start_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call dword [sym.imp.xwmfUI.dll_public:_static_class_XFClientUI____cdecl_XFClientUI::getInstance_void_]
mov ebx, eax
push 0
push 0
mov dword [esp + 0x1c], ebx
call dword [sym.imp.XecureMacuxCSM.dll_public:_static_class_XWClientSM____cdecl_XWClientSM::getInstance_char_const___unsigned_long_int_]
add esp, 8
lea ecx, [esp + 0x18]
mov edi, eax
xor ebp, ebp
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov eax, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
mov dword [eax], 0xffffffff
test dword [esi + 0xc], 0x80000
mov dword [esp + 0x40], ebp
jne 0x1002fc19
push ebp
mov ecx, ebx
call dword [sym.imp.xwmfUI.dll_public:_void___thiscall_XFClientUI::setProgressIndex_int_]
mov ecx, dword [esi + 8]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MSVCP80.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__::operator_char_const__]
mov ecx, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
push str..tmp
push str._xwmftmp
call sym.NativeMng.dll_public:_char____thiscall_NativeFCMSWrapper::getTempFileName_char___char__
push eax
lea ecx, [esp + 0x1c]
call dword [0x1004612c]
mov eax, dword [esp + 0x1c]
mov ebx, 0x10
cmp dword [esp + 0x30], ebx
jae 0x1002fc5a
lea eax, [esp + 0x1c]
mov edx, dword [esi + 0xc]
mov ecx, dword [esi]
and edx, 0x80000
neg edx
sbb edx, edx
not edx
and edx, sym.NativeMng.dll_protected:_static_int___cdecl_NativeFCMSWrapper::ProgressCallback_void___char_const___long_long___int64___long_long___int64___int_
push edx
push eax
mov eax, dword [esi + 4]
push eax
push ecx
mov ecx, edi
call dword [sym.imp.XecureMacuxCSM.dll_public:_int___thiscall_XWClientSM::extractFile_unsigned_long_int__char_const___char_const___int____cdecl___void___char_const___long_long___int64___long_long___int64___int__]
test eax, eax
jne 0x1002fce7
test dword [esi + 0xc], 0x80000
jne 0x1002fc99
mov ecx, dword [esp + 0x14]
push 2
call dword [sym.imp.xwmfUI.dll_public:_int___thiscall_XFClientUI::setProgressStatus_unsigned_long_int_]
mov edx, dword [esi + 8]
mov ecx, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
push edx
push 0xfde9
xor edi, edi
call sym.NativeMng.dll_public:_int___thiscall_NativeFCMSWrapper::XMF_File_Delete_unsigned_int__char_const__
cmp dword [esp + 0x30], ebx
mov eax, dword [esp + 0x1c]
jae 0x1002fcbd
lea eax, [esp + 0x1c]
mov ecx, dword [esi + 8]
push ecx
mov ecx, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
push eax
push 0xfde9
call sym.NativeMng.dll_public:_int___thiscall_NativeFCMSWrapper::XMF_File_Rename_unsigned_int__char_const___char_const__
mov edx, dword [esi + 8]
mov ecx, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
push edx
add ecx, 4
call dword [sym.imp.MSVCP80.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__::operator_char_const__]
jmp 0x1002fd2d
cmp eax, 0xffffffff
jne 0x1002fcf1
lea edi, [eax + 2]
jmp 0x1002fd0e
test dword [esi + 0xc], 0x80000
jne 0x1002fd06
mov ecx, dword [esp + 0x14]
push 3
call dword [sym.imp.xwmfUI.dll_public:_int___thiscall_XFClientUI::setProgressStatus_unsigned_long_int_]
mov edi, 2
lea ebp, [edi - 1]
cmp dword [esp + 0x30], ebx
mov eax, dword [esp + 0x1c]
jae 0x1002fd1c
lea eax, [esp + 0x1c]
mov ecx, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
push eax
push 0xfde9
call sym.NativeMng.dll_public:_int___thiscall_NativeFCMSWrapper::XMF_File_Delete_unsigned_int__char_const__
mov eax, dword [sym.NativeMng.dll_class_NativeFCMSWrapper__NativeFCMSWrapper::mNativeFCMSWrapper]
mov dword [eax], edi
mov esi, dword [esi + 0xc]
test esi, 0x200000
jne 0x1002fd4b
test ebp, ebp
jne 0x1002fd5d
test esi, 0x100000
je 0x1002fd5d
test esi, 0x80000
jne 0x1002fd5d
mov ecx, dword [esp + 0x14]
call dword [sym.imp.xwmfUI.dll_public:_void___thiscall_XFClientUI::endProgress_void_]
call dword [sym.imp.XecureMacuxCSM.dll_public:_static_void___cdecl_XWClientSM::removeInstance_void_]
push str.ExtractFileThread_End_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor eax, eax
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.10041218
add esp, 0x30
ret 4