Function at 0x401420
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4026ed
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x968
push ebx
push ebp
xor eax, eax
push esi
lea ecx, [esp + 0x74]
push edi
mov dword [esp + 0x78], eax
xor ebx, ebx
push ecx
mov dword [esp + 0x80], eax
push ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
call dword [sym.imp.tccom.dll__CreateCommServerWindow_8]
mov esi, eax
lea ecx, [esp + 0x88]
mov dword [esp + 0x4c], esi
call dword [sym.imp.tccom.dll_public:_void___thiscall__TcComSettings::constructor_void_]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x88], 0x10
mov word [esp + 0x96], 0x80
call fcn.004021d0
lea edx, [esp + 0x88]
push 1
push edx
push esi
mov dword [esp + 0x98c], ebx
call dword [sym.imp.tccom.dll__InitComm_12]
cmp ax, 0xffff
je 0x4014d2
lea eax, [esp + 0x6c]
push eax
push 0x401110
push esi
call dword [sym.imp.tccom.dll_TcJUsbEnumClients]
add esp, 0xc
push esi
call dword [sym.imp.tccom.dll__ExitComm_4]
mov edx, dword [esp + 0x6c]
mov ecx, 0x33
xor eax, eax
lea edi, [esp + 0x164]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x1e8]
push 0x20
push ecx
push edx
push eax
xor ebp, ebp
call dword [sym.imp.TDASUIE.DLL_ShowSysWelcome]
add esp, 0x10
cmp eax, ebx
jne 0x4015ae
cmp dword [esp + 0x70], ebx
jne 0x401527
lea ecx, [esp + 0x1e8]
push ecx
push str.Basehostname_:_S:_n
call dword [sym.imp.TCUIEXT.dll_TcDebugOut]
add esp, 8
jmp 0x401534
mov edx, dword [esp + 0x6c]
mov eax, dword [edx]
mov dword [esp + 0x164], eax
cmp dword [esp + 0x70], ebx
jne 0x401588
lea ecx, [esp + 0x1e8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x401588
mov ecx, 0x181
xor eax, eax
lea edi, [esp + 0x374]
lea edx, [esp + 0x374]
rep stosd dword es:[edi], eax
push 0x604
push edx
lea eax, [esp + 0x1f0]
push str._config_getbase
push eax
call dword [sym.imp.TDASUIE.DLL_TdasTryHttps]
add esp, 0x10
test eax, eax
jne 0x401588
mov ebp, 1
mov edx, dword [esp + 0x164]
lea ecx, [esp + 0x1e8]
push ebp
push ecx
push edx
push esi
call dword [sym.imp.tccom.dll_TdasInitCom2]
add esp, 0x10
cmp ax, 0xffff
jne 0x4015f5
mov eax, 0x80070057
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.TDASUIE.DLL__ReportErrorUi]
add esp, 8
mov edx, dword [esp + 0x4c]
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4015dc
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov ecx, dword [esp + 0x978]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x974
ret
push esi
call dword [sym.imp.tccom.dll__TcEnterComSection_4]
mov dword [esp + 0x1c], ebx
mov esi, dword [sym.imp.ole32.dll_CoCreateInstance]
lea eax, [esp + 0x1c]
push eax
push 0x404178
push 7
push ebx
push 0x404168
mov byte [esp + 0x994], 1
call esi
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x401fef
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax]
push 0
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x401fde
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
push 0x404158
push 7
push 0
push 0x404148
call esi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x401fca
xor ebx, ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
lea edx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
mov ecx, dword [eax]
push edx
push 0x404138
push eax
mov byte [esp + 0x98c], 3
call dword [ecx]
cmp dword [esp + 0x3c], ebx
je 0x401bbd
mov dword [esp + 0x24], ebx
lea eax, [esp + 0x24]
mov byte [esp + 0x980], 5
push eax
call fcn.004010f0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x64]
push ecx
push edx
push eax
call fcn.004011a0
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x2c], eax
jne 0x401ba6
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x28]
push edx
push eax
mov ecx, dword [eax]
mov byte [esp + 0x988], 6
call dword [ecx + 0x14]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
cmp eax, ebx
je 0x40171a
mov ecx, dword [eax]
lea edx, [esp + 0x40]
push edx
push 0x404128
push eax
call dword [ecx]
mov eax, dword [esp + 0x40]
mov byte [esp + 0x980], 7
cmp eax, ebx
je 0x4018bc
mov ecx, 0x33
xor eax, eax
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
xor ecx, ecx
cmp eax, ebx
mov dword [esp + 0x14], ecx
je 0x40175f
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push 0x404118
push eax
call dword [ecx]
mov ecx, dword [esp + 0x14]
xor edi, edi
mov bl, 8
cmp ecx, edi
mov byte [esp + 0x980], bl
je 0x401784
mov eax, dword [ecx]
lea edx, [esp + 0x44]
push edx
push ecx
call dword [eax + 0x18]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x98], eax
lea ecx, [esp + 0x1e8]
mov word [esp + 0x9c], di
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpynW]
test eax, eax
je 0x4017b8
lea edx, [esp + 0x1e8]
push 0x20
lea eax, [esp + 0x120]
push edx
push eax
call esi
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x270]
push edx
mov edx, dword [esp + 0x9c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x40182a
lea eax, [esp + 0x274]
push 0x40
lea ecx, [esp + 0xa0]
push eax
push ecx
call esi
mov eax, dword [esp + 0x338]
mov edx, dword [esp + 0x334]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x40]
sub esp, 0xcc
mov dword [esp + 0x228], edx
mov edx, dword [eax]
mov ecx, 0x33
lea esi, [esp + 0x164]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push eax
call dword [edx + 0x14]
xor edi, edi
jmp 0x401852
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x98]
mov dword [esp + 0x15c], edi
mov dword [esp + 0x160], edi
mov ecx, dword [eax]
push edx
push eax
mov dword [esp + 0x28], 1
call dword [ecx + 0xc]
cmp ebp, edi
je 0x4018a6
mov ecx, dword [esp + 0x3c]
xor eax, eax
cmp ecx, edi
mov dword [esp + 0x18], eax
je 0x401877
mov eax, dword [ecx]
lea edx, [esp + 0x18]
push edx
push 0x404108
push ecx
call dword [eax]
mov eax, dword [esp + 0x18]
cmp eax, edi
mov byte [esp + 0x980], 9
je 0x401895
mov edx, dword [esp + 0x98]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x24]
mov eax, dword [esp + 0x18]
cmp eax, edi
mov byte [esp + 0x980], bl
je 0x4018a6
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x980], 7
cmp eax, edi
je 0x4018bc
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x10]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x30], eax
je 0x4018dd
mov eax, dword [ecx]
lea edx, [esp + 0x30]
push edx
push 0x4040f8
push ecx
call dword [eax]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x401a18
mov dword [esp + 0x18], 0
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
mov byte [esp + 0x988], 0xb
call dword [ecx + 0x1c]
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x14], eax
je 0x401925
mov eax, dword [ecx]
lea edx, [esp + 0x14]
push edx
push 0x4040e8
push ecx
call dword [eax]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov bl, 0xc
test eax, eax
mov byte [esp + 0x980], bl
je 0x4019f0
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x401965
mov edx, dword [ecx]
lea eax, [esp + 0x5c]
push eax
push 0x404118
push ecx
call dword [edx]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
test edx, edx
mov byte [esp + 0x980], 0xd
je 0x401988
mov ecx, dword [edx]
lea eax, [esp + 0x44]
push eax
push edx
call dword [ecx + 0x18]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [eax]
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x54]
push ecx
push eax
call dword [edx + 0x10]
test eax, eax
jne 0x4019bc
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], eax
push eax
mov eax, dword [esp + 0x54]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x14]
jmp 0x4019d3
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x50]
mov dword [esp + 0x54], 0
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x980], bl
test eax, eax
je 0x4019e8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
mov byte [esp + 0x980], 0xb
je 0x401a06
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov byte [esp + 0x980], 0xa
je 0x401a18
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x3c]
lea edx, [esp + 0x38]
push edx
push eax
mov ecx, dword [eax]
mov byte [esp + 0x988], 0xe
call dword [ecx + 0x18]
mov ecx, dword [esp + 0x38]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x58], eax
je 0x401a58
mov eax, dword [ecx]
lea edx, [esp + 0x58]
push edx
push 0x4040d8
push ecx
call dword [eax]
mov eax, dword [esp + 0x58]
mov bl, 0xf
test eax, eax
mov byte [esp + 0x980], bl
je 0x401b2c
mov dword [esp + 0x18], 0
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push 1
push eax
mov byte [esp + 0x98c], 0x10
call dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x14], eax
je 0x401aab
mov eax, dword [ecx]
lea edx, [esp + 0x14]
push edx
push 0x4040c8
push ecx
call dword [eax]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
mov byte [esp + 0x980], 0x11
je 0x401b05
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x401b05
jmp 0x401ac5
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x98]
push 0
push edx
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x401afd
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x120]
cmp eax, ecx
jne 0x401af5
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
test eax, eax
je 0x401ac1
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
test eax, eax
mov byte [esp + 0x980], 0x10
je 0x401b1b
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x18]
test ecx, ecx
mov byte [esp + 0x980], bl
je 0x401b2c
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov eax, dword [esp + 0x58]
mov byte [esp + 0x980], 0xe
test eax, eax
je 0x401b4c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x38]
mov byte [esp + 0x980], 0xa
test eax, eax
je 0x401b62
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x30]
mov byte [esp + 0x980], 7
test eax, eax
je 0x401b78
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x40]
mov byte [esp + 0x980], 6
test eax, eax
je 0x401b8e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x980], 5
test eax, eax
je 0x401bb0
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x401bb0
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], ebx
cmp eax, ebx
jne 0x401f69
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x48]
push eax
push ecx
push edx
call dword [sym.imp.TDASUIE.DLL_DetermineBaseState]
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x54]
add esp, 0xc
cmp ecx, ebx
je 0x401c03
cmp esi, ebx
je 0x401bfa
cmp esi, 2
jne 0x401c03
mov esi, 1
mov dword [esp + 0x48], esi
cmp eax, ebx
jne 0x401f69
mov edx, dword [esp + 0x68]
xor ebp, ebp
xor eax, eax
cmp edx, ebp
mov ebx, 4
jle 0x401c2b
mov ecx, dword [esp + 0x60]
cmp dword [ecx], esi
je 0x401c5c
inc eax
add ecx, ebx
cmp eax, edx
jl 0x401c20
mov eax, esi
sub eax, ebp
je 0x401d6c
dec eax
je 0x401c7b
dec eax
jne 0x401f88
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call dword [sym.imp.TDASUIE.DLL_ShowProbesAddedWiz]
add esp, 0xc
jmp 0x401f88
cmp eax, 0xffffffff
je 0x401c2b
mov ecx, dword [esp + 0x64]
cmp dword [ecx + eax*4], ebp
je 0x401c2b
mov dword [esp + 0x2c], 0x80040209
mov eax, dword [esp + 0x2c]
jmp 0x401f75
lea edx, [esp + 0x20]
test edx, edx
je 0x401dbc
lea eax, [esp + 0x20]
mov esi, 0x80004005
push eax
push 0x20019
push ebp
push str.software_testocomsoft_tdas
push SysReAllocStringLen
xor edi, edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401dbc
lea ecx, [esp + 0x24]
lea edx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x2c]
push edx
push eax
push ebp
push str.EnableCfg
push ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401ce3
mov edi, dword [esp + 0x30]
xor esi, esi
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, ebp
jne 0x401dbc
cmp edi, ebp
je 0x401dbc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x230]
push eax
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x278]
push edx
push eax
push ecx
mov byte [esp + 0x244], 0
mov dword [esp + 0x34], ebp
call dword [sym.imp.TDASUIE.DLL_ChoosePrjFile]
add esp, 0x14
test eax, eax
jne 0x401d9f
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x230]
push edx
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x38]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
push edx
push eax
lea edx, [esp + 0x284]
push ecx
push edx
call dword [sym.imp.TDASUIE.DLL_DoApplyFile]
add esp, 0x1c
cmp eax, ebp
jne 0x401d89
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
call dword [sym.imp.TDASUIE.DLL_ShowSysState]
add esp, 0xc
jmp 0x401f88
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.TDASUIE.DLL__ReportErrorUi]
add esp, 8
jmp 0x401f88
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x34]
push eax
push ecx
push edx
call dword [sym.imp.TDASUIE.DLL_ShowSysSetupWiz]
add esp, 0xc
jmp 0x401f88
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x34]
push eax
push ecx
push edx
call dword [sym.imp.TDASUIE.DLL_ShowSysSetupWiz]
add esp, 0xc
test eax, eax
je 0x401f88
mov dword [esp + 0x38], ebp
lea eax, [esp + 0x38]
mov byte [esp + 0x980], 0x12
push eax
call fcn.004010f0
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x3c]
add esp, 4
mov ecx, dword [eax]
push ebp
push ebp
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x401f5c
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
cmp ecx, ebp
je 0x401e31
mov eax, dword [ecx]
lea edx, [esp + 0x30]
push edx
push 0x404138
push ecx
call dword [eax]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
cmp eax, ebp
mov byte [esp + 0x980], 0x13
je 0x401f40
mov dword [esp + 0x28], ebp
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
mov byte [esp + 0x988], 0x14
call dword [ecx + 0x14]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ebp
cmp eax, ebp
je 0x401e73
mov ecx, dword [eax]
lea edx, [esp + 0x2c]
push edx
push 0x404090
push eax
call dword [ecx]
mov eax, dword [esp + 0x2c]
mov bl, 0x15
cmp eax, ebp
mov byte [esp + 0x980], bl
je 0x401f10
mov eax, dword [esp + 0x1c]
xor edx, edx
cmp eax, ebp
mov dword [esp + 0x24], edx
je 0x401ea9
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push 0x404118
push eax
call dword [ecx]
mov edx, dword [esp + 0x24]
cmp edx, ebp
mov byte [esp + 0x980], 0x16
je 0x401eff
mov ecx, 0x33
xor eax, eax
lea edi, [esp + 0x270]
rep stosd dword es:[edi], eax
mov eax, dword [edx]
lea ecx, [esp + 0x20]
push ecx
push edx
call dword [eax + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
sub esp, 0xcc
mov dword [esp + 0x33c], edx
mov edx, dword [eax]
mov ecx, 0x33
lea esi, [esp + 0x33c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push eax
call dword [edx + 0x18]
mov edx, dword [esp + 0x24]
cmp edx, ebp
mov byte [esp + 0x980], bl
je 0x401f10
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x980], 0x14
cmp eax, ebp
je 0x401f26
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x28]
mov byte [esp + 0x980], 0x13
cmp eax, ebp
je 0x401f3c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
mov eax, dword [esp + 0x30]
mov byte [esp + 0x980], 0x12
cmp eax, ebp
je 0x401f5c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x38]
push edx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x401f88
cmp eax, 0x80070005
jne 0x401f75
mov eax, 0x80040204
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.TDASUIE.DLL__ReportErrorUi]
add esp, 8
xor ebp, ebp
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x980], 3
cmp eax, ebp
je 0x401f9e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x60]
cmp eax, ebp
je 0x401fb4
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov dword [esp + 0x60], ebp
mov eax, dword [esp + 0x64]
cmp eax, ebp
je 0x401fc6
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov eax, dword [esp + 0x10]
test eax, eax
mov byte [esp + 0x980], 1
je 0x401fef
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x401fef
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.TDASUIE.DLL__ReportErrorUi]
add esp, 8
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.tccom.dll__TcLeaveComSection_4]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x980], 0
test eax, eax
je 0x4015bf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4015bf