Function at 0x41871f
Capabilities:
Get common file path
Move file

Disassembly:
push 0x208
mov eax, 0x43098d
call fcn.0041bec8
mov eax, dword [ebp + 8]
xor edx, edx
mov ebx, edx
mov dword [ebp - 0x1ec], eax
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0x1f4], eax
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], cx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 4], edx
push ecx
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x1f0], edx
push ecx
push eax
jmp 0x419e54
xor ecx, ecx
mov dword [ebp - 0x2c], 7
xor eax, eax
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x30], ecx
mov word [ebp - 0x40], ax
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 1
mov byte [ebp - 0x1dd], cl
jb 0x4187c0
mov eax, dword [ebp - 0xb8]
push 0x3d
push ecx
push dword [ebp - 0xa8]
push eax
call fcn.004056f7
mov esi, eax
cmp esi, 0xffffffff
je 0x41884c
lea eax, [ebp - 0x1de]
mov byte [ebp - 0x1dd], 1
push eax
push 0xffffffffffffffff
lea ecx, [esi + 1]
push ecx
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401fa8
lea eax, [ebp - 0x70]
or ebx, 0x400
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.004057db
lea ecx, [ebp - 0x70]
call fcn.00401770
cmp dword [ebp - 0xa8], esi
jb 0x419e74
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xa8], esi
jb 0x418846
mov eax, dword [ebp - 0xb8]
xor ecx, ecx
mov word [eax + esi*2], cx
xor ebx, ebx
mov edi, ebx
mov dword [ebp - 0x200], ebx
mov esi, ebx
mov dword [ebp - 0x1dc], edi
mov dword [ebp - 0x208], edi
mov dword [ebp - 0x1d8], esi
mov dword [ebp - 0x204], esi
xor eax, eax
mov dword [ebp - 0x170], ebx
mov dword [ebp - 0x1f8], ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], 7
mov word [ebp - 0x170], ax
lea eax, [ebp - 0x170]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00409bbe
test al, al
je 0x4188f9
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x208]
call fcn.004160f4
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00409bbe
test al, al
jne 0x4188b4
mov eax, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1dc], edi
push dword [ebx*4 + 0x43d6fc]
lea ecx, [ebp - 0x70]
call fcn.004014a3
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.0040a1a6
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 3
mov esi, eax
call fcn.00401770
test esi, esi
je 0x418939
inc ebx
cmp ebx, 0xe
jb 0x4188f9
jmp case.default.0x418942
cmp ebx, 0xd
ja case.default.0x418942
jmp dword [ebx*4 + 0x419e7b]
cmp dword [ebp + 0x10], 2
jne case.default.0x418942
xor ebx, ebx
xor eax, eax
push 7
pop ecx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ecx
mov word [ebp - 0x58], ax
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ecx
mov word [ebp - 0x88], ax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 6
push eax
call fcn.00405d79
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0040642e
lea ecx, [ebp - 0xd8]
call fcn.00404bf6
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0xd8]
call fcn.00404d32
xor eax, eax
mov dword [ebp - 0x1d0], ebx
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x1bc], 7
mov word [ebp - 0x1d0], ax
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1a4], ebx
mov dword [ebp - 0x1a0], ebx
mov dword [ebp - 0x19c], ebx
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x194], ebx
push ebx
lea eax, [ebp - 0x1d0]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0xd8]
call fcn.00404c83
test al, al
je 0x418d21
mov edi, dword [ebp - 0x1d4]
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.004049eb
cmp byte [ebp - 0x1ac], 0
je 0x418b5b
xor eax, eax
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00405f6b
lea eax, [ebp - 0xa0]
push eax
call fcn.0040584b
mov eax, dword [ebp - 0x48]
cmp eax, 4
jb 0x418a8d
cmp eax, dword [ebp - 0x90]
ja 0x418a9e
lea eax, [ebp - 0x40]
push eax
call fcn.004063fc
test al, al
jne 0x418cce
push ebx
lea ecx, [ebp - 0x1d0]
call fcn.00401873
cmp dword [ebp - 0x1bc], 8
push 0x14
pop eax
mov word [ebp - 0x148], ax
lea eax, [ebp - 0x1d0]
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x146], ebx
mov dword [ebp - 0x142], ebx
mov dword [ebp - 0x13e], ebx
mov dword [ebp - 0x154], 3
jb 0x418af1
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x150], eax
lea eax, [ebp - 0x158]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov eax, dword [ebp - 0x8c]
mov byte [ebp - 4], 8
cmp eax, 8
jb 0x418b5b
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1e8], ecx
cmp eax, 0x1000
jb 0x418b52
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x1e8]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1e8]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
lea eax, [ebp - 0x1d0]
push eax
call fcn.0040441d
cmp eax, 0xffffffff
je 0x418cb1
lea eax, [ebp - 0x1d0]
push eax
call fcn.00404361
test al, al
jne 0x418cb1
xor eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov byte [ebp - 4], 0xa
mov esi, ebx
push esi
lea eax, [ebp - 0x108]
push eax
call fcn.00404041
or edi, 0x200
push 0x4316b4
lea eax, [ebp - 0x1d0]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.00405581
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0xc
push ecx
push eax
push dword [ebp - 0x1dc]
lea ecx, [ebp - 0x70]
call fcn.00404086
or edi, 0x100
mov dword [ebp - 0x1e4], edi
push str..tmp
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00401170
push eax
lea ecx, [ebp - 0x28]
call fcn.004057db
lea ecx, [ebp - 0x138]
call fcn.00401770
lea ecx, [ebp - 0x70]
call fcn.00401770
lea ecx, [ebp - 0x120]
call fcn.00401770
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0xa
call fcn.00401770
lea eax, [ebp - 0x28]
push eax
call fcn.0040441d
cmp eax, 0xffffffff
je 0x418c5c
inc esi
cmp esi, 0x3e8
jb 0x418b9d
cmp dword [ebp - 0x1bc], 8
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 0x1d4], edi
jb 0x418c77
mov ecx, dword [ebp - 0x1d0]
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x418c83
mov eax, dword [ebp - 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x418ca5
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x418c9b
mov eax, dword [ebp - 0x28]
push 4
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
call fcn.00401770
push ebx
lea eax, [ebp - 0x1d0]
push eax
lea ecx, [ebp - 0xd8]
call fcn.00404c83
test al, al
jne 0x418a24
jmp 0x418d21
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x418d21
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1e8], ecx
cmp eax, 0x1000
jb 0x418d18
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x1e8]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1e8]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
lea ecx, [ebp - 0x1d0]
call fcn.00401770
lea ecx, [ebp - 0xd8]
call fcn.00404c17
lea ecx, [ebp - 0x88]
call fcn.00401770
lea ecx, [ebp - 0x58]
call fcn.00401770
jmp case.default.0x418942
cmp dword [ebp + 0x10], 0
jne case.default.0x418942
cmp dword [0x43d6a8], 0
je 0x418d7a
mov ebx, str._br_
push ebx
call fcn.00420f3e
pop ecx
push eax
push ebx
mov ecx, 0x43d698
call fcn.004017b3
cmp byte [ebp - 0x1dd], 0
je 0x418da1
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x120]
call fcn.00401f7c
mov ebx, dword [ebp - 0x1d4]
mov byte [ebp - 4], 0xe
or ebx, 1
jmp 0x418dca
lea eax, [ebp - 0x1f0]
push eax
push dword [ebp - 0x1f4]
lea eax, [ebp - 0x138]
push eax
call fcn.00416e38
mov ebx, dword [ebp - 0x1d4]
mov dword [ebp - 4], 0xf
or ebx, 2
cmp dword [eax + 0x14], 8
mov ecx, eax
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x1d4], ebx
jb 0x418de0
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, 0x43d698
call fcn.004017b3
test bl, 2
je 0x418e0d
and ebx, 0xfffffffd
lea ecx, [ebp - 0x138]
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.00401770
mov dword [ebp - 4], 3
test bl, 1
je 0x419e1e
and ebx, 0xfffffffe
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.00401770
jmp 0x419e1e
cmp dword [ebp + 0x10], 0
jne case.default.0x418942
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x1ec]
call fcn.00401b39
jmp case.default.0x418942
cmp dword [ebp + 0x10], 0
jne case.default.0x418942
cmp dword [0x457ae0], 0
jne case.default.0x418942
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00401f7c
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
cmp edi, 2
jbe 0x418f05
cmp ecx, 8
lea esi, [ebp - 0x28]
sbb dl, dl
inc dl
cmp ecx, 8
jb 0x418ea0
mov esi, eax
push 0x22
pop ebx
cmp word [esi], bx
jne 0x418f05
lea esi, [ebp - 0x28]
test dl, dl
je 0x418eb1
mov esi, eax
cmp word [esi + edi*2 - 2], bx
jne 0x418f05
lea ecx, [ebp - 0x1de]
push ecx
lea eax, [edi - 2]
push eax
push 1
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x70]
call fcn.00401fa8
mov ebx, dword [ebp - 0x1d4]
lea eax, [ebp - 0x70]
or ebx, 0x800
lea ecx, [ebp - 0x28]
push eax
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.004057db
lea ecx, [ebp - 0x70]
call fcn.00401770
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
jmp 0x418f0b
mov ebx, dword [ebp - 0x1d4]
push 8
pop edi
cmp ecx, edi
lea esi, [ebp - 0x28]
sbb dl, dl
inc dl
cmp ecx, edi
jb 0x418f1d
mov esi, eax
cmp word [esi], 0x2e
jne 0x418f5a
lea ecx, [ebp - 0x28]
test dl, dl
je 0x418f2c
mov ecx, eax
push 0x5c
pop esi
cmp word [ecx + 2], si
jne 0x418f5d
lea ecx, [ebp - 0x28]
test dl, dl
je 0x418f3e
mov ecx, eax
xor eax, eax
cmp word [ecx + 4], ax
lea ecx, [ebp - 0x28]
je 0x418e32
push 2
push eax
call fcn.00406763
jmp 0x419051
push 0x5c
pop esi
lea ecx, [ebp - 0x28]
test dl, dl
je 0x418f66
mov ecx, eax
cmp word [ecx], si
je 0x419051
lea eax, [ebp - 0x28]
push eax
call fcn.00406345
test al, al
jne 0x419051
xor eax, eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], eax
mov word [ebp - 0x58], ax
push 0x431668
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x11
call fcn.004014a3
push str.ProgramFilesDir
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x12
call fcn.004014a3
push str.SoftwareMicrosoftWindowsCurrentVersion
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x13
call fcn.004014a3
push 0x14
pop eax
mov byte [ebp - 4], al
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x70]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00416bbd
lea ecx, [ebp - 0x70]
call fcn.00401770
lea ecx, [ebp - 0x108]
call fcn.00401770
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x11
call fcn.00401770
lea eax, [ebp - 0x58]
push eax
call fcn.0040584b
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.00405534
push eax
lea ecx, [ebp - 0x28]
call fcn.004057db
lea ecx, [ebp - 0x138]
call fcn.00401770
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x10
call fcn.00401770
lea eax, [ebp - 0x28]
mov ecx, 0x457ad0
push eax
call fcn.004021af
lea eax, [ebp - 0x28]
push eax
call fcn.0041691b
push 0x66
push dword [ebp - 0x1ec]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.00401b39
mov eax, 0x457ad0
cmp dword [0x457ae4], edi
jb 0x419094
mov eax, dword [0x457ad0]
push eax
push 0
push 0x143
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x28]
mov ecx, 0x457ad0
push eax
call fcn.00403e6e
test al, al
jne 0x4190cf
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
jb 0x4190c0
mov eax, dword [ebp - 0x28]
push eax
push 0
push 0x143
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0x28]
jmp 0x418e32
cmp dword [0x457ac8], 1
je case.default.0x418942
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x4190f0
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
push eax
call fcn.00409d38
test al, al
je 0x419119
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419109
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
sub eax, 0x30
mov dword [0x457ac8], eax
jmp case.default.0x418942
mov dword [0x457ac8], 2
jmp case.default.0x418942
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419134
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
xor ecx, ecx
sub eax, ecx
je 0x419179
sub eax, 0x30
je 0x419168
sub eax, 1
je 0x419179
mov ebx, dword [ebp - 0x1d4]
sub eax, 1
jne 0x419e1e
mov byte [0x457fbb], 1
mov byte [0x457fc0], cl
jmp 0x419e1e
mov byte [0x457fbb], cl
mov byte [0x457fc0], cl
jmp case.default.0x418942
mov byte [0x457fbb], cl
mov byte [0x457fc0], 1
jmp case.default.0x418942
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419197
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
push eax
call fcn.00424aba
pop ecx
cmp eax, 0x46
je 0x4191ce
mov ebx, dword [ebp - 0x1d4]
cmp eax, 0x55
je 0x4191c2
xor eax, eax
mov byte [0x457fc1], al
mov byte [0x457fc2], al
jmp 0x419e1e
mov byte [0x457fc2], 1
jmp 0x419e1e
mov byte [0x457fc1], 1
jmp case.default.0x418942
xor edi, edi
mov byte [0x457f8b], 1
lea eax, [ebp - 0x40]
inc edi
push eax
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x1d8], edi
call fcn.00401f7c
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x15
sbb dl, dl
inc dl
cmp dword [ebp - 0x2c], 8
jb 0x419211
mov eax, dword [ebp - 0x40]
cmp word [eax], 0x3c
mov esi, ebx
jne 0x419484
lea ecx, [ebp - 0x40]
test dl, dl
je 0x419227
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
mov esi, ebx
mov dword [ebp - 0x1e8], esi
cmp eax, 1
jbe 0x41925d
mov dword [ebp - 0x1e8], esi
lea edi, [ecx + 2]
sub eax, 1
je 0x41925d
mov dword [ebp - 0x1e8], esi
cmp word [edi], 0x3e
je 0x4193b7
add edi, 2
sub eax, 1
jne 0x41924b
or edi, 0xffffffff
cmp edi, 0xffffffff
je 0x41947e
lea eax, [ebp - 0x40]
test dl, dl
je 0x419273
mov eax, dword [ebp - 0x40]
lea esi, [eax + 2]
lea esi, [esi + edi*2]
push esi
call fcn.00420f3e
pop ecx
push eax
push esi
lea ecx, [ebp - 0xd0]
call fcn.0040180c
mov ecx, dword [ebp - 0x30]
xor ebx, ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
cmp ecx, 1
jb 0x419e74
dec edi
dec ecx
cmp ecx, edi
jb 0x4192ac
mov ecx, edi
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x4192b8
mov eax, dword [ebp - 0x40]
push ecx
add eax, 2
lea ecx, [ebp - 0x58]
push eax
call fcn.0040122c
xor eax, eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1fc], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00409bbe
mov edi, dword [ebp - 0x1d8]
test al, al
je 0x4193c8
push str.HIDE
lea ecx, [ebp - 0x70]
call fcn.004014a3
push 0x18
pop eax
mov byte [ebp - 4], al
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040a1a6
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
mov esi, eax
call fcn.00401770
neg esi
lea ecx, [ebp - 0x70]
push 0x433198
sbb esi, esi
and edi, esi
call fcn.004014a3
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040a1a6
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
mov esi, eax
call fcn.00401770
test esi, esi
jne 0x41936b
push 3
pop edi
push 0x4331a0
lea ecx, [ebp - 0x70]
call fcn.004014a3
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040a1a6
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
mov esi, eax
call fcn.00401770
test esi, esi
jne 0x41939e
push 6
pop edi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00409bbe
jmp 0x4192fc
test edi, edi
je 0x41925d
sub edi, ecx
sar edi, 1
jmp 0x419260
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x419415
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1dc], ecx
cmp eax, 0x1000
jb 0x41940c
lea eax, [ebp - 0x1d8]
push eax
lea eax, [ebp - 0x1dc]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x14], 7
mov byte [ebp - 4], 0x15
cmp eax, 8
jb 0x419476
mov ecx, dword [ebp - 0x58]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, 0x1000
jb 0x41946d
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
mov esi, dword [ebp - 0x1e8]
jmp 0x419486
mov edi, dword [ebp - 0x1d8]
xor ebx, ebx
cmp dword [ebp + 0x10], 5
jne 0x419495
cmp esi, 9
jne 0x4194be
push 1
jmp 0x4194a1
cmp dword [ebp + 0x10], 4
jne 0x4194be
cmp esi, 6
jne 0x4194be
push ebx
push edi
sub esp, 0x18
lea eax, [ebp - 0xd0]
mov ecx, esp
push eax
call fcn.00401f7c
push dword [ebp - 0x1ec]
call fcn.0041a260
lea ecx, [ebp - 0xd0]
jmp 0x418d45
cmp dword [ebp - 0x30], 0
mov byte [0x457f94], 1
je case.default.0x418942
lea eax, [ebp - 0x40]
push eax
call fcn.0040bbde
mov dword [0x43d6e0], eax
jmp case.default.0x418942
cmp dword [ebp + 0x10], 1
jne 0x4198d0
push 0x20a
call fcn.0041bde6
mov edi, eax
pop ecx
mov dword [ebp - 0x214], edi
lea esi, [edi + 0x20a]
push esi
push edi
mov dword [ebp - 0x20c], esi
call fcn.00401485
mov dword [ebp - 0x210], esi
push edi
push 0x105
mov byte [ebp - 4], 0x1b
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push edi
lea ecx, [ebp - 0xd0]
call fcn.004014a3
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x1c
push eax
call fcn.0040584b
xor eax, eax
push eax
mov esi, eax
lea eax, [ebp - 0x58]
push eax
call fcn.00404041
mov ebx, dword [ebp - 0x1d4]
or ebx, 0x40
push dword [0x43d664]
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00405581
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
push ecx
push eax
push dword [ebp - 0x1dc]
lea ecx, [ebp - 0xf0]
call fcn.00404086
lea eax, [ebp - 0xf0]
or ebx, 0x80
mov edi, 0x457aac
mov dword [ebp - 0x1d4], ebx
push eax
mov ecx, edi
mov dword [ebp - 0x1e4], ebx
call fcn.004057db
lea ecx, [ebp - 0xf0]
call fcn.00401770
lea ecx, [ebp - 0xa0]
call fcn.00401770
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1c
call fcn.00401770
push edi
call fcn.0040440b
test al, al
je 0x419687
inc esi
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.00404041
or ebx, 0x40
push dword [0x43d664]
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00405581
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
push ecx
push eax
push dword [ebp - 0x1dc]
lea ecx, [ebp - 0xf0]
call fcn.00404086
lea eax, [ebp - 0xf0]
or ebx, 0x80
push eax
mov ecx, edi
mov dword [ebp - 0x1e4], ebx
call fcn.004057db
lea ecx, [ebp - 0xf0]
call fcn.00401770
lea ecx, [ebp - 0xa0]
call fcn.00401770
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1c
call fcn.00401770
push edi
call fcn.0040440b
test al, al
jne 0x4195f2
mov dword [ebp - 0x1d4], ebx
mov esi, dword [ebp - 0x1ec]
push edi
push 0x66
push esi
call fcn.00401b1b
xor ecx, ecx
xor eax, eax
push 7
pop edx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
mov word [ebp - 0x28], ax
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
mov word [ebp - 0x88], ax
mov eax, dword [ebp - 0x1d8]
mov edi, dword [ebp - 0x1dc]
sub eax, edi
push 0x18
mov byte [ebp - 0x1dd], cl
mov byte [ebp - 0x1de], cl
cdq
pop ecx
idiv ecx
mov byte [ebp - 4], 0x20
mov ebx, eax
test ebx, ebx
je 0x419766
push str._set:user
lea ecx, [ebp - 0x70]
call fcn.004014a3
push 9
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0x21
push eax
push edi
call fcn.0040ea95
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x20
mov esi, eax
call fcn.00401770
test esi, esi
jne 0x41971f
mov byte [0x457ac4], 1
jmp 0x419756
cmp byte [ebp - 0x1dd], 0
jne 0x41973a
push edi
lea ecx, [ebp - 0x28]
call fcn.004021af
mov byte [ebp - 0x1dd], 1
jmp 0x419756
cmp byte [ebp - 0x1de], 0
jne 0x419756
push edi
lea ecx, [ebp - 0x88]
call fcn.004021af
mov byte [ebp - 0x1de], 1
push 0x18
pop eax
add edi, eax
sub ebx, 1
jne 0x4196e7
mov esi, dword [ebp - 0x1ec]
lea eax, [ebp - 0x28]
push eax
call fcn.00416433
mov eax, dword [ebp - 0x18]
mov ecx, 0x800
cmp eax, ecx
jb 0x419796
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], ecx
jb 0x41978a
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov word [eax + 0x1000], cx
mov eax, dword [ebp - 0x18]
cmp byte [0x457f89], 0
jne 0x419826
test eax, eax
jne 0x4197ac
cmp dword [ebp - 0x78], eax
je 0x419826
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
jb 0x4197be
mov eax, dword [ebp - 0x88]
push eax
lea ecx, [ebp - 0x108]
call fcn.004014a3
mov edi, dword [ebp - 0x1d4]
push 0x22
pop eax
or edi, 4
mov byte [ebp - 4], al
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov dword [ebp - 0x1e4], edi
jb 0x4197eb
mov eax, dword [ebp - 0x28]
push eax
lea ecx, [ebp - 0x70]
call fcn.004014a3
push 0x24
lea eax, [ebp - 0x108]
mov dword [ebp - 4], 0x23
push eax
lea eax, [ebp - 0x70]
or edi, 8
push eax
push esi
mov dword [ebp - 0x1d4], edi
mov dword [ebp - 0x1e4], edi
call fcn.004157fe
cmp eax, 6
je 0x419826
mov bl, 1
jmp 0x419828
xor bl, bl
mov eax, dword [ebp - 0x1d4]
test al, 8
je 0x41984f
and eax, 0xfffffff7
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1e4], eax
call fcn.00401770
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 4], 0x20
test al, 4
je 0x419874
and eax, 0xfffffffb
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1e4], eax
call fcn.00401770
test bl, bl
je 0x4198a7
and dword [0x457abc], 0
mov eax, 0x457aac
cmp dword [0x457ac0], 8
jb 0x419892
mov eax, dword [0x457aac]
xor ecx, ecx
push 1
mov word [eax], cx
push esi
mov byte [0x457fb8], 1
call dword [sym.imp.USER32.dll_EndDialog]
lea ecx, [ebp - 0x88]
call fcn.00401770
lea ecx, [ebp - 0x28]
call fcn.00401770
lea ecx, [ebp - 0xd0]
call fcn.00401770
lea ecx, [ebp - 0x214]
call fcn.0040174c
cmp dword [ebp + 0x10], 7
jne case.default.0x418942
cmp dword [0x457ac8], 0
jne 0x4198ed
mov dword [0x457ac8], 2
mov byte [0x457aa8], 1
jmp case.default.0x418942
cmp dword [ebp + 0x10], 3
jne 0x419948
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x41990b
mov eax, dword [ebp - 0x40]
push dword [ebp - 0x30]
mov ecx, 0x43d6c8
push eax
call fcn.0040180c
lea eax, [ebp - 0x1f0]
push eax
push dword [ebp - 0x1f4]
lea eax, [ebp - 0x138]
push eax
call fcn.00416e38
push eax
mov ecx, 0x43d6b0
call fcn.004057db
lea ecx, [ebp - 0x138]
call fcn.00401770
mov byte [0x457f8a], 1
jmp case.default.0x418942
cmp dword [ebp + 0x10], 6
jne case.default.0x418942
mov eax, dword [ebp - 0x1d8]
sub eax, edi
push 0x18
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x1dc], eax
cmp eax, 2
jb case.default.0x418942
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
mov eax, edi
mov byte [ebp - 4], 0x24
mov ebx, eax
cmp dword [ebx + 0x14], 8
jb 0x41999e
mov eax, dword [edi]
movzx eax, word [eax]
push eax
call fcn.00424aba
pop ecx
cmp eax, 0x50
je 0x4199c4
cmp eax, 0x54
je 0x4199bb
push 0x10
mov eax, 0x457b68
jmp 0x4199cb
push 7
mov eax, 0x457b38
jmp 0x4199cb
push 2
mov eax, 0x457b50
pop esi
push eax
lea ecx, [ebp - 0x28]
call fcn.004021af
xor ecx, ecx
xor eax, eax
push 7
pop edx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], edx
mov word [ebp - 0xa0], ax
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x74], edx
mov word [ebp - 0x88], ax
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0xdc], edx
mov word [ebp - 0xf0], ax
add ebx, 0x18
mov byte [ebp - 4], 0x27
push ebx
lea ecx, [ebp - 0x70]
call fcn.00401f7c
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0x28
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00415838
cmp dword [ebp - 0x1dc], 6
jb 0x419a64
lea eax, [edi + 0x78]
cmp dword [eax + 0x10], 0
je 0x419a64
lea ecx, [ebp - 0x88]
push ecx
push eax
call fcn.004058b9
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.004058b9
cmp dword [ebp - 0x18], 0
jne 0x419a84
push esi
lea eax, [ebp - 0x28]
push eax
call fcn.00416dd3
lea eax, [ebp - 0x28]
push eax
call fcn.0040584b
mov esi, dword [ebp - 0x1dc]
cmp esi, 3
jb 0x419abd
lea eax, [edi + 0x30]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x419abd
cmp dword [eax + 0x14], 8
jb 0x419aaa
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.004017b3
lea eax, [ebp - 0x28]
push eax
call fcn.0040584b
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xd0]
call fcn.00401f7c
mov byte [ebp - 4], 0x29
cmp esi, 5
jb 0x419ade
lea eax, [edi + 0x60]
cmp dword [eax + 0x10], 0
jne 0x419ae0
mov eax, ebx
push eax
lea ecx, [ebp - 0x138]
call fcn.00401f7c
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 0x2a
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.00406534
cmp dword [eax + 0x14], 8
mov ecx, eax
mov byte [ebp - 4], 0x2b
jb 0x419b11
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x28]
call fcn.004017b3
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0x2a
call fcn.00401770
push 0x4331bc
lea ecx, [ebp - 0x120]
call fcn.004014a3
lea eax, [ebp - 0x120]
mov byte [ebp - 4], 0x2c
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00405875
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0x2a
mov bl, al
call fcn.00401770
test bl, bl
jne 0x419b7b
mov ebx, str..lnk
push ebx
call fcn.00420f3e
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x28]
call fcn.004017b3
push 0
push 1
lea eax, [ebp - 0x28]
push eax
call fcn.004041f1
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x108]
call fcn.00401f7c
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0x2d
push eax
call fcn.004065a4
cmp esi, 4
jb 0x419bc9
lea eax, [edi + 0x48]
push eax
lea ecx, [ebp - 0x154]
call fcn.00401f7c
mov ebx, dword [ebp - 0x1d4]
or ebx, 0x10
jmp 0x419be2
push 0x431668
lea ecx, [ebp - 0x120]
call fcn.004014a3
mov ebx, dword [ebp - 0x1d4]
or ebx, 0x20
xor ecx, ecx
mov dword [ebp - 0x1e4], ebx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
lea ecx, [ebp - 0x58]
push eax
mov dword [ebp - 0x1d4], ebx
call fcn.0040170a
mov dword [ebp - 4], 0x2f
test bl, 0x20
je 0x419c28
and ebx, 0xffffffdf
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.00401770
mov byte [ebp - 4], 0x30
test bl, 0x10
je 0x419c4b
and ebx, 0xffffffef
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.00401770
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xa0]
push eax
push 0
call fcn.0041546a
cmp dword [ebp - 0xc0], 0
je 0x419ca7
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
jb 0x419c94
mov eax, dword [ebp - 0xd0]
push 0
push eax
push 5
mov esi, 0x1000
push esi
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
jmp 0x419cac
mov esi, 0x1000
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x419cf6
mov ecx, dword [ebp - 0x58]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, esi
jb 0x419ced
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
and dword [ebp - 0x48], 0
lea ecx, [ebp - 0x108]
xor eax, eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
call fcn.00401770
lea ecx, [ebp - 0x138]
call fcn.00401770
lea ecx, [ebp - 0xd0]
call fcn.00401770
lea ecx, [ebp - 0x70]
call fcn.00401770
lea ecx, [ebp - 0xf0]
call fcn.00401770
mov eax, dword [ebp - 0x74]
cmp eax, 8
jb 0x419d88
mov ecx, dword [ebp - 0x88]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, esi
jb 0x419d7f
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
and dword [ebp - 0x78], 0
xor eax, eax
mov word [ebp - 0x88], ax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x74], 7
cmp eax, 8
jb 0x419dec
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, esi
jb 0x419de3
lea eax, [ebp - 0x1dc]
push eax
lea eax, [ebp - 0x1d8]
push eax
call fcn.004016b3
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
push eax
push ecx
call fcn.0041be16
pop ecx
pop ecx
and dword [ebp - 0x90], 0
xor eax, eax
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
jmp 0x4190cf
cmp dword [ebp + 0x10], 7
jne case.default.0x418942
mov byte [0x457acc], 1
mov ebx, dword [ebp - 0x1d4]
lea ecx, [ebp - 0x170]
call fcn.00401770
lea ecx, [ebp - 0x208]
call fcn.0041acfa
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00401770
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x1f0]
push eax
push dword [ebp - 0x1f4]
call fcn.00416cea
test al, al
jne 0x41878c
lea ecx, [ebp - 0xb8]
call fcn.00401770
call fcn.0041be77
ret 0xc
call fcn.00402934
mov edi, edi
dec ecx
mov dword [ecx], eax
dec edi
lea eax, [ecx]
cmp al, 0x8e
inc ecx
add byte [edx - 0x72], bl
inc ecx
add bh, dl
nop
inc ecx
add byte [eax], ch
xchg ecx, eax
inc ecx
add dl, bl
xchg ecx, eax
inc ecx
add ch, ch
xchg esp, eax
inc ecx
add cl, bh
cwde
inc ecx
add dl, bl
xchg ecx, eax
inc ecx
add byte [ecx + ebx*4 + 0x41], dl
add byte [ebx], cl
sahf
inc ecx
add byte [ebx - 0x36ffbe6f], cl
xchg esp, eax
inc ecx
add byte [edx + 0x34], ch
push 0x34