Function at 0x42afa1
Capabilities:
Get disk information
Query environment variable
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x66909b
call fcn.006313fc
sub esp, 0xd60
push ebx
push ebp
xor ebx, ebx
mov eax, ebx
push esi
push edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x40]
mov dword [esp + 0xd78], ebx
mov word [esp + 0x348], ax
call fcn.00424b8a
push dword [esp + 0xd88]
mov byte [esp + 0xd7c], 1
push dword [esp + 0xd88]
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1c], bl
mov byte [esp + 0x1b], bl
call fcn.0042a5cb
mov ecx, dword [esp + 0xd94]
mov edi, 0x104
mov byte [esp + 0x17], al
test ecx, ecx
je 0x42b033
cmp word [ecx], bx
je 0x42b033
lea edx, [esp + 0x140]
sub edx, ecx
movzx eax, word [ecx]
mov word [ecx + edx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x42b022
jmp 0x42b067
lea eax, [esp + 0x1c]
push eax
call fcn.00428ff0
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
jae 0x42b04c
lea eax, [esp + 0x1c]
push edi
push eax
lea eax, [esp + 0x148]
push eax
call fcn.004243e1
push ebx
push 1
lea ecx, [esp + 0x24]
call fcn.0042341c
cmp word [esp + 0x140], 0
jne 0x42b07a
push 6
pop edi
jmp 0x42bbfc
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x84]
push str.INSTALLDEBUG:_FindInstallablePath_Chose_n_tpath:__s__n
push eax
call fcn.0047224d
add esp, 0xc
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
mov byte [esp + 0xd78], 3
jae 0x42b0b7
lea eax, [esp + 0x80]
push eax
call fcn.00409edb
mov ebp, dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
lea eax, [esp + 0x34c]
add esp, 4
push edi
push eax
push dword [0x791130]
call ebp
lea esi, [esp + 0x140]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, bx
jne 0x42b0e1
sub esi, ecx
lea eax, [esp + 0x348]
sar esi, 1
push esi
push eax
lea eax, [esp + 0x148]
push eax
call fcn.00632b09
add esp, 0xc
test eax, eax
jne 0x42b12d
lea eax, [esp + 0x348]
lea eax, [eax + esi*2]
push 0x68ed68
push eax
call fcn.0063299b
pop ecx
pop ecx
test eax, eax
jne 0x42b12d
mov byte [esp + 0x15], 1
lea eax, [esp + 0x1c]
mov ecx, 0x75efd8
push eax
call fcn.0046e2e7
cmp dword [eax + 0x14], 8
jb 0x42b144
mov eax, dword [eax]
push eax
lea eax, [esp + 0x34c]
push eax
call fcn.0063299b
pop ecx
pop ecx
mov ebx, eax
lea ecx, [esp + 0x1c]
push 0
neg ebx
push 1
sbb bl, bl
call fcn.0042341c
inc bl
je 0x42b170
mov byte [esp + 0x14], 1
push 6
lea eax, [esp + 0x78]
xor ebx, ebx
push eax
lea eax, [esp + 0x350]
mov dword [esp + 0x44], ebx
push eax
call fcn.0046ca28
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x4c]
push eax
push edi
lea eax, [esp + 0x568]
push eax
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationW]
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x554]
push eax
lea eax, [esp + 0x24]
push str.INSTALLDEBUG:_Volume:__s__Drive:__s
push eax
call fcn.0047224d
add esp, 0x10
lea ecx, [esp + 0x1c]
push ebx
push 1
call fcn.0042341c
mov eax, dword [0x75f988]
cmp dword [esp + 0x3c], eax
je 0x42b1e9
test eax, eax
je 0x42b1e9
mov byte [esp + 0x13], 1
call fcn.0042db0e
mov byte [esp + 0x16], al
call fcn.0042e65d
mov ebx, eax
mov edi, 0xa4c2
test ebx, ebx
sete cl
cmp byte [esp + 0x15], 0
mov byte [0x73b002], cl
je 0x42b22a
cmp ebx, edi
jne 0x42b22a
push edi
push edi
lea eax, [esp + 0x24]
push str.INSTALLDEBUG:_Returning_early._Installed_version:__d__Our_version:__d
push eax
call fcn.0047224d
add esp, 0x10
jmp 0x42b295
mov esi, dword [esp + 0xd90]
cmp esi, 0x10000
je 0x42b2b0
call fcn.00461334
test al, al
je 0x42b26e
lea eax, [esp + 0x1c]
push str.INSTALLDEBUG:_Returning_early._Settings_file_exists_in_the_module_path.
push eax
call fcn.0047224d
pop ecx
pop ecx
xor ebx, ebx
lea ecx, [esp + 0x1c]
push ebx
push 1
call fcn.0042341c
mov dword [0x791908], edi
call fcn.004703fb
jmp 0x42b2a3
cmp dword [0x791908], edi
jne 0x42b2aa
cmp byte [esp + 0x16], 0
jne 0x42b2aa
cmp byte [esp + 0x13], 0
jne 0x42b2aa
lea eax, [esp + 0x1c]
push str.INSTALLDEBUG:_Returning_early._Some_crazy_set_of_version_temp_different_drive_nonsense
push eax
call fcn.0047224d
pop ecx
pop ecx
xor ebx, ebx
lea ecx, [esp + 0x1c]
push ebx
push 1
call fcn.0042341c
push 3
jmp 0x42b6a3
mov cl, byte [0x73b002]
cmp byte [esp + 0x17], 0
je 0x42b2cc
xor edx, edx
xor eax, eax
push edx
push edx
push edx
push edx
test cl, cl
push edx
sete al
push eax
push edx
call fcn.0042ec39
lea eax, [esp + 0x1c]
push str.INSTALLDEBUG:_Check_if_we_need_to_fork.
push eax
call fcn.0047224d
pop ecx
pop ecx
push 0
push 1
lea ecx, [esp + 0x24]
call fcn.0042341c
mov eax, esi
and eax, 0x80
mov dword [esp + 0x38], eax
jne 0x42b525
call fcn.00460700
test al, al
jne 0x42b525
movzx eax, byte [0x75dcc0]
cmp eax, 6
jb 0x42b525
mov eax, dword [0x7705e4]
test eax, eax
je 0x42b334
push eax
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
push dword [0x7705e4]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 0x104
lea eax, [esp + 0x75c]
xor ebx, ebx
push eax
push ebx
call ebp
push dword [esp + 0xd88]
lea eax, [esp + 0x20]
push dword [esp + 0xd88]
push eax
call fcn.004359e5
mov byte [esp + 0xd78], 7
test esi, 0x20000
jne 0x42b3be
push dword [0x75f344]
lea eax, [esp + 0x144]
or esi, 0x80
push eax
push esi
lea eax, [esp + 0x60]
push str.__PERFORMINSTALL__d___s___u
push eax
call fcn.0047224d
add esp, 0x14
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0xd84], 8
call fcn.00423462
push ebx
push 1
lea ecx, [esp + 0x5c]
mov byte [esp + 0xd80], 7
call fcn.0042341c
cmp byte [esp + 0xdb0], 0
je 0x42b3fe
sub esp, 0x18
lea eax, [esp + 0x6c]
lea esi, [esp + 0x34]
push 6
pop ecx
mov edi, esp
push str._s__HYDRA_DOWNGRADE
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0047224d
add esp, 0x20
lea ecx, [esp + 0x1c]
push eax
call fcn.0044dbe6
push ebx
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
cmp byte [esp + 0xdb4], 0
je 0x42b43e
sub esp, 0x18
lea eax, [esp + 0x6c]
lea esi, [esp + 0x34]
push 6
pop ecx
mov edi, esp
push str._s__HYDRA_EXCEPTION
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.0047224d
add esp, 0x20
lea ecx, [esp + 0x1c]
push eax
call fcn.0044dbe6
push ebx
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
jae 0x42b44d
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x75c]
push eax
call fcn.0042fc1f
push 3
pop edi
mov esi, eax
mov edx, 0x70522c
push ebx
cmp esi, edi
push ebx
setle cl
xor eax, eax
push edx
test cl, cl
push edx
setne al
push esi
dec eax
push eax
push 2
call fcn.0042ec39
cmp esi, edi
jg 0x42b4ef
mov eax, dword [0x75faa8]
shr eax, 4
and al, 1
movzx eax, al
push eax
lea eax, [esp + 0x58]
push eax
call fcn.00479a29
mov ecx, eax
cmp dword [ecx + 0x14], 8
jb 0x42b4a5
mov ecx, dword [ecx]
mov edx, 0x75edc0
sub edx, ecx
movzx eax, word [ecx]
mov word [edx + ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x42b4ac
push ebx
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
call fcn.00470073
mov eax, dword [0x762f20]
mov dword [0x75f990], eax
mov eax, dword [0x762f24]
mov dword [0x791908], 0xa4c2
mov dword [0x75f994], eax
call fcn.004703fb
push esi
lea eax, [esp + 0x58]
push str.INSTALLDEBUG:_Returning...installResult____d_
push eax
call fcn.0047224d
add esp, 0xc
lea ecx, [esp + 0x54]
push ebx
push 1
call fcn.0042341c
push ebx
push 1
lea ecx, [esp + 0x24]
call fcn.0042341c
mov dword [esp + 0x34], esi
mov edi, esi
jmp 0x42bbed
push 0x75f344
call fcn.004308cc
cmp ebx, edi
je 0x42b57c
mov eax, dword [0x762f20]
push 0x100
push 0x134
push 0x8004
push dword [0x7705d4]
mov dword [0x75f990], eax
mov eax, dword [0x762f24]
mov dword [0x75f994], eax
call dword [sym.imp.USER32.dll_PostMessageW]
push dword [0x762f24]
lea ecx, [esp + 0x44]
push dword [0x762f20]
push str.last_install_time
call fcn.0045becf
xor edi, edi
mov ebp, esi
and ebp, 0x20000
mov dword [esp + 0x34], edi
mov dword [esp + 0x70], ebp
je 0x42b597
mov edi, esi
jmp 0x42b6ec
call fcn.00461334
test al, al
jne 0x42b6d4
call fcn.00576144
test al, al
jne 0x42b6af
cmp byte [esp + 0x17], al
jne 0x42b6af
cmp dword [0x791908], 0xa4c2
mov bl, byte [esp + 0x16]
mov al, byte [esp + 0x13]
jne 0x42b5db
test bl, bl
jne 0x42b5db
test al, al
je 0x42b6ec
mov bh, byte [esp + 0x15]
movzx eax, al
push eax
movzx eax, bh
push eax
lea eax, [esp + 0x5c]
push str.INSTALLDEBUG:_running_from_installed_path___d_running_from_different_drive___d_n
push eax
call fcn.0047224d
add esp, 0x10
lea ecx, [esp + 0x80]
push eax
call fcn.0044dbe6
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
cmp dword [esp + 0x94], 8
mov eax, dword [esp + 0x80]
jae 0x42b62b
lea eax, [esp + 0x80]
push eax
call fcn.00409edb
add esp, 4
test bl, bl
jne 0x42b653
test bh, bh
jne 0x42b642
cmp byte [esp + 0x14], bh
je 0x42b653
cmp byte [esp + 0x13], 0
jne 0x42b653
mov edi, 0x100
jmp 0x42b6ec
mov eax, dword [0x791908]
cmp eax, 0xa4c2
je 0x42b66c
test eax, eax
jle 0x42b66c
mov byte [esp + 0x18], 1
xor ebx, ebx
jmp 0x42b672
xor ebx, ebx
mov byte [esp + 0x18], bl
push esi
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x20]
lea eax, [esp + 0x14c]
push eax
call fcn.004318fd
test al, al
jne 0x42b6a9
push ebx
push ebx
mov edx, 0x70522c
push edx
push edx
push 4
push 0xffffffffffffffff
push 2
call fcn.0042ec39
push 4
pop edi
jmp 0x42bbed
mov edi, dword [esp + 0x34]
jmp 0x42b6ec
lea eax, [esp + 0x54]
push str.INSTALLDEBUG:_GetSilentInstallMode____isSilent
push eax
call fcn.0047224d
pop ecx
pop ecx
push 0
push 1
lea ecx, [esp + 0x5c]
call fcn.0042341c
mov edi, 0x50f
jmp 0x42b6ec
test ebx, ebx
je 0x42b6ec
cmp ebx, 0xa4c2
je 0x42b6ec
cmp byte [esp + 0x15], 0
je 0x42b6ec
mov edi, 0x500
mov esi, 0x104
lea eax, [esp + 0x960]
push esi
push eax
push str.InstallLocation
push str.SoftwareMicrosoftWindowsCurrentVersionUninstalluTorrent
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00481e0a
mov bl, al
lea eax, [esp + 0x960]
push esi
push eax
lea eax, [esp + 0xb70]
push eax
call dword [sym.imp.KERNEL32.DLL_ExpandEnvironmentStringsW]
lea eax, [esp + 0x98]
mov ecx, 0x75efd8
push eax
call fcn.0046e2e7
cmp dword [esp + 0xac], 8
mov eax, dword [esp + 0x98]
mov byte [esp + 0xd78], 0xb
jae 0x42b759
lea eax, [esp + 0x98]
push eax
call fcn.0045e908
test al, al
je 0x42b774
lea eax, [esp + 0x98]
push eax
call fcn.0045f6c2
test al, al
je 0x42b77c
test bl, bl
je 0x42b963
push 0x68a2c4
lea ecx, [esp + 0x114]
call fcn.004249e7
mov esi, eax
lea eax, [esp + 0x98]
mov byte [esp + 0xd78], 0xc
push eax
push 0x68a860
lea eax, [esp + 0xe8]
push eax
call fcn.00423c3b
push 0x68a2e0
push eax
lea eax, [esp + 0x130]
mov byte [esp + 0xd80], 0xd
push eax
call fcn.00423b97
push esi
push eax
lea eax, [esp + 0x5c]
mov byte [esp + 0xd80], 0xe
push eax
call fcn.00423b47
push str.___UNINSTALL__S
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0xd80], 0xf
push eax
call fcn.00423b97
xor ebx, ebx
lea ecx, [esp + 0x54]
push ebx
push 1
call fcn.0042341c
push ebx
push 1
lea ecx, [esp + 0x130]
call fcn.0042341c
push ebx
push 1
lea ecx, [esp + 0xe8]
call fcn.0042341c
push ebx
push 1
lea ecx, [esp + 0x118]
mov byte [esp + 0xd80], 0x14
call fcn.0042341c
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
jae 0x42b84a
lea eax, [esp + 0x1c]
push eax
call fcn.0045f186
mov ebx, dword [esp + 0x6c]
push 0x3d
pop ebp
push 0x68a2c4
lea ecx, [esp + 0xb4]
call fcn.004249e7
mov esi, eax
push 0x68a2e0
lea eax, [esp + 0x9c]
mov byte [esp + 0xd7c], 0x15
push eax
lea eax, [esp + 0x100]
or ebx, 1
push eax
mov dword [esp + 0x24], ebx
call fcn.00422e5f
push esi
push eax
lea eax, [esp + 0xd0]
mov dword [esp + 0xd80], 0x16
or ebx, 2
push eax
mov dword [esp + 0x24], ebx
call fcn.00423b47
or ebx, 4
mov dword [esp + 0xd78], 0x17
push eax
mov dword [esp + 0x1c], ebx
call fcn.0045e925
test al, al
je 0x42b8d8
mov byte [esp + 0x14], 1
dec ebp
jne 0x42b8dd
mov byte [esp + 0x14], 0
test bl, 4
je 0x42b8f5
push 0
push 1
lea ecx, [esp + 0xd0]
and ebx, 0xfffffffb
call fcn.0042341c
test bl, 2
je 0x42b90d
push 0
push 1
lea ecx, [esp + 0x100]
and ebx, 0xfffffffd
call fcn.0042341c
mov dword [esp + 0xd78], 0x14
test bl, 1
je 0x42b930
push 0
push 1
lea ecx, [esp + 0xb8]
and ebx, 0xfffffffe
call fcn.0042341c
cmp byte [esp + 0x14], 0
je 0x42b947
push 0x1f4
call dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x42b857
xor ebx, ebx
mov byte [esp + 0xd78], 0xb
push ebx
push 1
lea ecx, [esp + 0x24]
call fcn.0042341c
mov ebp, dword [esp + 0x70]
jmp 0x42b965
xor ebx, ebx
lea eax, [esp + 0x140]
push eax
push edi
lea eax, [esp + 0xb8]
push str.INSTALLDEBUG:_DoInstall__d___s_
push eax
call fcn.0047224d
add esp, 0x10
lea ecx, [esp + 0xb0]
push ebx
push 1
call fcn.0042341c
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x144]
push eax
push edi
call fcn.004282f0
push 3
pop edi
mov esi, eax
mov edx, 0x70522c
push ebx
cmp esi, edi
push ebx
setle cl
xor eax, eax
push edx
test cl, cl
push edx
setne al
push esi
dec eax
push eax
push 2
call fcn.0042ec39
mov eax, dword [0x7705e4]
test eax, eax
je 0x42b9e5
push eax
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
push dword [0x7705e4]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
cmp esi, edi
je 0x42b9f2
cmp byte [0x7637b6], 0
je 0x42ba18
push 0x104
lea eax, [esp + 0x144]
push eax
push dword [0x791130]
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
lea eax, [esp + 0x140]
push eax
call fcn.0045e40a
test ebp, ebp
je 0x42ba74
sub esp, 0x18
lea eax, [esp + 0xdb0]
mov ecx, esp
push eax
call fcn.0040a0c6
call fcn.0059aebe
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x20]
call fcn.004249e7
lea eax, [esp + 0x1c]
mov byte [esp + 0xd78], 0x18
push eax
mov ecx, 0x75efd8
call fcn.0046f6d8
push ebx
push 1
lea ecx, [esp + 0x24]
mov byte [esp + 0xd80], 0xb
call fcn.0042341c
jmp 0x42bbd2
call fcn.00460700
test al, al
je 0x42bb5e
cmp byte [0x75dcc0], 6
jb 0x42bb5e
cmp dword [esp + 0x38], 0
je 0x42bb5e
cmp dword [0x75fd5c], 0
je 0x42bab5
push 0x75fd4c
push str.content_offer_url
lea ecx, [esp + 0x48]
call fcn.0045c086
xor eax, eax
lea ecx, [esp + 0x40]
cmp byte [0x73b001], al
setne al
push eax
push str.default_offer
call fcn.0045bf3f
xor eax, eax
lea ecx, [esp + 0x40]
cmp byte [0x791a9b], al
setne al
push eax
push str.launch_plus_app
call fcn.0045bf3f
lea eax, [esp + 0x140]
push eax
push str.exe_path
lea ecx, [esp + 0x48]
call fcn.0045c09f
movzx eax, byte [0x75f2ae]
lea ecx, [esp + 0x40]
push eax
push str.auto_start
call fcn.0045bf3f
movzx eax, byte [0x75f182]
lea ecx, [esp + 0x40]
push eax
push str.notify_update
call fcn.0045bf3f
cmp byte [0x73b002], 0
jne 0x42bb44
push 1
push str.attempted_to_receive_server_search_url
lea ecx, [esp + 0x48]
call fcn.0045bf3f
lea eax, [esp + 0x40]
push eax
push dword [esp + 0xd8c]
push dword [esp + 0xd8c]
call fcn.0043049d
jmp 0x42bbd7
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x20]
call fcn.004249e7
lea eax, [esp + 0x1c]
mov byte [esp + 0xd78], 0x19
push eax
mov ecx, 0x75efd8
call fcn.0046f6d8
push ebx
push 1
lea ecx, [esp + 0x24]
mov byte [esp + 0xd80], 0xb
call fcn.0042341c
push 6
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x148]
push eax
call fcn.0046ca28
push ebx
push ebx
push ebx
push ebx
push 0x75f988
push 0x104
lea eax, [esp + 0x568]
push eax
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationW]
call fcn.004703fb
call fcn.00433cb7
push ebx
push 1
lea ecx, [esp + 0xa0]
mov edi, esi
call fcn.0042341c
push ebx
push 1
lea ecx, [esp + 0x88]
call fcn.0042341c
mov dword [esp + 0x40], 0x689888
lea ecx, [esp + 0x40]
mov byte [esp + 0xd78], 0x1a
call fcn.0045b86a
push ebx
push 1
lea ecx, [esp + 0xda0]
mov dword [esp + 0x48], 0x68987c
call fcn.0040a0e9
mov ecx, dword [esp + 0xd70]
mov eax, edi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
leave
ret 0x34