Function at 0x43b96a
Capabilities:
Check if file exists
Set file attributes

Disassembly:
push ebp
lea ebp, [esp - 0x69c]
sub esp, 0x714
mov eax, dword [0x4c3a10]
xor eax, ebp
mov dword [ebp + 0x698], eax
mov eax, dword [ebp + 0x6a4]
push ebx
push esi
xor ebx, ebx
push edi
mov esi, ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ebx
call fcn.00422f9d
mov ecx, esi
call fcn.0043226e
test eax, eax
jne 0x43b9b0
xor eax, eax
inc eax
jmp 0x43c49a
xor eax, eax
push 0x206
mov word [ebp + 0x288], ax
lea eax, [ebp + 0x28a]
push ebx
push eax
call fcn.004766d0
add esp, 0xc
push 0x104
lea eax, [ebp + 0x288]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esi + 0x94]
push eax
lea eax, [ebp + 0x288]
push eax
call fcn.004033f7
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push str.RICHED20.DLL
mov dword [esi + 0x164], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, esi
call fcn.00437e3c
push ebx
push ecx
mov eax, esp
push ebx
push ebx
push ebx
mov dword [eax], ebx
push ecx
mov eax, esp
mov dword [eax], ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
lea ecx, [esi + 8]
call fcn.00411e55
push ebx
push dword [esi + 0xc]
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [esi + 0xcc]
push eax
call fcn.004418e7
mov ecx, eax
call fcn.00441bb5
test al, al
je 0x43b9a8
call fcn.004418e7
mov ecx, eax
call fcn.004416ff
push str.InstallResource.zip
lea ecx, [ebp + 0x64]
call fcn.00401900
lea eax, [ebp + 0x64]
push eax
call fcn.004418e7
mov ecx, eax
call fcn.00441cb4
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
lea ecx, [esi + 0xb0]
push 0x4b2da4
mov dword [ebp - 0x1c], edi
call fcn.00401a3e
push ebx
lea eax, [ebp - 0x78]
push eax
push str.Install
push str.SoftwareThunder_NetworkRecordThunder
push connect
call fcn.0040b42e
add esp, 0x14
test eax, eax
jne 0x43bae0
lea eax, [esi + 0xb0]
push eax
push str.Version
push str.SoftwareThunder_NetworkRecordThunder
push connect
mov dword [ebp - 0x1c], ebx
call fcn.0040b353
add esp, 0x10
xor eax, eax
push 0x206
mov word [ebp + 0x490], ax
lea eax, [ebp + 0x492]
push ebx
push eax
call fcn.004766d0
push 0x208
lea eax, [ebp + 0x490]
push ebx
push eax
call fcn.004766d0
add esp, 0x18
call fcn.004418e7
mov ecx, eax
call fcn.00441572
cmp dword [eax + 0x18], 8
jb 0x43bb27
mov eax, dword [eax + 4]
jmp 0x43bb2a
add eax, 4
push str.InstallConfig.xml
push eax
lea eax, [ebp + 0x490]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp + 0x490]
push eax
call fcn.004029b9
mov ecx, eax
call fcn.00402b6a
test eax, eax
je 0x43bb5b
mov eax, edi
jmp 0x43c49a
mov ecx, esi
call fcn.00437f30
lea ecx, [esi + 0x78]
lea eax, [esi + 0x5c]
push ecx
push eax
call fcn.0044481d
mov ecx, eax
call fcn.00444100
lea eax, [esi + 0x5c]
push eax
call fcn.004418e7
mov ecx, eax
call fcn.00441572
push eax
call fcn.0043c71f
mov ecx, eax
call fcn.0043d120
mov ecx, esi
call fcn.00437963
lea eax, [ebp - 0x17]
push eax
mov byte [ebp - 0x17], bl
call fcn.00403c57
mov ecx, eax
call fcn.00403d3d
cmp byte [ebp - 0x17], bl
je 0x43bc13
xor eax, eax
push 0x206
mov word [ebp + 0x80], ax
lea eax, [ebp + 0x82]
push ebx
push eax
call fcn.004766d0
add esp, 0xc
push 0x104
lea eax, [ebp + 0x80]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push dword [esi + 0xc]
lea eax, [ebp + 0x80]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp + 0x64]
call fcn.00401900
push eax
call fcn.0044e6bd
mov ecx, eax
call fcn.0044ec57
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
lea eax, [ebp - 0x15]
push eax
mov byte [ebp - 0x15], bl
call fcn.00403c57
mov ecx, eax
call fcn.00403cfb
cmp byte [ebp - 0x15], bl
jne 0x43bd47
push ebx
lea ecx, [ebp + 0x2c]
mov dword [ebp + 0x44], 7
call fcn.00401ce9
lea eax, [ebp + 0x2c]
push eax
call fcn.004399ea
mov ecx, eax
call fcn.00437d2d
push str._InstallInfo
lea ecx, [ebp + 0x2c]
call fcn.00401987
push ebx
sub esp, 0x1c
lea eax, [ebp + 0x2c]
mov ecx, esp
push eax
call fcn.00401922
mov ecx, esi
call fcn.00439a13
push 0x4b31c8
lea ecx, [ebp + 0x2c]
call fcn.0040c21e
test eax, eax
je 0x43bc98
cmp dword [ebp + 0x44], 8
mov eax, dword [ebp + 0x30]
jae 0x43bc8f
lea eax, [ebp + 0x30]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp + 0x64]
push eax
call fcn.00452ed7
pop ecx
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x2c]
call fcn.004019ab
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
push str.tp_InstallInfo_tp_
lea ecx, [ebp + 0x2c]
call fcn.00401987
push edi
sub esp, 0x1c
lea eax, [ebp + 0x2c]
mov ecx, esp
push eax
call fcn.00401922
mov ecx, esi
call fcn.00439a13
push 0x4b31c8
lea ecx, [ebp + 0x2c]
call fcn.0040c21e
test eax, eax
je 0x43bd3d
lea eax, [ebp + 0x48]
push 0x4a727c
push eax
call fcn.00452ed7
pop ecx
push eax
lea eax, [ebp + 0x64]
push eax
call fcn.0041318d
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x2c]
call fcn.004019ab
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00401a62
cmp dword [ebp + 0x44], 8
mov eax, dword [ebp + 0x30]
jae 0x43bd34
lea eax, [ebp + 0x30]
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
push edi
lea ecx, [ebp + 0x2c]
call fcn.00401a62
call fcn.004418e7
mov ecx, eax
call fcn.004432fc
call fcn.004418e7
mov ecx, eax
call fcn.00442632
call fcn.00432237
mov ecx, eax
call fcn.00432103
lea ecx, [ebp - 0x48]
call fcn.004394b9
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x20]
mov ecx, esi
call fcn.0043957a
lea eax, [ebp - 0x16]
push eax
mov byte [ebp - 0x16], bl
call fcn.00403c57
mov ecx, eax
call fcn.00403d3d
push 0x4a7278
lea ecx, [ebp + 0x48]
call fcn.00401900
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x14], edi
call fcn.004521bf
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00451dac
test al, al
je 0x43be17
push str.Repair
lea ecx, [ebp + 0x64]
call fcn.00401900
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x14], 3
call fcn.004521bf
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00451dac
mov byte [ebp - 0xd], bl
test al, al
jne 0x43be1b
mov byte [ebp - 0xd], 1
test byte [ebp - 0x14], 2
je 0x43be2f
and dword [ebp - 0x14], 0xfffffffd
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
test byte [ebp - 0x14], 1
je 0x43be43
and dword [ebp - 0x14], 0xfffffffe
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00401a62
cmp byte [ebp - 0xd], bl
je 0x43be4e
mov dword [esi + 0x180], edi
push 0x4b4204
lea ecx, [ebp + 0x48]
call fcn.00401900
or dword [ebp - 0x14], 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
call fcn.004521bf
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
mov ecx, eax
call fcn.00451dac
test al, al
je 0x43bed0
push str.Silent
lea ecx, [ebp + 0x64]
call fcn.00401900
or dword [ebp - 0x14], 8
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
call fcn.004521bf
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
mov ecx, eax
call fcn.00451dac
mov byte [ebp - 0xd], 1
test al, al
jne 0x43bed3
mov byte [ebp - 0xd], bl
test byte [ebp - 0x14], 8
je 0x43bee7
and dword [ebp - 0x14], 0xfffffff7
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
test byte [ebp - 0x14], 4
je 0x43befb
and dword [ebp - 0x14], 0xfffffffb
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00401a62
cmp byte [ebp - 0xd], bl
je 0x43c0bd
cmp byte [ebp - 0x16], bl
je 0x43c0d8
cmp byte [ebp - 0x15], bl
je 0x43c0d8
push ebx
lea ecx, [ebp + 0x48]
mov dword [esi + 0x1a0], edi
mov dword [ebp + 0x60], 7
call fcn.00401ce9
lea eax, [ebp + 0x48]
push eax
call fcn.00402f56
pop ecx
test eax, eax
je 0x43c05b
push ebx
lea ecx, [ebp + 0x10]
mov dword [ebp + 0x28], 7
call fcn.00401ce9
push ebx
lea ecx, [ebp + 0x64]
mov dword [ebp + 0x7c], 7
call fcn.00401ce9
push ebx
lea ecx, [ebp + 0x2c]
mov dword [ebp + 0x44], 7
call fcn.00401ce9
push str.program_thunder.exe
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.0041318d
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x10]
call fcn.004019ab
push ebx
push edi
lea ecx, [ebp - 0x74]
call fcn.00401a62
push str.BHOBHOInstall.exe
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.0041318d
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x64]
call fcn.004019ab
push ebx
push edi
lea ecx, [ebp - 0x74]
call fcn.00401a62
push 0x4a586c
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.0041318d
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x2c]
call fcn.004019ab
push ebx
push edi
lea ecx, [ebp - 0x74]
call fcn.00401a62
cmp dword [ebp + 0x28], 8
mov eax, dword [ebp + 0x14]
jae 0x43bffb
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43c02a
cmp dword [ebp + 0x44], 8
mov eax, dword [ebp + 0x30]
jae 0x43c012
lea eax, [ebp + 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43c02a
mov dword [esi + 0x180], edi
push 0x25e
jmp 0x43c02f
push 0x25f
call fcn.0044481d
mov ecx, eax
call fcn.00444b19
push ebx
push edi
lea ecx, [ebp + 0x2c]
call fcn.00401a62
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
push ebx
push edi
lea ecx, [ebp + 0x10]
call fcn.00401a62
jmp 0x43c06c
push 0x25f
call fcn.0044481d
mov ecx, eax
call fcn.00444b19
push ebx
lea ecx, [ebp - 0xc]
mov dword [ebp + 0xc], 7
call fcn.00401ce9
lea eax, [ebp - 0xc]
push eax
call fcn.0040301c
pop ecx
test eax, eax
je 0x43c0a7
cmp dword [ebp + 0xc], 8
mov eax, dword [ebp - 8]
jae 0x43c096
lea eax, [ebp - 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43c0a7
mov dword [esi + 0x19c], edi
push ebx
push edi
lea ecx, [ebp - 0xc]
call fcn.00401a62
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00401a62
jmp 0x43c0d8
cmp byte [ebp - 0x16], bl
je 0x43c0d8
cmp byte [ebp - 0x15], bl
je 0x43c0d8
push 0x25f
call fcn.0044481d
mov ecx, eax
call fcn.00444b19
call fcn.0040eac3
mov ecx, eax
call fcn.0040eb90
test eax, eax
jne 0x43c11d
lea eax, [ebp - 0x74]
push eax
call fcn.0040eac3
mov ecx, eax
call fcn.0040ebc4
cmp dword [eax + 0x18], 8
jb 0x43c103
mov eax, dword [eax + 4]
jmp 0x43c106
add eax, 4
push eax
call fcn.0040eac3
mov ecx, eax
call fcn.0040eb3c
push ebx
push edi
lea ecx, [ebp - 0x74]
call fcn.00401a62
push str.InstallPath
lea ecx, [ebp + 0x64]
call fcn.00401900
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
call fcn.004521bf
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00451dac
neg al
sbb al, al
push ebx
inc al
push edi
lea ecx, [ebp + 0x64]
mov byte [ebp - 0xd], al
call fcn.00401a62
cmp byte [ebp - 0xd], bl
je 0x43c19a
push str.InstallPath
lea ecx, [ebp + 0x64]
call fcn.00401900
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x48]
call fcn.004394d3
push eax
lea ecx, [ebp + 0x48]
call fcn.00401922
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
jmp 0x43c1b5
push ebx
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x60], 7
call fcn.00401ce9
lea eax, [ebp + 0x48]
push eax
mov ecx, esi
call fcn.00437d2d
cmp dword [ebp + 0x60], 8
mov eax, dword [ebp + 0x4c]
jae 0x43c1c1
lea eax, [ebp + 0x4c]
push eax
call fcn.00403c57
mov ecx, eax
call fcn.00403c98
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00401a62
push str.LiveUpdate
lea ecx, [ebp + 0x64]
call fcn.00401900
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
call fcn.004521bf
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00451dac
neg al
sbb al, al
push ebx
inc al
push edi
lea ecx, [ebp + 0x64]
mov byte [ebp - 0xd], al
call fcn.00401a62
xor eax, eax
cmp byte [ebp - 0xd], bl
mov byte [ebp - 0x28], 1
setne al
mov dword [esi + 0x4c], eax
lea eax, [ebp - 0x28]
push eax
call fcn.00403c57
mov ecx, eax
call fcn.00403cfb
cmp dword [esi + 0xe4], 8
jb 0x43c252
mov eax, dword [esi + 0xd0]
jmp 0x43c258
lea eax, [esi + 0xd0]
push dword [ebp - 0x28]
push eax
call fcn.0040fbce
mov ecx, eax
call fcn.0040fbf9
push 0x4b4204
lea ecx, [ebp + 0x48]
call fcn.00401900
or dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
call fcn.004521bf
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00451dac
test al, al
je 0x43c2e9
push str.Silent
lea ecx, [ebp + 0x64]
call fcn.00401900
or dword [ebp - 0x14], 0x20
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x24]
call fcn.004521bf
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x48]
call fcn.00437041
lea ecx, [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.00451dac
mov byte [ebp - 0xd], bl
test al, al
jne 0x43c2ed
mov byte [ebp - 0xd], 1
test byte [ebp - 0x14], 0x20
je 0x43c301
and dword [ebp - 0x14], 0xffffffdf
push ebx
push edi
lea ecx, [ebp + 0x64]
call fcn.00401a62
test byte [ebp - 0x14], 0x10
je 0x43c311
push ebx
push edi
lea ecx, [ebp + 0x48]
call fcn.00401a62
cmp byte [ebp - 0xd], bl
je 0x43c3aa
push dword [ebp - 0x1c]
cmp byte [ebp - 0x28], bl
je 0x43c355
push ebx
push edi
call fcn.0044481d
mov ecx, eax
call fcn.00445523
push 0x2de
call fcn.0044481d
mov ecx, eax
call fcn.00445a9c
push dword [ebp - 0x1c]
push ebx
push edi
push edi
call fcn.0044481d
mov ecx, eax
call fcn.00444df1
jmp 0x43c386
push edi
push edi
call fcn.0044481d
mov ecx, eax
call fcn.00445523
push dword [ebp - 0x1c]
push edi
push edi
push edi
call fcn.0044481d
mov ecx, eax
call fcn.00444df1
push 0x2da
call fcn.0044481d
mov ecx, eax
call fcn.00445a9c
push esi
mov dword [esi + 0x48], edi
call fcn.0040fbce
mov ecx, eax
call fcn.0040fc42
push esi
mov ecx, esi
call fcn.00438f12
mov ecx, esi
call fcn.0043aa74
jmp 0x43c487
push 0xffffffffffffffff
push ebx
push edi
call fcn.0044481d
mov ecx, eax
call fcn.00444c3e
push dword [ebp - 0x1c]
cmp byte [ebp - 0x15], bl
je 0x43c3d6
push ebx
push ebx
call fcn.0044481d
mov ecx, eax
call fcn.00445523
push dword [ebp - 0x1c]
push ebx
jmp 0x43c3e8
push edi
push ebx
call fcn.0044481d
mov ecx, eax
call fcn.00445523
push dword [ebp - 0x1c]
push edi
push ebx
push edi
call fcn.0044481d
mov ecx, eax
call fcn.00444df1
mov ecx, 0x4d1a68
mov dword [esi + 0x48], ebx
call fcn.00419dd7
mov edi, 0x1388
push edi
call fcn.0043c71f
mov ecx, eax
call fcn.0043c5fc
cmp byte [ebp - 0x16], bl
je 0x43c44a
cmp byte [ebp - 0x28], bl
je 0x43c44a
call fcn.0044e6bd
mov ecx, eax
call fcn.0044e45b
cmp eax, ebx
je 0x43c44a
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x43c44a
call fcn.0044e6bd
mov ecx, eax
call fcn.0044e424
call fcn.004418e7
mov ecx, eax
call fcn.00441572
cmp dword [eax + 0x18], 8
jb 0x43c461
mov eax, dword [eax + 4]
jmp 0x43c464
add eax, 4
push ebx
push 0x2000000
push 3
push ebx
push ebx
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
call fcn.00439157
lea ecx, [ebp - 0x48]
call fcn.00438ddb
push dword [ebp - 0x48]
call fcn.00476220
pop ecx
xor eax, eax
mov ecx, dword [ebp + 0x698]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047674a
add ebp, 0x69c
leave
ret 4