Function at 0x40d520
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bd997
mov eax, dword fs:[0]
push eax
sub esp, 0x184
mov eax, dword [0x5116c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x16c], ebx
push str.Vcheck
lea ecx, [ebp - 0x188]
mov dword [ebp - 0x160], 0
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__3]
lea eax, [ebp - 0x18c]
mov dword [ebp - 4], 0
push 1
push eax
call fcn.00409c90
add esp, 8
mov esi, eax
mov ecx, esi
mov byte [ebp - 4], 2
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x154]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x188]
mov edi, 0x20
mov ecx, dword [esi]
mov dword [ebp - 0x160], edi
push dword [eax - 0xc]
push eax
push dword [ecx - 0xc]
lea eax, [ebp - 0x154]
push ecx
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
add esp, 0x14
lea ecx, [ebp - 0x18c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x188]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push dword [ebx + 0xd0]
push str.VerCheckDays
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
push dword [ebx + 0xc8]
mov dword [ebx + 0xd0], eax
push str.lvAsked
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
push dword [ebx + 0xbc]
mov dword [ebx + 0xc8], eax
push str.lvMajor
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
push dword [ebx + 0xc0]
mov dword [ebx + 0xbc], eax
push str.lvMinor
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
add esp, 0x40
mov dword [ebx + 0xc0], eax
push dword [ebx + 0xc4]
push str.lvFix
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
mov dword [ebx + 0xc4], eax
push dword [0x5206f8]
push str.Ltch
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
push dword [0x520700]
mov dword [0x5206f8], eax
push str.Lvch
push dword [ebp - 0x154]
mov dword [0x5206fc], 0
push 0x80000001
call fcn.0040a540
push str.AdEngine
push dword [ebp - 0x154]
mov dword [0x520700], eax
lea eax, [ebp - 0x164]
push 0x80000001
push eax
mov dword [0x520704], 0
call fcn.0040a5b0
add esp, 0x40
push eax
lea ecx, [ebx + 0xe4]
mov byte [ebp - 4], 5
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push str.self
lea ecx, [ebx + 0xe4]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__25]
test eax, eax
jne 0x40db09
push eax
push str.LastAN
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a540
mov esi, dword [ebp - 0x16c]
add esp, 0x10
mov dword [ebx + 0xe8], eax
xor ebx, ebx
add esi, 0xf4
nop dword [eax]
lea ecx, [ebp - 0x158]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov byte [ebp - 4], 6
test ebx, ebx
je 0x40d79a
push ebx
lea eax, [ebp - 0x158]
push 0x4d4de4
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__10]
add esp, 0xc
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 7
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x170]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x158]
or edi, 1
mov dword [ebp - 0x160], edi
push dword [eax - 0xc]
push eax
push 4
lea eax, [ebp - 0x170]
push str.AUrl
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
push dword [ebp - 0x170]
lea eax, [ebp - 0x190]
push dword [ebp - 0x154]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x24
push eax
mov ecx, esi
mov byte [ebp - 4], 8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x190]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
and edi, 0xfffffffe
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x160], edi
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov eax, dword [esi]
cmp dword [eax - 0xc], 7
jl 0x40da9a
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 9
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x174]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x158]
or edi, 2
mov dword [ebp - 0x160], edi
push dword [eax - 0xc]
push eax
push 4
lea eax, [ebp - 0x174]
push str.AImg
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
push dword [ebp - 0x174]
lea eax, [ebp - 0x184]
push dword [ebp - 0x154]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x24
push eax
lea ecx, [esi + 4]
mov byte [ebp - 4], 0xa
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x184]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x174]
and edi, 0xfffffffd
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0xb
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x178]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x158]
or edi, 4
mov dword [ebp - 0x160], edi
push dword [eax - 0xc]
push eax
push 4
lea eax, [ebp - 0x178]
push str.ATxt
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
push dword [ebp - 0x178]
lea eax, [ebp - 0x15c]
push dword [ebp - 0x154]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x24
push eax
lea ecx, [esi - 4]
mov byte [ebp - 4], 0xc
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x15c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x178]
and edi, 0xfffffffb
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0xd
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x17c]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x158]
or edi, 8
mov dword [ebp - 0x160], edi
push dword [eax - 0xc]
push eax
push 4
lea eax, [ebp - 0x17c]
push str.AExp
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
push dword [ebp - 0x17c]
lea eax, [ebp - 0x164]
push dword [ebp - 0x154]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x24
and edi, 0xfffffff7
lea ecx, [ebp - 0x17c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov eax, dword [ebp - 0x164]
cmp dword [eax - 0xc], 4
jle 0x40d9e5
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi64]
add esp, 4
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x14]
test eax, eax
je 0x40d9f6
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x10
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x180]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x158]
or edi, 0x10
mov dword [ebp - 0x160], edi
push dword [eax - 0xc]
push eax
push 4
lea eax, [ebp - 0x180]
push str.Agif
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
lea eax, [esi + 0x18]
push eax
push dword [ebp - 0x180]
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a4b0
add esp, 0x24
mov dword [esi + 0x14], eax
and edi, 0xffffffef
lea ecx, [ebp - 0x180]
mov dword [ebp - 0x160], edi
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x164]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
inc ebx
add esi, 0x20
cmp ebx, 0xa
jl 0x40d770
jmp 0x40dac3
push 0x4d3a20
mov ecx, esi
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator]
mov eax, dword [ebp - 0x16c]
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 4
mov dword [eax + 0xec], ebx
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov ebx, dword [ebp - 0x16c]
mov ecx, ebx
call fcn.0040cd00
inc dword [ebx + 0xe8]
mov eax, dword [ebx + 0xe8]
cmp eax, dword [ebx + 0xec]
jl 0x40daf0
mov dword [ebx + 0xe8], 0
xor eax, eax
push eax
push str.LastAN
push dword [ebp - 0x154]
push 0x80000001
call fcn.0040a790
add esp, 0x10
push str.NewVerURL
push dword [ebp - 0x154]
lea eax, [ebp - 0x15c]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x10
push eax
lea ecx, [ebx + 0xd8]
mov byte [ebp - 4], 0x11
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push str.Message
push dword [ebp - 0x154]
lea eax, [ebp - 0x15c]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x10
push eax
lea ecx, [ebx + 0xdc]
mov byte [ebp - 4], 0x12
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push str.MessageURL
push dword [ebp - 0x154]
lea eax, [ebp - 0x15c]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x10
push eax
lea ecx, [ebx + 0xe0]
mov byte [ebp - 4], 0x13
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push 0x4df4a8
push dword [ebp - 0x154]
lea eax, [ebp - 0x15c]
push 0x80000001
push eax
call fcn.0040a5b0
add esp, 0x10
push dword [eax]
lea ecx, [ebx + 0x234]
mov byte [ebp - 4], 0x14
call dword [sym.imp.mfc140u.dll_ATL::CStringT_char_StrTraitMFC_DLL_char_ATL::ChTraitsCRT_char__3]
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov ecx, dword [ebx + 0x2c]
mov dword [ebp - 0x168], 0
mov eax, dword [ecx - 0xc]
add eax, eax
push eax
push ecx
push 0
call fcn.0040ebd0
mov esi, eax
add esp, 0xc
cmp esi, 0x4dad36bb
jne 0x40dc3c
mov esi, 0xa10b5339
mov eax, 0x24e3af87
push eax
lea eax, [ebp - 0xb0]
push str.CLSID_X_C9A3_1B3F_B185_D6A527AE017BVERSION
push eax
call fcn.0040b210
lea eax, [ebp - 0x168]
push eax
push 0
lea eax, [ebp - 0xb0]
push eax
push 0x80000000
call fcn.0040a4b0
mov edi, eax
add esp, 0x1c
mov dword [ebp - 0x164], edi
test edi, edi
je 0x40dc90
mov eax, dword [ebp - 0x168]
cmp eax, 0x14
jb 0x40dc86
cmp dword [edi], eax
je 0x40dcd8
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
push esi
lea eax, [ebp - 0x150]
push str.Identities_X_CA39_31BF_B518_527AD6AE017B
push eax
call fcn.0040b210
lea eax, [ebp - 0x168]
push eax
push 0x4df510
lea eax, [ebp - 0x150]
push eax
push 0x80000001
call fcn.0040a4b0
mov edi, eax
mov dword [ebp - 0x164], eax
add esp, 0x1c
test edi, edi
je 0x40dd78
mov eax, dword [ebp - 0x168]
cmp eax, 0x14
jb 0x40dd6e
cmp dword [edi], eax
jne 0x40dd6e
lea ecx, [edi + 0xc]
mov dword [ebp - 0x184], ecx
mov edx, ecx
add eax, 0xffffffec
je 0x40dd40
lea esi, [edi + 0x10]
mov ebx, 0xfffffff0
sub ebx, edi
mov dword [ebp - 0x15c], esi
mov edi, esi
nop dword [eax + eax]
mov al, byte [edx]
lea esi, [esi + 1]
xor byte [esi - 1], al
inc edx
mov eax, dword [ebp - 0x168]
cmp edx, edi
cmovae edx, ecx
lea ecx, [ebx + esi]
add eax, 0xffffffec
cmp ecx, eax
mov ecx, dword [ebp - 0x184]
jb 0x40dd10
mov edi, dword [ebp - 0x164]
mov ebx, dword [ebp - 0x16c]
mov eax, dword [edi + 4]
lea ecx, [ebx + 0x234]
cdq
mov dword [0x5206f8], eax
mov dword [0x5206fc], edx
mov eax, dword [edi + 8]
cdq
mov dword [0x520700], eax
lea eax, [edi + 0x10]
push eax
mov dword [0x520704], edx
call dword [sym.imp.mfc140u.dll_Ordinal_1533]
push edi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [ebp - 0x154]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00418035
mov esp, ebp
pop ebp
ret