Function at 0x50b560
Capabilities:
Check os version
Contain obfuscated stackstrings
Create thread
Enumerate files on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x556073
mov eax, dword fs:[0]
push eax
sub esp, 0x548
mov eax, dword [0x5c403c]
xor eax, esp
mov dword [esp + 0x540], eax
push ebx
push esi
push edi
mov eax, dword [0x5c403c]
xor eax, esp
push eax
lea eax, [esp + 0x558]
mov dword fs:[0], eax
mov esi, dword [0x5c6f80]
mov ebx, dword [0x5c7008]
lea eax, [esp + 0x24]
push eax
push 0
mov edi, ecx
push str.Update_Disable
mov dword [esp + 0x10c], edi
mov dword [esp + 0x48], esi
mov dword [0x5c6f84], 0
call fcn.00514350
mov ebx, dword [0x5c7008]
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push str.Update_Last
call fcn.00514760
mov ebx, dword [sym.imp.MSVCR90.dll__time64]
push 0
call ebx
add esp, 4
sub eax, 0x5460
sbb edx, 0
cmp edx, dword [esp + 0x38]
jg 0x50b617
jl 0x50b610
cmp eax, dword [esp + 0x34]
jae 0x50b617
mov eax, 1
jmp 0x50b61b
mov eax, dword [esp + 0x24]
cmp dword [esi + 0x20], 0
jne 0x50cba6
cmp dword [esi + 0x1c], 0
jne 0x50cba6
test eax, eax
je 0x50b63b
test edi, edi
je 0x50cba6
push esi
call fcn.0050cd70
push 0
call ebx
mov ecx, dword [0x5c7008]
add esp, 4
push edx
push eax
push str.Update_Last
call fcn.00514e30
lea edx, [esp + 0xbc]
push edx
call fcn.0050cbd0
mov dword [esp + 0x560], 0
push 0x110
lea eax, [esp + 0x1ec]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x1e4]
push ecx
mov dword [esp + 0x1e8], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov edx, dword [esp + 0x1f0]
mov eax, dword [esp + 0x1ec]
mov ecx, dword [esp + 0x1e8]
push 0x561af0
push edx
mov edx, dword [0x5c71cc]
push eax
push ecx
push edx
lea eax, [esp + 0xd0]
push str.http:__service.k2t.eu_update_wtwMain.xml_accessHash_so_d._d._d
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x1c
push 0x561ae8
lea ecx, [esp + 0xd0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
mov edi, dword [esi + 0x14]
lea ecx, [esp + 0xbc]
mov dword [esp + 0xc4], 0xb0e71
mov dword [esp + 0xc8], 9
mov edx, dword [edi + 4]
push ecx
push edx
push edi
call fcn.0050d5d0
mov ecx, esi
mov ebx, eax
call fcn.0050d680
mov dword [edi + 4], ebx
mov eax, dword [ebx + 4]
mov dword [eax], ebx
mov eax, dword [0x5c6f48]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x18], 0
test eax, eax
jbe 0x50b878
mov ecx, dword [esp + 0x18]
call fcn.004deb80
mov dword [esp + 0x20], eax
test eax, eax
je 0x50b860
mov ecx, dword [eax + 0x6c]
add eax, 0x6c
cmp dword [ecx - 0xc], 4
jle 0x50b860
push eax
lea ecx, [esp + 0xc0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x98]
mov edi, dword [esi]
mov dword [esp + 0xc4], edx
mov eax, dword [eax + 0x9c]
mov dword [esp + 0xc8], eax
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x30], 0
mov ebx, dword [esi + 0x14]
mov eax, dword [esi]
mov dword [esp + 0x38], ecx
test edi, edi
je 0x50b7b3
cmp edi, eax
je 0x50b7b9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x38], ebx
je 0x50b81e
test edi, edi
jne 0x50b80e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x38]
cmp edx, dword [eax + 0x14]
jne 0x50b7da
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0xbc]
mov ebx, dword [esp + 0x38]
lea ecx, [ebx + 8]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x50b816
test edi, edi
jne 0x50b812
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x50b80a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [ebx]
jmp 0x50b7a2
mov eax, dword [edi]
jmp 0x50b7cb
mov eax, dword [edi]
jmp 0x50b7ff
mov dword [esp + 0x30], 1
mov edx, dword [esp + 0x20]
add edx, 0x4c
push edx
lea ecx, [esp + 0xd0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
cmp dword [esp + 0x30], 0
jne 0x50b860
mov edi, dword [esi + 0x14]
mov ecx, dword [edi + 4]
lea eax, [esp + 0xbc]
push eax
push ecx
push edi
call fcn.0050d5d0
mov ecx, esi
mov ebx, eax
call fcn.0050d680
mov dword [edi + 4], ebx
mov eax, dword [ebx + 4]
mov dword [eax], ebx
mov eax, dword [esp + 0x18]
mov edx, dword [0x5c6f48]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [edx + 0x28]
jb 0x50b742
mov eax, dword [0x5c6edc]
push str.SELECT__FROM_addon_index_ORDER_BY_name_ASC_
add eax, 4
push eax
lea ecx, [esp + 0x190]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::db::CCommand::constructor_class_wtw::db::CConnection___wchar_t_const__]
mov byte [esp + 0x560], 1
lea ecx, [esp + 0xdc]
push ecx
lea ecx, [esp + 0x18c]
call dword [sym.imp.libWTW.module_public:_class_wtw::db::CReader___thiscall_wtw::db::CCommand::executeReader_void_]
mov byte [esp + 0x560], 2
lea ecx, [esp + 0xdc]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CReader::read_void_]
test eax, eax
jne 0x50c18d
mov edi, dword [sym.imp.libWTW.module_public_virtual:_void___thiscall_wtw::CString::destructor_void_]
lea ecx, [esp + 0x14]
call dword [0x55a6c4]
mov byte [esp + 0x560], 3
lea ecx, [esp + 0x1c]
call dword [0x55a6c4]
mov byte [esp + 0x560], 4
lea ecx, [esp + 0x18]
call dword [0x55a6c4]
mov byte [esp + 0x560], 5
lea ecx, [esp + 0x128]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_void_]
mov bl, 6
mov byte [esp + 0x560], bl
push 0x55ae9c
lea ecx, [esp + 0x16c]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_wchar_t_const__]
mov byte [esp + 0x560], 7
lea edx, [esp + 0x168]
push edx
lea eax, [esp + 0x12c]
push eax
push str.name
lea ecx, [esp + 0xe8]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CReader::getResult_wchar_t_const___class_wtw::CString___class_wtw::CString_const__]
mov byte [esp + 0x560], bl
lea ecx, [esp + 0x168]
call edi
lea ecx, [esp + 0x128]
call dword [sym.imp.libWTW.module_public:_wchar_t_const____thiscall_wtw::CString::operator_wchar_t_const__void_const]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
mov byte [esp + 0x560], 5
lea ecx, [esp + 0x128]
call edi
lea ecx, [esp + 0x108]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_void_]
mov bl, 8
mov byte [esp + 0x560], bl
push 0x55ae9c
lea ecx, [esp + 0x14c]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_wchar_t_const__]
mov byte [esp + 0x560], 9
lea ecx, [esp + 0x148]
push ecx
lea edx, [esp + 0x10c]
push edx
push str.updateUrl
lea ecx, [esp + 0xe8]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CReader::getResult_wchar_t_const___class_wtw::CString___class_wtw::CString_const__]
mov byte [esp + 0x560], bl
lea ecx, [esp + 0x148]
call edi
mov ebx, dword [sym.imp.libWTW.module_public:_wchar_t_const____thiscall_wtw::CString::operator_wchar_t_const__void_const]
lea ecx, [esp + 0x108]
call ebx
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
mov byte [esp + 0x560], 5
lea ecx, [esp + 0x108]
call edi
lea ecx, [esp + 0x118]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_void_]
mov byte [esp + 0x560], 0xa
push 0x55ae9c
lea ecx, [esp + 0x17c]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_wchar_t_const__]
mov byte [esp + 0x560], 0xb
lea eax, [esp + 0x178]
push eax
lea ecx, [esp + 0x11c]
push ecx
push str.version
lea ecx, [esp + 0xe8]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CReader::getResult_wchar_t_const___class_wtw::CString___class_wtw::CString_const__]
mov byte [esp + 0x560], 0xa
lea ecx, [esp + 0x178]
call edi
lea ecx, [esp + 0x118]
call ebx
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
mov byte [esp + 0x560], 5
lea ecx, [esp + 0x118]
call edi
mov edx, dword [esp + 0x1c]
cmp dword [edx - 0xc], 0xa
jge 0x50baed
mov byte [esp + 0x560], 4
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 3
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 2
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x50c178
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ebx, dword [esi]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [esi]
mov dword [esp + 0xf4], ecx
test ebx, ebx
je 0x50bb0c
cmp ebx, eax
je 0x50bb12
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0xf4]
cmp dword [esp + 0x38], edx
je 0x50bb82
test ebx, ebx
jne 0x50bb7a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax + 0x14]
jne 0x50bb3a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
add ecx, 8
push edx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x50bab2
test ebx, ebx
jne 0x50bb7e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax + 0x14]
jne 0x50bb6f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
jmp 0x50baf4
mov eax, dword [ebx]
jmp 0x50bb2b
mov eax, dword [ebx]
jmp 0x50bb60
lea ecx, [esp + 0x6c]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0xc
lea ecx, [esp + 0x7c]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x70]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push 0
push 0x588eb0
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov edi, eax
lea eax, [edi + 1]
push eax
push 0x588eb0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov ebx, eax
lea eax, [ebx + 1]
push eax
push 0x588eb0
lea ecx, [esp + 0x1c]
mov dword [esp + 0xbc], ebx
mov dword [esp + 0x68], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov dword [esp + 0xb8], eax
cmp edi, 0xffffffff
je 0x50c070
cmp ebx, 0xffffffff
je 0x50c070
cmp eax, 0xffffffff
je 0x50c070
push edi
push 0
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid_1]
mov byte [esp + 0x560], 0x14
mov eax, dword [eax]
mov esi, dword [sym.imp.MSVCR90.dll_wcstoul]
push 0xa
push 0
push eax
call esi
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x90], 0
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x2c]
sub eax, edi
dec eax
push eax
push ecx
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid_1]
mov byte [esp + 0x560], 0x15
mov eax, dword [eax]
push 0xa
push 0
push eax
call esi
add esp, 0xc
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov edi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x60]
mov eax, edi
sub eax, dword [esp + 0xb4]
lea edx, [esp + 0x64]
dec eax
push eax
push ecx
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid_1]
mov byte [esp + 0x560], 0x16
mov eax, dword [eax]
push 0xa
push 0
push eax
call esi
add esp, 0xc
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x64]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
inc edi
push edi
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid]
mov byte [esp + 0x560], 0x17
mov eax, dword [eax]
push 0xa
push 0
push eax
call esi
add esp, 0xc
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], 0
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x68]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x90]
movzx ecx, word [esp + 0x94]
shld eax, ebx, 0x10
xor edx, edx
or edx, eax
movzx eax, word [esp + 0x9c]
shl ebx, 0x10
or ecx, ebx
shld edx, ecx, 0x10
shl ecx, 0x10
or ecx, eax
xor esi, esi
or edx, esi
mov eax, ecx
mov ecx, edx
movzx edx, word [esp + 0xa4]
shld ecx, eax, 0x10
shl eax, 0x10
or eax, edx
or ecx, esi
mov edx, eax
or edx, ecx
jne 0x50beae
cmp dword [0x5c7004], esi
je 0x50be5d
push 0x55ae9c
lea ecx, [esp + 0x58]
call dword [0x55a504]
mov byte [esp + 0x560], 0x18
push str._tERROR__Invalid_version_info__IVE__
lea ecx, [esp + 0x50]
call dword [0x55a504]
mov byte [esp + 0x560], 0x19
push str.AUPD
lea ecx, [esp + 0x48]
call dword [0x55a504]
mov byte [esp + 0x560], 0x1a
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esi + 5]
mov esi, dword [0x5c7004]
lea ebx, [esp + 0x54]
call fcn.00433ab0
mov byte [esp + 0x560], 0x19
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x18
mov ecx, ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 5
lea edx, [esp + 0x6c]
push edx
call fcn.0050cc30
mov byte [esp + 0x560], 4
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 3
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 2
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov esi, dword [esp + 0x3c]
jmp 0x50c172
mov dword [esp + 0x74], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x78], ecx
push eax
lea ecx, [esp + 0x80]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov edi, dword [esp + 0x3c]
mov esi, dword [edi + 0x14]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x6c]
push ecx
push edx
push esi
call fcn.0050d5d0
mov ecx, edi
mov ebx, eax
call fcn.0050d680
mov dword [esi + 4], ebx
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x30]
mov dword [eax], ebx
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x1b
lea ecx, [esp + 0x20]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x1c
lea ecx, [esp + 0x138]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_void_]
mov bl, 0x1d
mov byte [esp + 0x560], bl
push 0x55ae9c
lea ecx, [esp + 0x15c]
call dword [sym.imp.libWTW.module_public:_void___thiscall_wtw::CString::constructor_wchar_t_const__]
mov byte [esp + 0x560], 0x1e
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x13c]
push ecx
push str.class
lea ecx, [esp + 0xe8]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CReader::getResult_wchar_t_const___class_wtw::CString___class_wtw::CString_const__]
mov byte [esp + 0x560], bl
mov esi, dword [sym.imp.libWTW.module_public_virtual:_void___thiscall_wtw::CString::destructor_void_]
lea ecx, [esp + 0x158]
call esi
lea ecx, [esp + 0x138]
call dword [sym.imp.libWTW.module_public:_wchar_t_const____thiscall_wtw::CString::operator_wchar_t_const__void_const]
push eax
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
mov byte [esp + 0x560], 0x1c
lea ecx, [esp + 0x138]
call esi
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x38]
push str.Addon_update_URI_for:__s___s__added
push ecx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
cmp dword [0x5c7004], 0
je 0x50c03a
push 0x55ae9c
lea ecx, [esp + 0x4c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x1f
push str.AUPD
lea ecx, [esp + 0x60]
call dword [0x55a504]
mov byte [esp + 0x560], 0x20
mov esi, dword [0x5c7004]
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x60]
push eax
mov ecx, 5
lea ebx, [esp + 0x38]
call fcn.00433ab0
mov byte [esp + 0x560], 0x1f
lea ecx, [esp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x1c
lea ecx, [esp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x1b
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 5
lea ecx, [esp + 0x6c]
push ecx
jmp 0x50be6a
cmp dword [0x5c7004], 0
je 0x50c118
push 0x55ae9c
lea ecx, [esp + 0x44]
call dword [0x55a504]
mov byte [esp + 0x560], 0xf
push str._tERROR__Invalid_version_info__IVE__
lea ecx, [esp + 0x5c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x10
push str.AUPD
lea ecx, [esp + 0x54]
call dword [0x55a504]
mov byte [esp + 0x560], 0x11
mov esi, dword [0x5c7004]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x54]
push eax
mov ecx, 5
lea ebx, [esp + 0x60]
call fcn.00433ab0
mov byte [esp + 0x560], 0x10
lea ecx, [esp + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0xf
mov ecx, ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0xe
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov esi, dword [esp + 0x3c]
mov byte [esp + 0x560], 0x12
lea ecx, [esp + 0x7c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 5
lea ecx, [esp + 0x6c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 4
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 3
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 2
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov edi, dword [sym.imp.libWTW.module_public_virtual:_void___thiscall_wtw::CString::destructor_void_]
lea ecx, [esp + 0xdc]
call dword [sym.imp.libWTW.module_public:_long_int___thiscall_wtw::db::CReader::read_void_]
test eax, eax
je 0x50b8d3
mov byte [esp + 0x560], 1
lea ecx, [esp + 0xdc]
call dword [sym.imp.libWTW.module_public_virtual:_void___thiscall_wtw::db::CReader::destructor_void_]
mov byte [esp + 0x560], 0
lea ecx, [esp + 0x188]
call dword [sym.imp.libWTW.module_public_virtual:_void___thiscall_wtw::db::CCommand::destructor_void_]
push 0x24c
lea ecx, [esp + 0x304]
push 0
push ecx
mov dword [esp + 0x308], 0
call sub.MSVCR90.dll_memset
mov eax, dword [0x5c7000]
add esp, 0xc
add eax, 0x10
push eax
lea edx, [esp + 0x100]
push edx
mov edi, str.ComponentsupdateInfo.eui.xml
call fcn.0040f2b0
add esp, 8
mov byte [esp + 0x560], 0x21
mov eax, dword [eax]
lea ecx, [esp + 0x2fc]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, eax
mov dword [esp + 0x24], esi
mov byte [esp + 0x560], 0
lea ecx, [esp + 0xfc]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
cmp esi, 0xffffffff
je 0x50c9ee
jmp 0x50c240
cmp dword [esp + 0x31c], 0
je 0x50c9c8
lea ecx, [esp + 0x20]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x22
mov eax, dword [0x5c7000]
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x328]
push edx
push ecx
lea edx, [esp + 0x28]
push str._sComponentsupdateInfo_s
push edx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
lea ecx, [esp + 0x19c]
call dword [sym.imp.libUtils.module_public:_void___thiscall_xmlElement::constructor_void_]
mov byte [esp + 0x560], 0x23
push 0
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1a4]
push ecx
call dword [sym.imp.libUtils.module_lutXMLStandardParseF]
add esp, 0xc
cmp byte [esp + 0x1dc], 0
je 0x50c9a1
push str.package
lea ecx, [esp + 0x44]
call dword [0x55a504]
mov byte [esp + 0x560], 0x24
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x1a0]
call dword [sym.imp.libUtils.module_public:_class_xmlElement____thiscall_xmlElement::GetChildPtr_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const__]
mov esi, eax
mov byte [esp + 0x560], 0x23
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
test esi, esi
je 0x50c9a1
lea ecx, [esp + 0x14]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x25
lea ecx, [esp + 0x1c]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x26
lea ecx, [esp + 0x18]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x27
push 0x55ae9c
lea ecx, [esp + 0x54]
call dword [0x55a504]
mov bl, 0x28
mov byte [esp + 0x560], bl
push str.class
lea ecx, [esp + 0x5c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x29
mov edi, dword [sym.imp.libUtils.module_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const____thiscall_xmlElement::GetAttribute_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const___class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t____const__]
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov ecx, esi
call edi
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x560], bl
lea ecx, [esp + 0x58]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x27
lea ecx, [esp + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0x55ae9c
lea ecx, [esp + 0x60]
call dword [0x55a504]
mov bl, 0x2a
mov byte [esp + 0x560], bl
push str.updateUri
lea ecx, [esp + 0x4c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x2b
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x4c]
push eax
mov ecx, esi
call edi
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x560], bl
lea ecx, [esp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x27
lea ecx, [esp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0x55ae9c
lea ecx, [esp + 0x50]
call dword [0x55a504]
mov bl, 0x2c
mov byte [esp + 0x560], bl
push str.version
lea ecx, [esp + 0x58]
call dword [0x55a504]
mov byte [esp + 0x560], 0x2d
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x58]
push edx
mov ecx, esi
call edi
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x560], bl
lea ecx, [esp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x27
lea ecx, [esp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x6c]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x2e
lea ecx, [esp + 0x7c]
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x30
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x70]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
push 0
push 0x588eb0
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov edi, eax
lea eax, [edi + 1]
push eax
push 0x588eb0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x100], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov esi, eax
lea eax, [esi + 1]
push eax
push 0x588eb0
lea ecx, [esp + 0x1c]
mov dword [esp + 0xf4], eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Find]
mov dword [esp + 0xb8], eax
cmp edi, 0xffffffff
je 0x50c8a3
cmp esi, 0xffffffff
je 0x50c8a3
cmp eax, 0xffffffff
je 0x50c8a3
push edi
push 0
lea ecx, [esp + 0xe0]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid_1]
mov byte [esp + 0x560], 0x36
mov eax, dword [eax]
push 0xa
push 0
push eax
call dword [sym.imp.MSVCR90.dll_wcstoul]
add esp, 0xc
mov ebx, eax
mov dword [esp + 0x90], 0
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0xd8]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0xf8]
mov edx, esi
sub edx, edi
dec edx
push edx
push eax
lea ecx, [esp + 0x10c]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid_1]
mov byte [esp + 0x560], 0x37
mov eax, dword [eax]
mov edi, dword [sym.imp.MSVCR90.dll_wcstoul]
push 0xa
push 0
push eax
call edi
add esp, 0xc
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0x104]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xec]
sub edx, esi
dec edx
push edx
push eax
lea ecx, [esp + 0xf8]
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid_1]
mov byte [esp + 0x560], 0x38
mov eax, dword [eax]
push 0xa
xor esi, esi
push esi
push eax
call edi
add esp, 0xc
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], esi
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0xf0]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov edx, dword [esp + 0xb8]
inc edx
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Mid]
mov byte [esp + 0x560], 0x39
mov eax, dword [eax]
push 0xa
push esi
push eax
call edi
add esp, 0xc
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], esi
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x90]
movzx ecx, word [esp + 0x94]
shld eax, ebx, 0x10
xor edx, edx
or edx, eax
movzx eax, word [esp + 0x9c]
shl ebx, 0x10
or ecx, ebx
shld edx, ecx, 0x10
shl ecx, 0x10
or ecx, eax
or edx, esi
mov eax, ecx
mov ecx, edx
movzx edx, word [esp + 0xa4]
shld ecx, eax, 0x10
shl eax, 0x10
or eax, edx
or ecx, esi
mov edx, eax
or edx, ecx
jne 0x50c78e
cmp dword [0x5c7004], edx
je 0x50c777
push 0x55ae9c
lea ecx, [esp + 0x8c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x3a
push str._tERROR__Invalid_version_info__IVE__
lea ecx, [esp + 0x88]
call dword [0x55a504]
mov byte [esp + 0x560], 0x3b
push str.AUPD
lea ecx, [esp + 0x48]
call dword [0x55a504]
mov byte [esp + 0x560], 0x3c
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esi + 5]
mov esi, dword [0x5c7004]
lea ebx, [esp + 0x8c]
call fcn.00433ab0
mov byte [esp + 0x560], 0x3b
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x3a
mov ecx, ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0x88]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x27
lea edx, [esp + 0x6c]
push edx
call fcn.0050cc30
jmp 0x50c96b
mov dword [esp + 0x74], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x78], ecx
push eax
lea ecx, [esp + 0x80]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov ebx, dword [esp + 0x3c]
mov esi, dword [ebx + 0x14]
mov edx, dword [esi + 4]
lea ecx, [esp + 0x6c]
push ecx
push edx
push esi
call fcn.0050d5d0
mov ecx, ebx
mov edi, eax
call fcn.0050d680
mov dword [esi + 4], edi
mov eax, dword [edi + 4]
lea ecx, [esp + 0x30]
mov dword [eax], edi
call dword [0x55a6c4]
mov byte [esp + 0x560], 0x3d
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x328]
push eax
push ecx
lea edx, [esp + 0x38]
push str.External_update_URI_for_class:__s___s__added
push edx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
cmp dword [0x5c7004], 0
je 0x50c87a
push 0x55ae9c
lea ecx, [esp + 0x68]
call dword [0x55a504]
mov byte [esp + 0x560], 0x3e
push str.AUPD
lea ecx, [esp + 0x6c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x3f
mov esi, dword [0x5c7004]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, 5
lea ebx, [esp + 0x38]
call fcn.00433ab0
mov byte [esp + 0x560], 0x3e
lea ecx, [esp + 0x68]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x3d
lea ecx, [esp + 0x64]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x27
lea edx, [esp + 0x6c]
push edx
call fcn.0050cc30
jmp 0x50c96b
cmp dword [0x5c7004], 0
je 0x50c947
push 0x55ae9c
lea ecx, [esp + 0x30]
call dword [0x55a504]
mov byte [esp + 0x560], 0x31
push str._tERROR__Invalid_version_info__IVE__
lea ecx, [esp + 0x2c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x32
push str.AUPD
lea ecx, [esp + 0x64]
call dword [0x55a504]
mov byte [esp + 0x560], 0x33
mov esi, dword [0x5c7004]
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, 5
lea ebx, [esp + 0x30]
call fcn.00433ab0
mov byte [esp + 0x560], 0x32
lea ecx, [esp + 0x60]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x31
mov ecx, ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x30
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x34
lea ecx, [esp + 0x7c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x27
lea ecx, [esp + 0x6c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x26
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x25
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x23
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x22
lea ecx, [esp + 0x19c]
call dword [sym.imp.libUtils.module_public_virtual:_void___thiscall_xmlElement::destructor_void_]
mov byte [esp + 0x560], 0
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x2fc]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x50c240
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [esp + 0x3c]
cmp dword [edx + 0x18], 0
je 0x50cad2
cmp dword [0x5c7004], 0
je 0x50caa0
push 0x55ae9c
lea ecx, [esp + 0x2c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x40
push str.Initializing_auto_update_procedure
lea ecx, [esp + 0x30]
call dword [0x55a504]
mov byte [esp + 0x560], 0x41
push str.AUPD
lea ecx, [esp + 0x28]
call dword [0x55a504]
mov byte [esp + 0x560], 0x42
mov esi, dword [0x5c7004]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x28]
push ecx
mov ecx, 5
lea ebx, [esp + 0x34]
call fcn.00433ab0
mov byte [esp + 0x560], 0x41
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x40
mov ecx, ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x100]
lea edx, [esp + 0x34]
push edx
push 0
push eax
push 0x508820
push 0
push 0
mov dword [esp + 0x4c], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x20], eax
jmp 0x50cb76
cmp dword [0x5c7004], 0
je 0x50cb76
push 0x55ae9c
lea ecx, [esp + 0x2c]
call dword [0x55a504]
mov byte [esp + 0x560], 0x43
push str.Nothing_to_update__Oh_well.
lea ecx, [esp + 0x30]
call dword [0x55a504]
mov byte [esp + 0x560], 0x44
push str.AUPD
lea ecx, [esp + 0x28]
call dword [0x55a504]
mov byte [esp + 0x560], 0x45
mov esi, dword [0x5c7004]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x28]
push eax
mov ecx, 5
lea ebx, [esp + 0x34]
call fcn.00433ab0
mov byte [esp + 0x560], 0x44
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0x43
mov ecx, ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x560], 0
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov dword [esp + 0x560], 0x46
lea ecx, [esp + 0xcc]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov dword [esp + 0x560], 0xffffffff
lea ecx, [esp + 0xbc]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [esp + 0x558]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x540]
xor ecx, esp
call fcn.00532776
mov esp, ebp
pop ebp
ret