Function at 0x4042b0
Capabilities:
Check if file exists
Create directory
Delete file
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7481c4
mov eax, dword fs:[0]
push eax
sub esp, 0x680
mov eax, dword [0x8606e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [ebp - 0x684]
call fcn.00411bf0
lea ecx, [ebp - 0x264]
mov dword [ebp - 4], 0
push ecx
mov ecx, dword [eax]
call fcn.004128b0
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x680]
test esi, esi
je 0x40432f
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x40432f
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x40432f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 2
call fcn.004052e0
push 6
xor eax, eax
mov dword [ebp - 0x220], 7
push 0x81ff5c
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x224], 0
mov word [ebp - 0x234], ax
call fcn.004083b0
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 4
call fcn.00405540
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x220]
cmp eax, 8
jb 0x40439e
inc eax
lea ecx, [ebp - 0x234]
push eax
push dword [ebp - 0x234]
call fcn.00409480
mov ebx, dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 3
push 0x7e8
push dword [edi]
call ebx
cmp dword [ebp - 0x250], 8
lea eax, [ebp - 0x264]
cmovae eax, dword [ebp - 0x264]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x404403
cmp dword [ebp - 0x250], 8
lea eax, [ebp - 0x264]
push 0
cmovae eax, dword [ebp - 0x264]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x404403
push 0x82008c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x404ff1
push 0x20a
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.0062ff20
xor eax, eax
mov dword [ebp - 0x268], 7
add esp, 0xc
mov dword [ebp - 0x26c], 0
mov word [ebp - 0x27c], ax
cmp word [ebp - 0x21c], ax
jne 0x404443
xor ecx, ecx
jmp 0x40445f
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404450
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x27c]
call fcn.004083b0
push 3
lea eax, [ebp - 0x46c]
mov byte [ebp - 4], 5
push str.7z.dll
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], eax
call fcn.004092d0
mov byte [ebp - 4], 6
xor eax, eax
mov edx, dword [ebp - 0x470]
mov dword [ebp - 0x2b0], 7
mov dword [ebp - 0x2b4], 0
mov word [ebp - 0x2c4], ax
cmp word [edx], ax
jne 0x4044c4
xor ecx, ecx
jmp 0x4044df
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4044d0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c4]
call fcn.004083b0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x46c]
mov eax, dword [ebp - 0x470]
cmp eax, ecx
je 0x404509
push eax
call fcn.0063302c
add esp, 4
cmp dword [ebp - 0x26c], 0
jne 0x4045f4
push str._tmp_
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x24c]
call fcn.0040a2b0
lea ecx, [ebp - 0x2c4]
mov byte [ebp - 4], 9
push ecx
mov edx, eax
lea ecx, [ebp - 0x234]
call fcn.0040a430
add esp, 8
mov esi, eax
lea eax, [ebp - 0x27c]
cmp eax, esi
je 0x40459a
mov eax, dword [ebp - 0x268]
cmp eax, 8
jb 0x404571
inc eax
lea ecx, [ebp - 0x27c]
push eax
push dword [ebp - 0x27c]
call fcn.00409480
xor eax, eax
mov dword [ebp - 0x268], 7
push esi
lea ecx, [ebp - 0x27c]
mov dword [ebp - 0x26c], 0
mov word [ebp - 0x27c], ax
call fcn.004085d0
mov eax, dword [ebp - 0x220]
cmp eax, 8
jb 0x4045b8
inc eax
lea ecx, [ebp - 0x234]
push eax
push dword [ebp - 0x234]
call fcn.00409480
xor eax, eax
mov byte [ebp - 4], 8
mov word [ebp - 0x234], ax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], 0
cmp eax, 8
jb 0x404644
inc eax
lea ecx, [ebp - 0x24c]
push eax
push dword [ebp - 0x24c]
jmp 0x40463f
lea eax, [ebp - 0x2c4]
mov edx, 0x81fcb8
push eax
lea ecx, [ebp - 0x234]
call fcn.0040a1a0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x27c]
mov byte [ebp - 4], 0xb
call fcn.00409660
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x220]
cmp eax, 8
jb 0x404644
inc eax
lea ecx, [ebp - 0x234]
push eax
push dword [ebp - 0x234]
call fcn.00409480
push 3
lea eax, [ebp - 0x674]
push 0x8200b4
lea ecx, [ebp - 0x678]
mov dword [ebp - 0x678], eax
call fcn.004092d0
mov byte [ebp - 4], 0xc
xor eax, eax
mov edx, dword [ebp - 0x678]
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], 0
mov word [ebp - 0x234], ax
cmp word [edx], ax
jne 0x404692
xor ecx, ecx
jmp 0x4046a6
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404697
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x234]
call fcn.004083b0
push 3
lea eax, [ebp - 0x570]
mov byte [ebp - 4], 0xd
push str.IXY_DLL_7Z
lea ecx, [ebp - 0x574]
mov dword [ebp - 0x574], eax
call fcn.004092d0
mov byte [ebp - 4], 0xe
xor eax, eax
mov edx, dword [ebp - 0x574]
mov dword [ebp - 0x238], 7
mov dword [ebp - 0x23c], 0
mov word [ebp - 0x24c], ax
cmp word [edx], ax
jne 0x404705
xor ecx, ecx
jmp 0x40471f
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404710
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x24c]
call fcn.004083b0
lea eax, [ebp - 0x27c]
push eax
lea edx, [ebp - 0x234]
lea ecx, [ebp - 0x24c]
call fcn.00406a00
add esp, 4
test al, al
mov eax, dword [ebp - 0x238]
sete byte [ebp - 0x679]
cmp eax, 8
jb 0x40476e
inc eax
lea ecx, [ebp - 0x24c]
push eax
push dword [ebp - 0x24c]
call fcn.00409480
xor eax, eax
mov dword [ebp - 0x238], 7
mov word [ebp - 0x24c], ax
lea ecx, [ebp - 0x570]
mov eax, dword [ebp - 0x574]
mov dword [ebp - 0x23c], 0
cmp eax, ecx
je 0x4047a4
push eax
call fcn.0063302c
add esp, 4
mov eax, dword [ebp - 0x220]
cmp eax, 8
jb 0x4047c2
inc eax
lea ecx, [ebp - 0x234]
push eax
push dword [ebp - 0x234]
call fcn.00409480
xor eax, eax
mov byte [ebp - 4], 8
mov word [ebp - 0x234], ax
lea ecx, [ebp - 0x674]
mov eax, dword [ebp - 0x678]
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], 0
cmp eax, ecx
je 0x4047fc
push eax
call fcn.0063302c
add esp, 4
cmp byte [ebp - 0x679], 0
je 0x404862
cmp dword [edi], 0
je 0x404fdb
push 0x18
call fcn.004ccd6b
add esp, 4
mov dword [ebp - 0x680], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x404836
push 0x8200c4
mov ecx, eax
call fcn.00406dc0
mov esi, eax
jmp 0x404838
xor esi, esi
push 0
push esi
push 0x7ea
push dword [edi]
call ebx
test eax, eax
jne 0x404fdb
test esi, esi
je 0x404fdb
push 1
mov ecx, esi
call fcn.004051c0
jmp 0x404fdb
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x2ac]
call fcn.00406dc0
push 3
lea eax, [ebp - 0x674]
mov byte [ebp - 4], 0x10
push str.InstallationFiles.7z
lea ecx, [ebp - 0x678]
mov dword [ebp - 0x678], eax
call fcn.004092d0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x324]
push dword [ebp - 0x678]
call fcn.00406dc0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x674]
mov eax, dword [ebp - 0x678]
cmp eax, ecx
je 0x4048c8
push eax
call fcn.0063302c
add esp, 4
cmp dword [ebp - 0x29c], 0
jne 0x404921
push str._tmp_
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x234]
call fcn.0040a2b0
lea ecx, [ebp - 0x324]
mov byte [ebp - 4], 0x14
push ecx
mov edx, eax
lea ecx, [ebp - 0x294]
call fcn.0040a430
add esp, 8
lea ecx, [ebp - 0x2ac]
push eax
call fcn.00406d40
lea ecx, [ebp - 0x294]
call fcn.00406d00
lea ecx, [ebp - 0x234]
jmp 0x404955
lea eax, [ebp - 0x324]
mov edx, 0x81fcb8
push eax
lea ecx, [ebp - 0x294]
call fcn.0040a1a0
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0x15
call fcn.00409660
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0x13
call fcn.00406d00
push 3
lea eax, [ebp - 0x46c]
push 0x8200b4
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], eax
call fcn.004092d0
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x24c]
push dword [ebp - 0x470]
call fcn.00406dc0
push 3
lea eax, [ebp - 0x570]
mov byte [ebp - 4], 0x17
push str.IXY_PACKAGE
lea ecx, [ebp - 0x574]
mov dword [ebp - 0x574], eax
call fcn.004092d0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x234]
push dword [ebp - 0x574]
call fcn.00406dc0
lea eax, [ebp - 0x2ac]
push eax
lea edx, [ebp - 0x24c]
lea ecx, [ebp - 0x234]
call fcn.00406a00
add esp, 4
lea ecx, [ebp - 0x234]
test al, al
sete byte [ebp - 0x679]
call fcn.00406d00
mov eax, dword [ebp - 0x574]
lea ecx, [ebp - 0x570]
cmp eax, ecx
je 0x404a10
push eax
call fcn.0063302c
add esp, 4
lea ecx, [ebp - 0x24c]
call fcn.00406d00
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x46c]
mov eax, dword [ebp - 0x470]
cmp eax, ecx
je 0x404a38
push eax
call fcn.0063302c
add esp, 4
cmp byte [ebp - 0x679], 0
je 0x404a9e
cmp dword [edi], 0
je 0x404fc5
push 0x18
call fcn.004ccd6b
add esp, 4
mov dword [ebp - 0x680], eax
mov byte [ebp - 4], 0x19
test eax, eax
je 0x404a72
push 0x820104
mov ecx, eax
call fcn.00406dc0
mov esi, eax
jmp 0x404a74
xor esi, esi
push 0
push esi
push 0x7ea
push dword [edi]
call ebx
test eax, eax
jne 0x404fc5
test esi, esi
je 0x404fc5
push 1
mov ecx, esi
call fcn.004051c0
jmp 0x404fc5
xor eax, eax
mov dword [ebp - 0x2e0], 7
push 0xffffffffffffffff
push eax
mov word [ebp - 0x2f4], ax
lea ecx, [ebp - 0x2f4]
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x2e4], 0
push eax
call fcn.004084b0
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x2f4]
mov eax, dword [edi]
mov dword [0x8902d0], eax
lea eax, [ebp - 0x264]
push eax
lea eax, [ebp - 0x2ac]
mov dword [0x8902cc], 3
push eax
mov dword [0x866b40], 0x5a
call fcn.00413450
test al, al
jne 0x404b69
cmp dword [edi], 0
je 0x404fba
push 0x18
call fcn.004ccd6b
add esp, 4
mov dword [ebp - 0x680], eax
mov byte [ebp - 4], 0x1b
test eax, eax
je 0x404b3d
push 0x820120
mov ecx, eax
call fcn.00406dc0
mov esi, eax
jmp 0x404b3f
xor esi, esi
push 0
push esi
push 0x7ea
push dword [edi]
call ebx
test eax, eax
jne 0x404fba
test esi, esi
je 0x404fba
push 1
mov ecx, esi
call fcn.004051c0
jmp 0x404fba
cmp dword [ebp - 0x268], 8
lea eax, [ebp - 0x27c]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmovae eax, dword [ebp - 0x27c]
push eax
call esi
cmp dword [ebp - 0x298], 8
lea eax, [ebp - 0x2ac]
cmovae eax, dword [ebp - 0x2ac]
push eax
call esi
lea ecx, [ebp - 0x684]
call fcn.00411bf0
mov byte [ebp - 4], 0x1c
mov ecx, dword [eax]
call fcn.00412620
lea ecx, [ebp - 0x684]
mov byte [ebp - 0x679], al
mov byte [ebp - 4], 0x1a
call fcn.00406b60
cmp byte [ebp - 0x679], 0
je 0x404c0b
lea ecx, [ebp - 0x684]
call fcn.00411bf0
mov byte [ebp - 4], 0x1d
mov ecx, dword [eax]
call fcn.00412720
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 0x1a
mov bl, al
call fcn.00406b60
lea edx, [ebp - 0x264]
mov cl, bl
call fcn.00403d10
mov ebx, dword [sym.imp.USER32.dll_PostMessageW]
lea ecx, [ebp - 0x264]
call fcn.004055f0
push 0
push 0x5f
push 0x7e8
push dword [edi]
call ebx
lea ecx, [ebp - 0x264]
call fcn.00405b50
push 0
push 0x62
push 0x7e8
push dword [edi]
call ebx
lea ecx, [ebp - 0x264]
call fcn.004063d0
push 0
push 0x63
push 0x7e8
push dword [edi]
call ebx
push 0x81fcb8
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x294]
call fcn.0040a2b0
push 0x81ff44
mov edx, eax
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2dc]
call fcn.0040a3c0
add esp, 8
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0x20
call fcn.00406d00
lea ecx, [ebp - 0x684]
call fcn.00411bf0
lea ecx, [ebp - 0x36c]
mov byte [ebp - 4], 0x21
push ecx
mov ecx, dword [eax]
call fcn.004129f0
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 0x23
call fcn.00406b60
push str._e1
lea ecx, [ebp - 0x294]
call fcn.00406dc0
xor eax, eax
mov dword [ebp - 0x238], 7
mov dword [ebp - 0x23c], 0
mov word [ebp - 0x24c], ax
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], eax
mov word [ebp - 0x234], ax
lea eax, [ebp - 0x24c]
mov byte [ebp - 4], 0x26
push eax
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x234]
push eax
lea edx, [ebp - 0x36c]
lea ecx, [ebp - 0x2dc]
call fcn.00413950
add esp, 0xc
lea ecx, [ebp - 0x234]
call fcn.00406d00
lea ecx, [ebp - 0x24c]
call fcn.00406d00
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0x23
call fcn.00406d00
push 0
push 0x64
push 0x7e8
push dword [edi]
call ebx
lea ecx, [ebp - 0x354]
call fcn.0041b550
lea ecx, [ebp - 0x33c]
mov byte [ebp - 4], 0x27
call fcn.0041b6b0
sub esp, 0x28
mov byte [ebp - 4], 0x28
mov eax, esp
lea ecx, [ebp - 0x354]
lea edx, [ebp - 0x33c]
mov dword [eax], vtable.std::_Func_impl_class__lambda_74ef718f9f6ae461e1450559409159ae___class_std::allocator_int___void__class_PropertiesBase__.0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0x24], eax
call fcn.0042db90
add esp, 0x28
lea ecx, [ebp - 0x684]
mov esi, eax
call fcn.0042e360
mov byte [ebp - 4], 0x29
mov ecx, dword [eax]
push esi
call fcn.0042df30
lea ecx, [ebp - 0x684]
mov byte [ebp - 4], 0x28
call fcn.00406b60
push str.normal
lea ecx, [ebp - 0x30c]
call fcn.00406f90
cmp byte [ebp - 0x679], 0
mov byte [ebp - 4], 0x2a
je 0x404dfb
push str.slience
lea ecx, [ebp - 0x30c]
call fcn.00406e90
push str.install_success
lea ecx, [ebp - 0x294]
call fcn.00406f90
sub esp, 0x28
mov byte [ebp - 4], 0x2b
mov eax, esp
lea ecx, [ebp - 0x30c]
mov dword [eax], vtable.std::_Func_impl_class__lambda_6ee3ee9666d05f022e8caa47d7eacd50___class_std::allocator_int___void__class_PropertiesBase__.0
mov dword [eax + 4], ecx
mov dword [eax + 0x24], eax
call fcn.0042db90
add esp, 0x28
lea ecx, [ebp - 0x68c]
mov esi, eax
call fcn.0042e360
push esi
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0x2c
push ecx
mov ecx, dword [eax]
call fcn.0042dfe0
lea ecx, [ebp - 0x68c]
call fcn.00406b60
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0x2a
call fcn.00406ed0
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [ebp - 0x679], 0
je 0x404f76
lea ecx, [ebp - 0x68c]
call fcn.00411bf0
mov byte [ebp - 4], 0x2d
mov ecx, dword [eax]
call fcn.00412970
lea ecx, [ebp - 0x68c]
mov byte [ebp - 4], 0x2a
mov bl, al
call fcn.00406b60
test bl, bl
je 0x404f70
cmp dword [ebp - 0x2c8], 8
lea eax, [ebp - 0x2dc]
cmovae eax, dword [ebp - 0x2dc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404f70
push str._c_Start_____
lea ecx, [ebp - 0x24c]
call fcn.00406dc0
push 0x81ff44
mov edx, eax
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x294]
call fcn.0040a3c0
push 0x81ff40
mov edx, eax
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x234]
call fcn.0040a3c0
add esp, 8
lea ecx, [ebp - 0x294]
call fcn.00406d00
lea ecx, [ebp - 0x24c]
call fcn.00406d00
cmp dword [ebp - 0x250], 8
lea ecx, [ebp - 0x264]
push 0
cmovae ecx, dword [ebp - 0x264]
lea eax, [ebp - 0x234]
cmp dword [ebp - 0x220], 8
push ecx
cmovae eax, dword [ebp - 0x234]
push eax
push 0x820184
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x234]
call fcn.00406d00
mov ebx, dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 0
push 0x7e9
push dword [edi]
call ebx
lea ecx, [ebp - 0x30c]
call fcn.00406ed0
lea ecx, [ebp - 0x33c]
call fcn.00406ed0
lea ecx, [ebp - 0x354]
call fcn.00406ed0
lea ecx, [ebp - 0x36c]
call fcn.00406d00
lea ecx, [ebp - 0x2dc]
call fcn.00406d00
lea ecx, [ebp - 0x2f4]
call fcn.00406d00
lea ecx, [ebp - 0x324]
call fcn.00406d00
lea ecx, [ebp - 0x2ac]
call fcn.00406d00
lea ecx, [ebp - 0x2c4]
call fcn.00406d00
lea ecx, [ebp - 0x27c]
call fcn.00406d00
mov eax, dword [ebp - 0x250]
cmp eax, 8
jb 0x40500f
inc eax
lea ecx, [ebp - 0x264]
push eax
push dword [ebp - 0x264]
call fcn.00409480
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ccd8f
mov esp, ebp
pop ebp
ret