Function at 0x422b30
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4544b1
mov eax, dword fs:[0]
push eax
sub esp, 0x130
mov eax, dword [0x4652b0]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
mov eax, dword [0x4652b0]
xor eax, esp
push eax
lea eax, [esp + 0x140]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x28]
lea edi, [esi + 0x28]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
mov ebx, 0x104
sub eax, ebx
or eax, ecx
mov dword [esp + 0x10], edi
jge 0x422b9e
mov ecx, ebx
mov eax, edi
call fcn.00404d80
mov eax, dword [edi]
cmp dword [eax - 8], ebx
jge 0x422baf
push 0x80070057
call fcn.004059f0
mov dword [eax - 0xc], ebx
mov ecx, dword [edi]
push eax
push ebx
mov byte [ecx + 0x104], 0
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x422bda
push ecx
push eax
call fcn.0043ecbd
add esp, 8
test eax, eax
jl 0x422ba5
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x422ba5
mov dword [ecx - 0xc], eax
mov edx, dword [edi]
mov byte [eax + edx], 0
call fcn.00423240
lea ebx, [esi + 0x2c]
mov eax, edi
call fcn.004044d0
lea edi, [esi + 0x13c]
test edi, edi
jne 0x422c07
xor eax, eax
jmp 0x422c19
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x422c10
sub eax, edx
push edi
push ebx
mov edx, eax
call fcn.00404c50
push str.install.7z
push ebx
mov edx, 0xa
call fcn.00404c50
mov eax, dword [ebx]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, esi
call fcn.00422e70
test eax, eax
je 0x422e3d
push 0x103
lea eax, [esp + 0x31]
push 0
push eax
mov byte [esp + 0x38], 0
call fcn.00443400
mov eax, dword [ebx]
lea edx, [esp + 0x38]
add esp, 0xc
sub edx, eax
jmp 0x422c70
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x422c70
mov ecx, dword [ebx]
push ecx
push 0x459cdc
push 0x40
call fcn.004025a0
add esp, 0xc
lea edx, [esp + 0x2c]
lea eax, [esi + 8]
push edx
push eax
mov dword [esp + 0x24], eax
call fcn.00424e00
test eax, eax
jne 0x422cbb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [ebx]
push eax
push str.Open_zip_file__s_fail_err_d
push 0x40
call fcn.004025a0
add esp, 0x10
xor eax, eax
lea edx, [esp + 0x20]
mov dword [esp + 0x21], eax
mov dword [esp + 0x25], eax
mov byte [esp + 0x29], al
mov byte [esp + 0x20], 0
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x422cd6
lea edi, [esp + 0x20]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x422ce5
mov ecx, dword [0x459d14]
mov ebx, dword [esp + 0x10]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
mov dword [edi], ecx
push eax
mov ecx, ebx
call fcn.00423660
lea ecx, [esp + 0x18]
push 0x4581b8
push ecx
mov ecx, eax
mov dword [esp + 0x158], 0
call fcn.00423660
mov ecx, dword [eax]
lea edi, [esi + 0x30]
add esp, 0x10
mov edx, edi
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x422d30
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x422d5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x148], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422d85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.00423660
push 0
mov dword [esp + 0x154], 1
mov eax, dword [eax]
push 1
push eax
call section..text
or ebx, 0xffffffff
mov dword [esp + 0x15c], ebx
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0x14
lea ecx, [eax + 0xc]
mov edx, ebx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x422dd9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov ecx, 0x4581a0
call fcn.004235c0
push ecx
mov dword [esp + 0x150], 2
mov edx, esp
mov dword [esp + 0x18], esp
push edx
mov ecx, 0x4581a0
call fcn.004235c0
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov esi, dword [esp + 0x24]
push eax
push ecx
push edi
mov ecx, esi
mov dword [esp + 0x15c], ebx
call fcn.004254e0
mov ecx, esi
call fcn.00424f70
push str.rsinstall:_CInstallProc::ExtractPreInstallFiles_end
push 0x40
call fcn.004025a0
add esp, 8
mov eax, 1
mov ecx, dword [esp + 0x140]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.0043defc
mov esp, ebp
pop ebp
ret