Function at 0x42d250
Capabilities:
Copy file
Create process on windows
Delete file
Get common file path
Get graphical window text
Persist via lnk shortcut
Resolve function by parsing pe exports
Set file attributes

Disassembly:
mov eax, dword [0x483978]
sub esp, 0xf20
mov ecx, dword [eax - 0xc]
push ebx
push ebp
push esi
test ecx, ecx
push edi
jl 0x42d276
mov dword [esp + 0x34], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x42d28a
mov ecx, dword [0x46b21c]
push eax
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x38]
call fcn.00402e60
mov ebp, dword [esp + 0xf34]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0
push 0xf0
push 0x3f3
push ebp
call ebx
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
call esi
push 0
push 0
push 0xf0
push 0x40c
push ebp
mov dword [esp + 0x68], eax
call ebx
push eax
call esi
push 0
push 0
push 0xf0
push 0x410
push ebp
mov dword [esp + 0x74], eax
call ebx
push eax
call esi
push 0
push 0
push 0xf0
push 0x412
push ebp
mov dword [esp + 0x90], eax
call ebx
push eax
call esi
push 0
push 0
push 0xf0
push 0x416
push ebp
mov dword [esp + 0x6c], eax
call ebx
push eax
call esi
mov edx, dword [0x4837e4]
mov dword [esp + 0x44], eax
mov ecx, 0x213
xor eax, eax
lea edi, [esp + 0x6e4]
mov dword [esp + 0x6e0], edx
rep stosd dword es:[edi], eax
lea eax, [esp + 0x6e0]
push 0x400
push eax
push 0x3e8
push ebp
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov ecx, dword [0x46b21c]
lea edx, [esp + 0x6e0]
test edx, edx
mov dword [esp + 0x24], ecx
je 0x42d3ca
lea eax, [esp + 0x6e0]
shr eax, 0x10
jne 0x42d38a
xor ecx, ecx
lea edx, [esp + 0x6e0]
mov cx, dx
push ecx
lea ecx, [esp + 0x28]
call fcn.00402fe0
jmp 0x42d3ca
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [esp + 0x6e0]
push eax
call edi
mov esi, eax
test esi, esi
je 0x42d3d0
push esi
lea ecx, [esp + 0x28]
call fcn.00401ce0
test eax, eax
je 0x42d3d0
mov edi, dword [esp + 0x24]
lea ecx, [esi + esi]
mov edx, ecx
lea esi, [esp + 0x6e0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [esp + 0x24]
push eax
call fcn.004322a0
mov ecx, dword [esp + 0x28]
add esp, 4
push ecx
push 0x3e8
push ebp
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov edx, dword [esp + 0x24]
push edx
call fcn.0042f980
mov eax, dword [esp + 0x28]
mov ecx, esp
mov edx, dword [eax - 0xc]
test edx, edx
jl 0x42d41a
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x42d42c
mov edx, dword [0x46b21c]
mov dword [ecx], edx
mov eax, dword [esp + 0x28]
push eax
call fcn.00402e60
call fcn.0041cbc0
add esp, 4
cmp eax, 2
je 0x42d625
mov ecx, dword [0x46b21c]
mov edx, 0x46c148
test edx, edx
mov dword [esp + 0x10], ecx
je 0x42d4a3
mov eax, edx
shr eax, 0x10
jne 0x42d468
xor ecx, ecx
mov cx, dx
push ecx
lea ecx, [esp + 0x14]
call fcn.00402fe0
jmp 0x42d4a3
push 0x46c148
call edi
mov esi, eax
test esi, esi
je 0x42d4a3
push esi
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x42d4a3
mov edi, dword [esp + 0x10]
lea ecx, [esi + esi]
mov eax, ecx
mov esi, 0x46c148
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xd5
call fcn.00434070
mov ecx, dword [0x46b21c]
mov esi, eax
add esp, 4
mov dword [esp + 0x14], ecx
test esi, esi
je 0x42d4c3
push esi
call edi
mov ecx, dword [esp + 0x10]
push ecx
mov edx, dword [ecx - 8]
lea ecx, [esp + 0x18]
push edx
push esi
push eax
call fcn.00401eb0
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
push eax
call fcn.00429290
lea ecx, [esp + 0x14]
call fcn.00401e80
mov ecx, dword [0x46b21c]
lea edx, [esp + 0x6e0]
test edx, edx
mov dword [esp + 0x2c], ecx
jne 0x42d507
xor eax, eax
jmp 0x42d511
lea eax, [esp + 0x6e0]
push eax
call edi
lea ecx, [esp + 0x6e0]
push ecx
push eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.00401eb0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x1c]
push eax
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov ecx, dword [esp + 0x1c]
push 0
push 0
push ecx
push ebp
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x46b220]
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x42d584
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d584
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d5af
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d5af
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d5da
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d5da
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x24]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d605
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d605
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x34]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e9c5
add eax, 0xfffffff4
push eax
call esi
jmp 0x42e9b1
mov eax, dword [0x46b21c]
mov ecx, 0x46c140
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x42d63b
xor eax, eax
jmp 0x42d642
push 0x46c140
call edi
push 0x46c140
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x20]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x14]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x28]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, str..exe
test eax, eax
mov dword [esp + 0x2c], edx
je 0x42d6c7
push str..exe
call edi
push str..exe
push eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00401eb0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x28]
push edx
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov eax, dword [esp + 0x14]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d729
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d72f
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
jmp 0x42d72f
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d75a
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d75a
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [0x46b21c]
mov ecx, 0x46c140
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x42d770
xor eax, eax
jmp 0x42d777
push 0x46c140
call edi
push 0x46c140
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x20]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x14]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x28]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, str._Uninstall.ini
test eax, eax
mov dword [esp + 0x2c], edx
je 0x42d7fc
push str._Uninstall.ini
call edi
push str._Uninstall.ini
push eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00401eb0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x4c]
push edx
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov eax, dword [esp + 0x14]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d856
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d856
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d881
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d881
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [0x46b21c]
mov ecx, 0x46c140
test ecx, ecx
mov dword [esp + 0x18], eax
jne 0x42d897
xor eax, eax
jmp 0x42d89e
push 0x46c140
call edi
push 0x46c140
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x20]
push eax
mov edx, dword [eax - 8]
push edx
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x10]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x14]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x28]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, str..ini
test eax, eax
mov dword [esp + 0x2c], edx
je 0x42d923
push str..ini
call edi
push str..ini
push eax
mov eax, dword [esp + 0x1c]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00401eb0
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x48]
push edx
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov eax, dword [esp + 0x14]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d97d
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d97d
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42d9a8
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x42d9a8
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [0x46b21c]
mov ecx, 0x400
mov dword [esp + 0x3c], eax
mov dword [esp + 0x5c], eax
mov edx, dword [eax - 0xc]
lea ebx, [eax - 0xc]
cmp edx, 1
jg 0x42d9ca
cmp dword [eax - 4], ecx
jge 0x42da11
mov ebp, dword [eax - 8]
cmp ebp, ecx
jle 0x42d9d3
mov ecx, ebp
push ecx
lea ecx, [esp + 0x40]
call fcn.00401ce0
test eax, eax
je 0x42da11
mov edi, dword [esp + 0x3c]
lea ecx, [ebp + ebp + 2]
mov eax, ecx
lea esi, [ebx + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x40]
mov dword [ecx - 8], ebp
call fcn.004028a0
mov eax, dword [esp + 0x3c]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [esp + 0x3c]
call fcn.00401d40
mov edx, dword [esp + 0x3c]
push edx
call edi
mov ecx, dword [esp + 0x3c]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ecx - 8], eax
mov edx, dword [esp + 0x3c]
mov ecx, 0x46bdd0
mov word [edx + eax*2], 0
mov eax, dword [0x46b21c]
test ecx, ecx
mov dword [esp + 0x10], eax
je 0x42da8d
push ecx
call ebx
mov esi, eax
test esi, esi
je 0x42da8d
push esi
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x42da8d
mov edx, dword [esp + 0x10]
inc esi
push esi
push 0x46bdd0
push edx
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [0x46b21c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x40]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x24]
push edx
call fcn.00401eb0
lea eax, [esp + 0x18]
lea ecx, [esp + 0x2c]
push eax
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x30]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x28]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov eax, dword [esp + 0x2c]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x42db37
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42db3d
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
jmp 0x42db3d
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42db68
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42db68
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x44]
test eax, eax
je 0x42dbc2
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
cmp ecx, eax
je 0x42dbc2
mov edx, dword [ecx - 0xc]
test edx, edx
jge 0x42db90
mov edx, dword [0x46b220]
add ecx, 0xfffffff4
cmp ecx, edx
jne 0x42db97
mov ecx, dword [eax - 0xc]
test ecx, ecx
jge 0x42dba7
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x48]
call fcn.004027f0
jmp 0x42dbc2
lea ecx, [esp + 0x40]
call fcn.00402690
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [0x46b21c]
mov edx, 0x46b4b4
test edx, edx
mov dword [esp + 0x14], ecx
je 0x42dc0b
push edx
call ebx
mov esi, eax
test esi, esi
je 0x42dc0b
push esi
lea ecx, [esp + 0x18]
call fcn.00401ce0
test eax, eax
je 0x42dc0b
mov eax, dword [esp + 0x14]
inc esi
push esi
push 0x46b4b4
push eax
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x14]
push 0xffffffffffffffff
call fcn.00401f50
mov ecx, dword [0x46b21c]
mov edx, 0x46bdd0
test edx, edx
mov dword [esp + 0x10], ecx
je 0x42dc54
push edx
call ebx
mov esi, eax
test esi, esi
je 0x42dc54
push esi
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x42dc54
mov eax, dword [esp + 0x10]
inc esi
push esi
push 0x46bdd0
push eax
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
call fcn.00401f50
mov ecx, dword [0x46b21c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
push eax
mov edx, dword [eax - 8]
mov eax, dword [esp + 0x44]
push edx
push eax
mov eax, dword [eax - 8]
lea ecx, [esp + 0x24]
push eax
call fcn.00401eb0
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x24]
call fcn.00429290
lea ecx, [esp + 0x18]
call fcn.00401e80
mov edx, dword [0x46b21c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], edx
push eax
mov eax, dword [eax - 8]
push eax
mov eax, dword [esp + 0x28]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401eb0
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x30]
push edx
call fcn.00429290
lea ecx, [esp + 0x1c]
call fcn.00401e80
mov eax, dword [0x46b21c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax - 8]
mov eax, dword [esp + 0x34]
push ecx
push eax
mov edx, dword [eax - 8]
lea ecx, [esp + 0x38]
push edx
call fcn.00401eb0
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x50]
push eax
call fcn.00429290
lea ecx, [esp + 0x2c]
call fcn.00401e80
mov eax, dword [esp + 0x30]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42dd32
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42dd32
mov edx, dword [esp + 0x30]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x20]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42dd5d
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42dd5d
mov edx, dword [esp + 0x20]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42dd88
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42dd88
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x14]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42ddb3
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42ddb3
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [0x4837e4]
mov edx, dword [0x483a70]
mov dword [esp + 0xec], eax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xf0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xec]
push 0x104
push ecx
push edx
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, esp
mov edx, dword [eax - 0xc]
test edx, edx
jl 0x42de0b
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x42de1d
mov edx, dword [0x46b21c]
mov dword [ecx], edx
mov eax, dword [esp + 0x2c]
push eax
call fcn.00402e60
call fcn.0041cbc0
add esp, 4
cmp eax, 1
jne 0x42e543
push 0xd9
call fcn.00434070
mov ecx, dword [0x46b21c]
mov esi, eax
add esp, 4
mov dword [esp + 0x10], ecx
test esi, esi
je 0x42de94
mov edx, esi
shr edx, 0x10
jne 0x42de64
and esi, 0xffff
lea ecx, [esp + 0x10]
push esi
call fcn.00402fe0
jmp 0x42de94
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x42de94
push edi
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x42de94
lea ecx, [edi + edi]
mov edi, dword [esp + 0x10]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x28]
mov ecx, 0x46c0ac
test ecx, ecx
mov dword [esp + 0x18], esi
je 0x42e046
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push ecx
call edi
mov ebx, eax
test ebx, ebx
je 0x42e046
test esi, esi
jne 0x42dec6
mov dword [esp + 0x14], esi
jmp 0x42decd
push esi
call edi
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
xor edi, edi
mov edx, dword [esi - 8]
lea ebp, [esi + edx*2]
cmp esi, ebp
jae 0x42e046
push 0x46c0ac
push esi
call fcn.00459e1d
add esp, 8
test eax, eax
je 0x42df09
lea esi, [eax + ebx*2]
push 0x46c0ac
push esi
inc edi
call fcn.00459e1d
add esp, 8
test eax, eax
jne 0x42def3
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp esi, ebp
jb 0x42dee1
test edi, edi
jle 0x42e046
lea ecx, [esp + 0x10]
call fcn.00401d40
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
sub ebp, ebx
imul ebp, edi
mov eax, dword [esi - 8]
mov dword [esp + 0x20], eax
add ebp, eax
mov eax, dword [esi - 4]
mov dword [esp + 0x1c], ebp
cmp eax, ebp
jl 0x42df50
cmp dword [esi - 0xc], 1
jle 0x42df8e
lea eax, [esi - 0xc]
push ebp
lea ecx, [esp + 0x14]
mov dword [esp + 0x34], eax
call fcn.00401ce0
test eax, eax
je 0x42e046
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
push eax
mov ecx, dword [eax + 4]
shl ecx, 1
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004028a0
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 8]
lea eax, [esi + eax*2]
cmp esi, eax
mov dword [esp + 0x2c], eax
jae 0x42e043
push 0x46c0ac
push esi
call fcn.00459e1d
mov edi, eax
add esp, 8
test edi, edi
je 0x42e028
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, edi
sub ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 1
sub eax, ecx
lea esi, [edx + edx]
sub eax, ebx
lea ecx, [edi + ebx*2]
lea ebp, [eax + eax]
lea eax, [edi + esi]
push ebp
push ecx
push eax
mov dword [esp + 0x3c], eax
call fcn.0045a220
mov ecx, esi
mov esi, dword [esp + 0x24]
mov edx, ecx
mov eax, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
sub eax, ebx
and ecx, 3
push 0x46c0ac
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x40]
push esi
mov word [esi + ebp], 0
mov ebp, dword [esp + 0x34]
add ebp, eax
mov dword [esp + 0x34], ebp
call fcn.00459e1d
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x42dfb4
mov ebp, dword [esp + 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x2c]
cmp esi, eax
jb 0x42dfa0
mov esi, dword [esp + 0x10]
mov dword [esi - 8], ebp
mov ecx, 0x46dbf0
test ecx, ecx
je 0x42e1fc
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x42e1fc
mov edx, 0x46b42c
test edx, edx
jne 0x42e073
mov dword [esp + 0x14], edx
jmp 0x42e082
push 0x46b42c
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esi - 8]
lea ebp, [esi + eax*2]
cmp esi, ebp
jae 0x42e1fc
push 0x46dbf0
push esi
call fcn.00459e1d
add esp, 8
test eax, eax
je 0x42e0be
lea esi, [eax + ebx*2]
push 0x46dbf0
push esi
inc edi
call fcn.00459e1d
add esp, 8
test eax, eax
jne 0x42e0a8
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp esi, ebp
jb 0x42e096
test edi, edi
jle 0x42e1fc
lea ecx, [esp + 0x10]
call fcn.00401d40
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
sub ebp, ebx
imul ebp, edi
mov eax, dword [esi - 8]
mov dword [esp + 0x20], eax
add ebp, eax
mov eax, dword [esi - 4]
mov dword [esp + 0x18], ebp
cmp eax, ebp
jl 0x42e105
cmp dword [esi - 0xc], 1
jle 0x42e143
lea ecx, [esi - 0xc]
push ebp
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x42e1fc
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
push eax
mov ecx, dword [eax + 4]
shl ecx, 1
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.004028a0
mov esi, dword [esp + 0x10]
mov eax, dword [esi - 8]
lea eax, [esi + eax*2]
cmp esi, eax
mov dword [esp + 0x1c], eax
jae 0x42e1f9
push 0x46dbf0
push esi
call fcn.00459e1d
mov edi, eax
add esp, 8
test edi, edi
je 0x42e1de
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, edi
sub ecx, eax
mov eax, dword [esp + 0x20]
sar ecx, 1
sub eax, ecx
lea esi, [edx + edx]
sub eax, ebx
lea ecx, [edi + ebx*2]
lea ebp, [eax + eax]
lea eax, [edi + esi]
push ebp
push ecx
push eax
mov dword [esp + 0x3c], eax
call fcn.0045a220
mov ecx, esi
mov esi, 0x46b42c
mov edx, ecx
mov eax, dword [esp + 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
sub eax, ebx
and ecx, 3
push 0x46dbf0
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x40]
push esi
mov word [esi + ebp], 0
mov ebp, dword [esp + 0x34]
add ebp, eax
mov dword [esp + 0x34], ebp
call fcn.00459e1d
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x42e169
mov ebp, dword [esp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea esi, [esi + eax*2 + 2]
mov eax, dword [esp + 0x1c]
cmp esi, eax
jb 0x42e155
mov esi, dword [esp + 0x10]
mov dword [esi - 8], ebp
mov ecx, dword [0x46b21c]
mov edx, 0x46bdcc
test edx, edx
mov dword [esp + 0x14], ecx
je 0x42e249
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x42e249
push esi
lea ecx, [esp + 0x18]
call fcn.00401ce0
test eax, eax
je 0x42e249
mov eax, dword [esp + 0x14]
inc esi
push esi
push 0x46bdcc
push eax
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x14]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x18]
call fcn.004026d0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x42e28e
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e294
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
jmp 0x42e294
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ecx, dword [0x46b21c]
mov edx, 0x46bdcc
test edx, edx
mov dword [esp + 0x14], ecx
je 0x42e2e1
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x42e2e1
push esi
lea ecx, [esp + 0x18]
call fcn.00401ce0
test eax, eax
je 0x42e2e1
mov eax, dword [esp + 0x14]
inc esi
push esi
push 0x46bdcc
push eax
call fcn.00402650
add esp, 0xc
lea ecx, [esp + 0x14]
push 0xffffffffffffffff
call fcn.00401f50
mov eax, dword [esp + 0x14]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x18]
call fcn.004026d0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x42e31e
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e31e
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
push 0xdb
call fcn.00434070
mov esi, eax
add esp, 4
test esi, esi
je 0x42e338
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push eax
lea ecx, [esp + 0x18]
call fcn.004026d0
mov ecx, dword [esp + 0x10]
mov edx, dword [0x4b0f4c]
push 1
push 0
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edx, dword [0x46b220]
cmp eax, 1
mov eax, dword [esp + 0x10]
lea ecx, [eax - 0xc]
je 0x42e525
cmp ecx, edx
je 0x42e38d
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e38d
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x50]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e3b8
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e3b8
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e3e3
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e3e3
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x5c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e40e
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e40e
mov edx, dword [esp + 0x5c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x3c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e439
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e439
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x48]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e464
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e464
mov edx, dword [esp + 0x48]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x4c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e48f
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e48f
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x28]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e4ba
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e4ba
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x24]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e4e5
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e4e5
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x34]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e9c5
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e9c5
mov edx, dword [esp + 0x34]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf20
ret
cmp ecx, edx
je 0x42e543
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e543
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x28]
push ecx
mov ecx, esp
mov edx, dword [eax - 0xc]
test edx, edx
jl 0x42e563
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x42e575
mov edx, dword [0x46b21c]
mov dword [ecx], edx
mov eax, dword [esp + 0x2c]
push eax
call fcn.00402e60
call fcn.0041cbc0
add esp, 4
cmp eax, 1
jne 0x42e5bf
mov ecx, dword [esp + 0x28]
push 0x80
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edx, dword [esp + 0x28]
push 0
push 0x80
push 4
push 0
push 1
push 0x40000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x42e6b9
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x28]
mov ebp, dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0
lea ecx, [esp + 0xf0]
push eax
push ecx
call ebp
push ecx
lea edx, [esp + 0x2c]
mov ecx, esp
push edx
call fcn.00429290
call fcn.0041cbc0
add esp, 4
cmp eax, 1
je 0x42e9d2
lea eax, [esp + 0x28]
lea ecx, [esp + 0x30]
push eax
push 0x46c148
call fcn.004028d0
push eax
push 0xd7
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x28]
push eax
push ecx
call fcn.0040b860
lea edx, [esp + 0x48]
push eax
push edx
call fcn.00402d10
mov eax, dword [eax]
mov ecx, dword [esp + 0xf34]
push 0
push 0
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x44]
call fcn.00401e80
lea ecx, [esp + 0x20]
call fcn.00401e80
lea ecx, [esp + 0x30]
call fcn.00401e80
lea ecx, [esp + 0x50]
call fcn.00401e80
lea ecx, [esp + 0x40]
call fcn.00401e80
lea ecx, [esp + 0x5c]
call fcn.00401e80
lea ecx, [esp + 0x3c]
call fcn.00401e80
lea ecx, [esp + 0x48]
call fcn.00401e80
lea ecx, [esp + 0x4c]
call fcn.00401e80
lea ecx, [esp + 0x28]
call fcn.00401e80
lea ecx, [esp + 0x24]
call fcn.00401e80
lea ecx, [esp + 0x34]
call fcn.00401e80
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf20
ret
push 0xde
call fcn.00434070
mov esi, eax
mov eax, dword [0x46b21c]
add esp, 4
mov dword [esp + 0x10], eax
test esi, esi
je 0x42e6ec
mov ecx, esi
shr ecx, 0x10
jne 0x42e708
and esi, 0xffff
lea ecx, [esp + 0x10]
push esi
call fcn.00402fe0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov eax, dword [0x46b21c]
mov ecx, 0x46c148
test ecx, ecx
mov dword [esp + 0x20], eax
jne 0x42e73c
xor eax, eax
jmp 0x42e743
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
call ebx
mov edi, eax
test edi, edi
je 0x42e6f2
push edi
lea ecx, [esp + 0x14]
call fcn.00401ce0
test eax, eax
je 0x42e6f2
lea ecx, [edi + edi]
mov edi, dword [esp + 0x10]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x42e6f2
push 0x46c148
call ebx
mov ecx, dword [esp + 0x28]
push ecx
mov edx, dword [ecx - 8]
lea ecx, [esp + 0x24]
push edx
push 0x46c148
push eax
call fcn.00401eb0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x30]
push eax
call fcn.00429290
lea ecx, [esp + 0x20]
call fcn.00401e80
mov eax, dword [esp + 0x30]
push eax
mov ecx, dword [eax - 8]
push ecx
lea ecx, [esp + 0x18]
call fcn.004026d0
mov eax, dword [esp + 0x30]
mov ecx, dword [0x46b220]
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x42e7b7
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e7bd
mov eax, dword [esp + 0x30]
add eax, 0xfffffff4
push eax
call fcn.00459de2
add esp, 4
jmp 0x42e7bd
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ecx, str._r_n_____r_n
test ecx, ecx
jne 0x42e7ca
xor eax, eax
jmp 0x42e7d1
push str._r_n_____r_n
call ebx
push str._r_n_____r_n
push eax
lea ecx, [esp + 0x18]
call fcn.004026d0
push 0xdd
call fcn.00434070
mov esi, eax
add esp, 4
test esi, esi
je 0x42e7f6
push esi
call ebx
push esi
push eax
lea ecx, [esp + 0x18]
call fcn.004026d0
mov edx, dword [esp + 0x10]
push 0
push 0
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
call fcn.004084c0
mov eax, dword [esp + 0x10]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e842
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e842
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x50]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e86d
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e86d
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e898
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e898
mov edx, dword [esp + 0x40]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x5c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e8c3
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e8c3
mov edx, dword [esp + 0x5c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x3c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e8ee
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e8ee
mov edx, dword [esp + 0x3c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x48]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e919
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e919
mov edx, dword [esp + 0x48]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x4c]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e944
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e944
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x28]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e96f
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e96f
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x24]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e99a
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e99a
mov edx, dword [esp + 0x24]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
mov eax, dword [esp + 0x34]
mov edx, dword [0x46b220]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x42e9c5
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x42e9c5
mov edx, dword [esp + 0x34]
add edx, 0xfffffff4
push edx
call fcn.00459de2
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf20
ret
mov edx, dword [esp + 0x3c]
push edx
call fcn.0042f980
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.00429290
call fcn.0041cbc0
mov eax, dword [0x46b21c]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], eax
mov ecx, 7
xor eax, eax
lea edi, [esp + 0xac]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 2
mov dword [esp + 0xa8], 0xb
rep stosd dword es:[edi], eax
add esp, 4
mov ecx, 7
lea edi, [esp + 0xd0]
mov dword [esp + 0xc4], 0x19
mov dword [esp + 0xc8], 0x17
mov dword [esp + 0xcc], 0x16
test ebx, ebx
rep stosd dword es:[edi], eax
lea esi, [esp + 0x9c]
je 0x42ea7b
lea esi, [esp + 0xc4]
mov ecx, dword [esi]
push 0
push ecx
push 0x400
lea ecx, [esp + 0x78]
call fcn.00402f30
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x70]
call fcn.00401f50
mov edx, dword [esi + 4]
push 0
push edx
push 0x400
lea ecx, [esp + 0x74]
call fcn.00402f30
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x6c]
call fcn.00401f50
mov eax, dword [esi + 8]
push 0
push eax
push 0x400
lea ecx, [esp + 0x7c]
call fcn.00402f30
push eax
push 0
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x74]
call fcn.00401f50
push str._s_s.lnk
lea ecx, [esp + 0x68]
call fcn.004028d0
push 0x4ab7a0
lea ecx, [esp + 0x8c]
call fcn.00429290
lea ecx, [esp + 0x4c]
push ecx
mov ecx, 0x4ab7a0
call fcn.004082c0
push 0x4837e0
lea ecx, [esp + 0x78]
xor esi, esi
call fcn.00402a90
mov edx, dword [0x46b21c]
push 0x105
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], edx
call fcn.00402f30
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
call fcn.00401f50
push str._tmp_folder_2019
lea ecx, [esp + 0x34]
call fcn.00402a90
push 0x4837e0
lea ecx, [esp + 0x24]
call fcn.00402a90
lea eax, [esp + 0x30]
lea ecx, [esp + 0x20]
push eax
push 0x483978
lea edx, [esp + 0x34]
push ecx
push edx
call fcn.00402d10
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00402d10
mov eax, dword [eax]
mov ecx, dword [eax - 8]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.004026d0
lea ecx, [esp + 0x58]
call fcn.00401e80
lea ecx, [esp + 0x2c]
call fcn.00401e80
lea ecx, [esp + 0x20]
call fcn.00401e80
lea ecx, [esp + 0x30]
call fcn.00401e80
mov edx, dword [esp + 0x14]
push edx
call fcn.0042f980
mov eax, dword [0x46b21c]
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0x10], eax
push str._s_s.lnk
call fcn.004028d0
mov ecx, dword [0x483978]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
call fcn.004036a0
add esp, 0x10
lea edx, [esp + 0x10]
lea ecx, [esp + 0x74]
push edx
call fcn.004082c0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x18]
push eax
call fcn.00429290
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
push esi
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
push edx
call fcn.00429290
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
push eax
call fcn.00429290
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
push edx
call fcn.00429290
call fcn.0042fa50
add esp, 0x1c
lea ecx, [esp + 0x18]
call fcn.00401e80
lea ecx, [esp + 0x1c]
call fcn.00401e80
lea ecx, [esp + 0x10]
call fcn.00401e80
lea ecx, [esp + 0x14]
call fcn.00401e80
mov eax, dword [esp + 0x54]
test eax, eax
je 0x42ee1e
mov eax, dword [0x483978]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
push eax
push ecx
lea eax, [esp + 0x40]
push edx
push eax
call fcn.004036a0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x84]
add esp, 0x10
push esi
push ecx
push edx
call ebp
test eax, eax
jne 0x42ed2a
lea eax, [esp + 0x38]
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.00420cc0
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
push edx
push eax
call fcn.0045a595
add esp, 0x10
test eax, eax
je 0x42ed21
push ecx
lea edx, [esp + 0x78]
mov ecx, esp
push edx
call fcn.00429290
call fcn.0042bff0
add esp, 4
call fcn.0042c0c0
lea ecx, [esp + 0x20]
call fcn.00401e80
push 0
lea ecx, [esp + 0x3c]
call fcn.00402f30
push eax
push str.desktop_shortcut
call fcn.0041ddc0
add esp, 4
lea eax, [esp + 0x3c]
mov ecx, esp
push eax
call fcn.00429290
call fcn.0041cbc0
add esp, 4
cmp eax, 1
je 0x42ee1e
push 0x46b278
lea ecx, [esp + 0x24]
call fcn.00402a90
push 0xdf
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x20]
lea edx, [esp + 0x38]
push eax
push ecx
push edx
push 0x46c148
lea ecx, [esp + 0x2c]
call fcn.004028d0
push eax
push 0xd7
call fcn.00434070
add esp, 4
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0040b860
lea ecx, [esp + 0x3c]
push eax
push ecx
call fcn.00402d10
lea edx, [esp + 0x60]
push eax
push edx
call fcn.00402d10
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.00403460
mov ecx, dword [eax]
mov edx, dword [esp + 0xf34]
push 0
push 0
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x54]
call fcn.00401e80
lea ecx, [esp + 0x58]
call fcn.00401e80
lea ecx, [esp + 0x30]
call fcn.00401e80
lea ecx, [esp + 0x18]
call fcn.00401e80
lea ecx, [esp + 0x1c]
call fcn.00401e80
lea ecx, [esp + 0x20]
call fcn.00401e80
mov esi, 1
mov edi, dword [esp + 0x64]
lea eax, [esp + 0x34]
push str._Uninstall
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.00403460
mov edx, dword [eax]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x40]
push edi
push ecx
call fcn.004036a0
add esp, 0x10
lea ecx, [esp + 0x54]
call fcn.00401e80
push 0
lea ecx, [esp + 0x3c]
call fcn.00402f30
push eax
push str.uninstall_shortcut
call fcn.0041ddc0
add esp, 8
push 0
push 0
push ecx
mov ecx, esp
push str.__uninstall
call fcn.004028d0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
push edx
call fcn.00429290
push ecx
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.00429290
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
push edx
call fcn.00429290
call fcn.0042fa50
mov eax, dword [esp + 0x7c]
add esp, 0x1c
test eax, eax
je 0x42eed7
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push 0
push eax
push ecx
call fcn.00457720
add esp, 0xc
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x42f06c
lea edx, [esp + 0x34]
lea eax, [esp + 0x68]
push edx
push 0x46c140
lea ecx, [esp + 0x68]
push eax
push ecx
call fcn.00403460
lea edx, [esp + 0x24]
push eax
push edx
call fcn.00402d10
lea ecx, [esp + 0x60]
call fcn.00401e80
mov eax, dword [esp + 0x20]
push eax
call fcn.0042f980
mov ecx, dword [0x483978]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
add esp, 4
push ecx
push edx
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.004036a0
add esp, 0x10
push edi
push edi
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
push edx
call fcn.00429290
push ecx
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.00429290
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
push edx
call fcn.00429290
call fcn.0042fa50
add esp, 0x1c
test esi, esi
jne 0x42f063
push ecx
lea eax, [esp + 0x3c]
mov ecx, esp
push eax
call fcn.00429290
call fcn.0041cbc0
add esp, 4
cmp eax, 1
je 0x42f063
push 0x46b278
lea ecx, [esp + 0x48]
call fcn.00402a90
push 0xdf
call fcn.00434070
add esp, 4
lea ecx, [esp + 0x44]
lea edx, [esp + 0x38]
push eax
push ecx
push edx
push 0x46c148
lea ecx, [esp + 0x28]
call fcn.004028d0
push eax
push 0xd7
call fcn.00434070
add esp, 4
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0040b860
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.00402d10
lea edx, [esp + 0x5c]
push eax
push edx
call fcn.00402d10
push eax
lea eax, [esp + 0x68]
push eax
call fcn.00403460
mov ecx, dword [eax]
mov edx, dword [esp + 0xf34]
push esi
push esi
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x60]
call fcn.00401e80
lea ecx, [esp + 0x54]
call fcn.00401e80
lea ecx, [esp + 0x58]
call fcn.00401e80
lea ecx, [esp + 0x30]
call fcn.00401e80
lea ecx, [esp + 0x18]
call fcn.00401e80
lea ecx, [esp + 0x44]
call fcn.00401e80
lea ecx, [esp + 0x20]
call fcn.00401e80
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x42f0fb
mov eax, dword [0x483978]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
push eax
push ecx
lea eax, [esp + 0x40]
push edx
push eax
call fcn.004036a0
add esp, 0x10
lea ecx, [esp + 0x38]
push 0
call fcn.00402f30
push eax
push str.start_shortcut
call fcn.0041ddc0
add esp, 8
push 0
push 0
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x34]
mov ecx, esp
push edx
call fcn.00429290
push ecx
lea eax, [esp + 0x4c]
mov ecx, esp
push eax
call fcn.00429290
push ecx
mov ecx, esp
push 0x4837e8
call fcn.004028d0
push ecx
lea edx, [esp + 0x44]
mov ecx, esp
push edx
call fcn.00429290
call fcn.0042fa50
add esp, 0x1c
test edi, edi
jne 0x42f12e
push ebx
push ecx
mov eax, esp
lea ecx, [esp + 0x30]
push 0x46db28
push ecx
push eax
call fcn.00403460
push ecx
lea eax, [esp + 0x34]
mov edx, esp
push str.___uninstall
push eax
push edx
call fcn.00403460
call fcn.00430110
add esp, 0xc
call fcn.0042c2a0
push eax
push str.admin_install
call fcn.0041dd40
push ebx
push str.for_all_install
call fcn.0041dd40
add esp, 0x10
lea ecx, [esp + 0x24]
push 0
call fcn.00402f30
push eax
push str.install_dir
call fcn.0041ddc0
push edi
push str.portable_install
call fcn.0041dd40
mov ecx, dword [0x4b20a8]
push ecx
push 0x46b4e0
call fcn.0041dd40
add esp, 0x18
lea edx, [esp + 0x50]
mov ecx, 0x4ab7a0
push edx
call fcn.004082c0
call fcn.0042c2a0
push eax
push str.admin_install
call fcn.0041dd40
push ebx
push str.for_all_install
call fcn.0041dd40
add esp, 0x10
lea ecx, [esp + 0x24]
push 0
call fcn.00402f30
push eax
push str.install_dir
call fcn.0041ddc0
push edi
push str.portable_install
call fcn.0041dd40
add esp, 0x10
lea eax, [esp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea ecx, [esp + 0x8c]
push ecx
call fcn.0042c220
lea edx, [esp + 0x88]
mov dword [esp + 0x88], eax
push edx
call fcn.0045b782
mov esi, eax
mov ecx, 0xf9
xor eax, eax
lea edi, [esp + 0x302]
mov word [esp + 0x300], 0
push esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x46dab0
lea eax, [esp + 0x308]
push 0x1f3
push eax
call fcn.0045b6e9
add esp, 0x18
lea ecx, [esp + 0x2f8]
push ecx
lea ecx, [esp + 0x7c]
call fcn.004028d0
push esi
push 0x46daa8
lea edx, [esp + 0x300]
push 0x1f3
push edx
call fcn.0045b6e9
add esp, 0x10
lea eax, [esp + 0x2f8]
push eax
lea ecx, [esp + 0x84]
call fcn.004028d0
push 0x46b2c4
lea ecx, [esp + 0x48]
call fcn.00402a90
lea ecx, [esp + 0x80]
lea edx, [esp + 0x44]
push ecx
lea eax, [esp + 0x80]
push edx
push eax
call fcn.00402d10
push eax
lea ecx, [esp + 0x7c]
call fcn.004035b0
lea ecx, [esp + 0x7c]
call fcn.00401e80
lea ecx, [esp + 0x44]
call fcn.00401e80
push 0
lea ecx, [esp + 0x7c]
call fcn.00402f30
push eax
push str.Install_Time
call fcn.0041ddc0
mov ecx, dword [0x4b20a8]
push ecx
push 0x46b4e0
call fcn.0041dd40
mov edx, dword [esp + 0x38]
add esp, 0x10
push 5
push 0
push 0
push edx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [esp + 0x80]
call fcn.00401e80
lea ecx, [esp + 0x78]
call fcn.00401e80
lea ecx, [esp + 0x74]
call fcn.00401e80
lea ecx, [esp + 0x88]
call fcn.00401e80
lea ecx, [esp + 0x64]
call fcn.00401e80
lea ecx, [esp + 0x6c]
call fcn.00401e80
lea ecx, [esp + 0x70]
call fcn.00401e80
lea ecx, [esp + 0x68]
call fcn.00401e80
lea ecx, [esp + 0x38]
call fcn.00401e80
lea ecx, [esp + 0x50]
call fcn.00401e80
lea ecx, [esp + 0x40]
call fcn.00401e80
lea ecx, [esp + 0x5c]
call fcn.00401e80
lea ecx, [esp + 0x3c]
call fcn.00401e80
lea ecx, [esp + 0x48]
call fcn.00401e80
lea ecx, [esp + 0x4c]
call fcn.00401e80
lea ecx, [esp + 0x28]
call fcn.00401e80
lea ecx, [esp + 0x24]
call fcn.00401e80
lea ecx, [esp + 0x34]
call fcn.00401e80
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xf20
ret