Function at 0x420051
Capabilities:
Get common file path
Get disk size

Disassembly:
push 0x2b4
mov eax, 0x528c77
call fcn.004e27d2
mov edi, ecx
mov eax, dword [ebp + 0xc]
or eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
push 1
pop ebx
je 0x420477
mov ebx, 0x554928
lea ecx, [ebp - 0x248]
push ebx
call fcn.004099b0
and dword [ebp - 4], 0
lea ecx, [ebp - 0x230]
push ebx
call fcn.004099b0
mov ebx, 0x104
mov byte [ebp - 4], 1
push ebx
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004fb430
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
lea eax, [ebp - 0x218]
push eax
call fcn.00401963
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00402310
push 2
push 0
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x248]
call fcn.00402170
push eax
lea ecx, [ebp - 0x230]
call fcn.004021ad
xor ebx, ebx
lea ecx, [ebp - 0x278]
push 0
inc ebx
push ebx
call fcn.00402226
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x280]
push 0
push 0
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_GetDiskFreeSpaceExW]
test eax, eax
je 0x42029e
mov ecx, dword [ebp - 0x27c]
cmp ecx, dword [ebp + 0x10]
ja 0x42029e
mov eax, dword [ebp - 0x280]
jb 0x42015f
cmp eax, dword [ebp + 0xc]
ja 0x42029e
push ecx
push ecx
push str.int___thiscall_InstallUIMainWnd::EnoughFreeSpace_bool___int64_unsigned___int64__
push 0x9cc
push str........._srcCommoninstall_ui_mainwnd.cpp
mov dword [esi + 4], ecx
lea ecx, [ebp - 0x2c0]
push 0x80
mov dword [esi], eax
call fcn.004064f1
push str.default
push ebx
push eax
mov byte [ebp - 4], 2
call fcn.00406584
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x4201e7
push str._PC_space_not_enough1:
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x4201e7
lea eax, [ebp - 0x280]
push eax
lea ecx, [esi + 0x20]
call fcn.004189a5
cmp byte [esi + 0x1c], 0
je 0x4201e7
push 0x55bd6c
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x4201e7
lea eax, [ebp + 0xc]
push eax
lea ecx, [esi + 0x20]
call fcn.0040f74a
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x294]
call fcn.00409846
xor edi, edi
mov byte [ebp - 4], bl
push edi
push str.DL008
push str.FlowError
mov esi, str.Other
push esi
call fcn.0043200e
mov ecx, eax
call fcn.0043206a
push dword [ebp - 0x27c]
lea ecx, [ebp - 0x260]
push dword [ebp - 0x280]
call fcn.004191c7
push eax
mov edx, str.download_
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x278]
call fcn.0042771d
add esp, 0xc
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], 0x10
jb 0x420268
mov eax, dword [eax]
push edi
push eax
push str.NoEnoughSpace
push esi
call fcn.0043200e
mov ecx, eax
call fcn.0043206a
push edi
push ebx
lea ecx, [ebp - 0x278]
call fcn.0040c02b
push edi
push ebx
lea ecx, [ebp - 0x260]
call fcn.0040c02b
or esi, 0xffffffff
jmp 0x42043d
lea eax, [ebp - 0x248]
mov ecx, edi
push eax
call fcn.0041addc
push 2
xor edi, edi
lea eax, [ebp - 0x260]
push edi
push eax
lea ecx, [ebp - 0x248]
call fcn.00402170
mov edx, eax
lea ecx, [ebp - 0x230]
call fcn.004279aa
push edi
push 1
lea ecx, [ebp - 0x260]
mov bl, al
call fcn.00402226
xor eax, eax
lea ecx, [ebp - 0x248]
test bl, bl
push 2
setne al
add eax, 2
mov dword [ebp - 0x284], eax
lea eax, [ebp - 0x260]
push edi
push eax
call fcn.00402170
push eax
lea ecx, [ebp - 0x230]
call fcn.004021ad
xor ebx, ebx
lea ecx, [ebp - 0x260]
push edi
inc ebx
push ebx
call fcn.00402226
cmp dword [ebp - 0x21c], 8
lea ecx, [ebp - 0x280]
push edi
push edi
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_GetDiskFreeSpaceExW]
test eax, eax
je 0x42045d
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push dword [ebp - 0x284]
call fcn.004e2890
mov edi, dword [ebp - 0x27c]
cmp edi, edx
ja 0x42045b
mov ecx, dword [ebp - 0x280]
jb 0x42037d
cmp ecx, eax
ja 0x42045b
push ecx
push ecx
push str.int___thiscall_InstallUIMainWnd::EnoughFreeSpace_bool___int64_unsigned___int64__
push 0x9dc
push str........._srcCommoninstall_ui_mainwnd.cpp
mov dword [esi], ecx
lea ecx, [ebp - 0x2c0]
push 0x80
mov dword [esi + 4], edi
mov dword [ebp - 0x288], eax
mov dword [ebp - 0x284], edx
call fcn.004064f1
push str.default
push ebx
push eax
mov byte [ebp - 4], 6
call fcn.00406584
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x420414
push str._PC_space_not_enough2:
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x420414
lea eax, [ebp - 0x280]
push eax
lea ecx, [esi + 0x20]
call fcn.004189a5
cmp byte [esi + 0x1c], 0
je 0x420414
push 0x55bd6c
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x420414
lea eax, [ebp - 0x288]
push eax
lea ecx, [esi + 0x20]
call fcn.0040f74a
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2c0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x294]
call fcn.00409846
push 0xfffffffffffffffe
pop esi
xor edi, edi
push edi
push ebx
lea ecx, [ebp - 0x230]
call fcn.00402226
push edi
push ebx
lea ecx, [ebp - 0x248]
call fcn.00402226
mov eax, esi
jmp 0x420479
xor edi, edi
push edi
push ebx
lea ecx, [ebp - 0x230]
call fcn.00402226
push edi
push ebx
lea ecx, [ebp - 0x248]
call fcn.00402226
mov eax, ebx
call fcn.004e277c
ret 0x10