Function at 0x422ba0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x485c03
mov eax, dword fs:[0]
push eax
sub esp, 0x45c
mov eax, dword [0x4ace78]
xor eax, esp
mov dword [esp + 0x458], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ace78]
xor eax, esp
push eax
lea eax, [esp + 0x470]
mov dword fs:[0], eax
push 0x104
lea eax, [esp + 0x268]
xor ebp, ebp
push eax
push ebp
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov word [esp + 0x58], ax
call fcn.0044ba42
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x422c2e
push 0x80004005
call fcn.00401280
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x18], edi
lea ecx, [esp + 0x24]
mov dword [esp + 0x478], ebp
call fcn.00452d37
push ebp
push 0x30
lea ecx, [esp + 0x26c]
push ecx
lea ecx, [esp + 0x30]
mov byte [esp + 0x484], 1
call fcn.004531c5
test eax, eax
jne 0x422c9e
lea ecx, [esp + 0x24]
mov byte [esp + 0x478], al
call fcn.00452e3f
lea eax, [edi - 0x10]
mov dword [esp + 0x478], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x422f7d
lea ecx, [esp + 0x5c]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [esp + 0x24]
call fcn.00452c22
push ebp
mov esi, eax
lea edx, [esi - 0xc]
push ebp
push edx
lea ecx, [esp + 0x30]
call fcn.00452aba
push 0xc
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x2c]
call fcn.00452a2b
push str.QUpdaterZip1
lea ecx, [esp + 0x40]
call fcn.00401ba0
lea ecx, [esp + 0x40]
push ecx
mov ebx, 1
push eax
mov byte [esp + 0x480], 2
mov dword [esp + 0x24], ebx
call fcn.00408870
add esp, 8
test al, al
jne 0x422d33
push str.QUpdaterZip0
lea ecx, [esp + 0x3c]
call fcn.00401ba0
lea edx, [esp + 0x40]
push edx
push eax
mov ebx, 3
call fcn.00408870
add esp, 8
mov byte [esp + 0x17], 0
test al, al
je 0x422d38
mov byte [esp + 0x17], 1
test bl, 2
je 0x422d64
mov eax, dword [esp + 0x38]
and ebx, 0xfffffffd
add eax, 0xfffffff0
mov dword [esp + 0x1c], ebx
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422d64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x478], 1
test bl, 1
je 0x422d94
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422d94
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
jne 0x422da9
lea ecx, [esp + 0x24]
call fcn.00452cd1
jmp 0x422f55
push ebp
lea ecx, [esi - 0x10]
push ebp
push ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], ebp
call fcn.00452aba
push 4
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x2c]
call fcn.00452a2b
push ebp
push ebp
add esi, 0xffffffec
push esi
lea ecx, [esp + 0x30]
call fcn.00452aba
push 4
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x2c]
call fcn.00452a2b
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x1c]
push str._s__package4qupdater.tmp
push edx
call fcn.00403ae0
add esp, 0xc
push 0x48bf08
push 0x48bf00
lea ecx, [esp + 0x20]
call fcn.00403690
mov edi, dword [esp + 0x18]
push edi
call fcn.0040bf00
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
push eax
push ecx
lea edx, [esp + 0x30]
push edi
push edx
call fcn.0041c780
add esp, 0x14
test eax, eax
jne 0x422e95
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x1c]
push str._s__package4qupdater.tmp
push ecx
call fcn.00403ae0
add esp, 0xc
push 0x48bf08
push 0x48bf00
lea ecx, [esp + 0x20]
call fcn.00403690
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x2c]
push edi
push ecx
call fcn.0041c780
add esp, 0x10
test eax, eax
jne 0x422e95
push ebp
push ebp
push str.Find_some_wrong_in_this_update_package_
call fcn.00450c37
call fcn.0044ba42
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x422eaf
push 0x80004005
call fcn.00401280
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x20]
push str._s__list4qupdater.tmp
push edx
mov byte [esp + 0x484], 3
call fcn.00403ae0
add esp, 0xc
push 0x48bf08
push 0x48bf00
lea ecx, [esp + 0x24]
call fcn.00403690
mov esi, dword [esp + 0x1c]
push esi
call fcn.0040bf00
push esi
push str.dwonlist
push edi
call fcn.00421890
add esp, 0x10
push esi
mov ecx, 0x4ae448
call fcn.00413ff0
mov ecx, 0x4ae448
call fcn.00414920
push esi
call fcn.0040bf00
add esp, 4
lea ecx, [esp + 0x24]
call fcn.00452cd1
lea eax, [esi - 0x10]
mov byte [esp + 0x478], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422f55
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x478], 0
call fcn.00452e3f
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x478], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422f89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0x470]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x458]
xor ecx, esp
call fcn.0046b9a8
add esp, 0x468
ret