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

Disassembly:
push 0x208
mov eax, 0x430fd1
call fcn.0041c468
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 0x41a3ed
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 0x418d50
mov eax, dword [ebp - 0xb8]
push 0x3d
push ecx
push dword [ebp - 0xa8]
push eax
call fcn.00405712
mov esi, eax
cmp esi, 0xffffffff
je 0x418de5
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.00401fd0
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.004057f6
lea ecx, [ebp - 0x70]
call fcn.00401770
lea eax, [ebp - 0x40]
push eax
call fcn.00409adc
cmp dword [ebp - 0xa8], esi
jb 0x41a40d
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov dword [ebp - 0xa8], esi
jb 0x418ddf
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.00409c69
test al, al
je 0x418e92
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x208]
call fcn.00416674
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x1f8]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00409c69
test al, al
jne 0x418e4d
mov eax, dword [ebp - 0x204]
mov edi, dword [ebp - 0x208]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1dc], edi
push dword [ebx*4 + 0x43e6fc]
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.0040a251
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 3
mov esi, eax
call fcn.00401770
test esi, esi
je 0x418ed2
inc ebx
cmp ebx, 0xe
jb 0x418e92
jmp case.default.0x418edb
cmp ebx, 0xd
ja case.default.0x418edb
jmp dword [ebx*4 + 0x41a413]
cmp dword [ebp + 0x10], 2
jne case.default.0x418edb
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.00405d94
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00406449
lea ecx, [ebp - 0xd8]
call fcn.00404c3a
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0xd8]
call fcn.00404d76
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.00404cc7
test al, al
je 0x4192ba
mov edi, dword [ebp - 0x1d4]
push ebx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00404a2f
cmp byte [ebp - 0x1ac], 0
je 0x4190f4
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.00405f86
lea eax, [ebp - 0xa0]
push eax
call fcn.00405866
mov eax, dword [ebp - 0x48]
cmp eax, 4
jb 0x419026
cmp eax, dword [ebp - 0x90]
ja 0x419037
lea eax, [ebp - 0x40]
push eax
call fcn.00406417
test al, al
jne 0x419267
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 0x41908a
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 0x4190f4
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1e8], ecx
cmp eax, 0x1000
jb 0x4190eb
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.0041c3b6
pop ecx
pop ecx
lea eax, [ebp - 0x1d0]
push eax
call fcn.00404461
cmp eax, 0xffffffff
je 0x41924a
lea eax, [ebp - 0x1d0]
push eax
call fcn.004043a5
test al, al
jne 0x41924a
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.00404085
or edi, 0x200
push 0x4326bc
lea eax, [ebp - 0x1d0]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.0040559c
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0xc
push ecx
push eax
push dword [ebp - 0x1dc]
lea ecx, [ebp - 0x70]
call fcn.004040ca
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.004057f6
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.00404461
cmp eax, 0xffffffff
je 0x4191f5
inc esi
cmp esi, 0x3e8
jb 0x419136
cmp dword [ebp - 0x1bc], 8
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 0x1d4], edi
jb 0x419210
mov ecx, dword [ebp - 0x1d0]
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x41921c
mov eax, dword [ebp - 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x41923e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x419234
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.00404cc7
test al, al
jne 0x418fbd
jmp 0x4192ba
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x4192ba
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1e8], ecx
cmp eax, 0x1000
jb 0x4192b1
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.0041c3b6
pop ecx
pop ecx
lea ecx, [ebp - 0x1d0]
call fcn.00401770
lea ecx, [ebp - 0xd8]
call fcn.00404c5b
lea ecx, [ebp - 0x88]
call fcn.00401770
lea ecx, [ebp - 0x58]
call fcn.00401770
jmp case.default.0x418edb
cmp dword [ebp + 0x10], 0
jne case.default.0x418edb
cmp dword [0x43e6a8], 0
je 0x419313
mov ebx, str._br_
push ebx
call fcn.004214de
pop ecx
push eax
push ebx
mov ecx, 0x43e698
call fcn.004017b3
cmp byte [ebp - 0x1dd], 0
je 0x41933a
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x120]
call fcn.00401fa4
mov ebx, dword [ebp - 0x1d4]
mov byte [ebp - 4], 0xe
or ebx, 1
jmp 0x419363
lea eax, [ebp - 0x1f0]
push eax
push dword [ebp - 0x1f4]
lea eax, [ebp - 0x138]
push eax
call fcn.004173ca
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 0x419379
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, 0x43e698
call fcn.004017b3
test bl, 2
je 0x4193a6
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 0x41a3b7
and ebx, 0xfffffffe
lea ecx, [ebp - 0x120]
mov dword [ebp - 0x1d4], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.00401770
jmp 0x41a3b7
cmp dword [ebp + 0x10], 0
jne case.default.0x418edb
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x1ec]
call fcn.00401b39
jmp case.default.0x418edb
cmp dword [ebp + 0x10], 0
jne case.default.0x418edb
cmp dword [0x45aae0], 0
jne case.default.0x418edb
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00401fa4
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x10
cmp edi, 2
jbe 0x41949e
cmp ecx, 8
lea esi, [ebp - 0x28]
sbb dl, dl
inc dl
cmp ecx, 8
jb 0x419439
mov esi, eax
push 0x22
pop ebx
cmp word [esi], bx
jne 0x41949e
lea esi, [ebp - 0x28]
test dl, dl
je 0x41944a
mov esi, eax
cmp word [esi + edi*2 - 2], bx
jne 0x41949e
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.00401fd0
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.004057f6
lea ecx, [ebp - 0x70]
call fcn.00401770
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
jmp 0x4194a4
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 0x4194b6
mov esi, eax
cmp word [esi], 0x2e
jne 0x4194f3
lea ecx, [ebp - 0x28]
test dl, dl
je 0x4194c5
mov ecx, eax
push 0x5c
pop esi
cmp word [ecx + 2], si
jne 0x4194f6
lea ecx, [ebp - 0x28]
test dl, dl
je 0x4194d7
mov ecx, eax
xor eax, eax
cmp word [ecx + 4], ax
lea ecx, [ebp - 0x28]
je 0x4193cb
push 2
push eax
call fcn.0040677e
jmp 0x4195ea
push 0x5c
pop esi
lea ecx, [ebp - 0x28]
test dl, dl
je 0x4194ff
mov ecx, eax
cmp word [ecx], si
je 0x4195ea
lea eax, [ebp - 0x28]
push eax
call fcn.00406360
test al, al
jne 0x4195ea
xor eax, eax
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], eax
mov word [ebp - 0x58], ax
push 0x432668
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.0041713d
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.00405866
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x138]
push eax
call fcn.0040554f
push eax
lea ecx, [ebp - 0x28]
call fcn.004057f6
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, 0x45aad0
push eax
call fcn.004021d7
lea eax, [ebp - 0x28]
push eax
call fcn.00416e9b
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, 0x45aad0
cmp dword [0x45aae4], edi
jb 0x41962d
mov eax, dword [0x45aad0]
push eax
push 0
push 0x143
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x28]
mov ecx, 0x45aad0
push eax
call fcn.00403eee
test al, al
jne 0x419668
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
jb 0x419659
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 0x4193cb
cmp dword [0x45aac8], 1
je case.default.0x418edb
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419689
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
push eax
call fcn.00409de3
test al, al
je 0x4196b2
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x4196a2
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
sub eax, 0x30
mov dword [0x45aac8], eax
jmp case.default.0x418edb
mov dword [0x45aac8], 2
jmp case.default.0x418edb
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x4196cd
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
xor ecx, ecx
sub eax, ecx
je 0x419712
sub eax, 0x30
je 0x419701
sub eax, 1
je 0x419712
mov ebx, dword [ebp - 0x1d4]
sub eax, 1
jne 0x41a3b7
mov byte [0x45afbb], 1
mov byte [0x45afc0], cl
jmp 0x41a3b7
mov byte [0x45afbb], cl
mov byte [0x45afc0], cl
jmp case.default.0x418edb
mov byte [0x45afbb], cl
mov byte [0x45afc0], 1
jmp case.default.0x418edb
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419730
mov eax, dword [ebp - 0x40]
movzx eax, word [eax]
push eax
call fcn.0042502a
pop ecx
cmp eax, 0x46
je 0x419767
mov ebx, dword [ebp - 0x1d4]
cmp eax, 0x55
je 0x41975b
xor eax, eax
mov byte [0x45afc1], al
mov byte [0x45afc2], al
jmp 0x41a3b7
mov byte [0x45afc2], 1
jmp 0x41a3b7
mov byte [0x45afc1], 1
jmp case.default.0x418edb
xor edi, edi
mov byte [0x45af8b], 1
lea eax, [ebp - 0x40]
inc edi
push eax
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x1d8], edi
call fcn.00401fa4
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 0x4197aa
mov eax, dword [ebp - 0x40]
cmp word [eax], 0x3c
mov esi, ebx
jne 0x419a1d
lea ecx, [ebp - 0x40]
test dl, dl
je 0x4197c0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
mov esi, ebx
mov dword [ebp - 0x1e8], esi
cmp eax, 1
jbe 0x4197f6
mov dword [ebp - 0x1e8], esi
lea edi, [ecx + 2]
sub eax, 1
je 0x4197f6
mov dword [ebp - 0x1e8], esi
cmp word [edi], 0x3e
je 0x419950
add edi, 2
sub eax, 1
jne 0x4197e4
or edi, 0xffffffff
cmp edi, 0xffffffff
je 0x419a17
lea eax, [ebp - 0x40]
test dl, dl
je 0x41980c
mov eax, dword [ebp - 0x40]
lea esi, [eax + 2]
lea esi, [esi + edi*2]
push esi
call fcn.004214de
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 0x41a40d
dec edi
dec ecx
cmp ecx, edi
jb 0x419845
mov ecx, edi
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419851
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.00409c69
mov edi, dword [ebp - 0x1d8]
test al, al
je 0x419961
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.0040a251
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
mov esi, eax
call fcn.00401770
neg esi
lea ecx, [ebp - 0x70]
push 0x4341b8
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.0040a251
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
mov esi, eax
call fcn.00401770
test esi, esi
jne 0x419904
push 3
pop edi
push 0x4341c0
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.0040a251
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x17
mov esi, eax
call fcn.00401770
test esi, esi
jne 0x419937
push 6
pop edi
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1fc]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00409c69
jmp 0x419895
test edi, edi
je 0x4197f6
sub edi, ecx
sar edi, 1
jmp 0x4197f9
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x4199ae
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x1dc], ecx
cmp eax, 0x1000
jb 0x4199a5
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.0041c3b6
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 0x419a0f
mov ecx, dword [ebp - 0x58]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, 0x1000
jb 0x419a06
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.0041c3b6
pop ecx
pop ecx
mov esi, dword [ebp - 0x1e8]
jmp 0x419a1f
mov edi, dword [ebp - 0x1d8]
xor ebx, ebx
cmp dword [ebp + 0x10], 5
jne 0x419a2e
cmp esi, 9
jne 0x419a57
push 1
jmp 0x419a3a
cmp dword [ebp + 0x10], 4
jne 0x419a57
cmp esi, 6
jne 0x419a57
push ebx
push edi
sub esp, 0x18
lea eax, [ebp - 0xd0]
mov ecx, esp
push eax
call fcn.00401fa4
push dword [ebp - 0x1ec]
call fcn.0041a800
lea ecx, [ebp - 0xd0]
jmp 0x4192de
cmp dword [ebp - 0x30], 0
mov byte [0x45af94], 1
je case.default.0x418edb
lea eax, [ebp - 0x40]
push eax
call fcn.0040beec
mov dword [0x43e6e0], eax
jmp case.default.0x418edb
cmp dword [ebp + 0x10], 1
jne 0x419e69
push 0x20a
call fcn.0041c386
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.00405866
xor eax, eax
push eax
mov esi, eax
lea eax, [ebp - 0x58]
push eax
call fcn.00404085
mov ebx, dword [ebp - 0x1d4]
or ebx, 0x40
push dword [0x43e664]
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0040559c
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
push ecx
push eax
push dword [ebp - 0x1dc]
lea ecx, [ebp - 0xf0]
call fcn.004040ca
lea eax, [ebp - 0xf0]
or ebx, 0x80
mov edi, 0x45aaac
mov dword [ebp - 0x1d4], ebx
push eax
mov ecx, edi
mov dword [ebp - 0x1e4], ebx
call fcn.004057f6
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.0040444f
test al, al
je 0x419c20
inc esi
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.00404085
or ebx, 0x40
push dword [0x43e664]
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 0x1d
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.0040559c
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
push ecx
push eax
push dword [ebp - 0x1dc]
lea ecx, [ebp - 0xf0]
call fcn.004040ca
lea eax, [ebp - 0xf0]
or ebx, 0x80
push eax
mov ecx, edi
mov dword [ebp - 0x1e4], ebx
call fcn.004057f6
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.0040444f
test al, al
jne 0x419b8b
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 0x419cff
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.0040edc8
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x20
mov esi, eax
call fcn.00401770
test esi, esi
jne 0x419cb8
mov byte [0x45aac4], 1
jmp 0x419cef
cmp byte [ebp - 0x1dd], 0
jne 0x419cd3
push edi
lea ecx, [ebp - 0x28]
call fcn.004021d7
mov byte [ebp - 0x1dd], 1
jmp 0x419cef
cmp byte [ebp - 0x1de], 0
jne 0x419cef
push edi
lea ecx, [ebp - 0x88]
call fcn.004021d7
mov byte [ebp - 0x1de], 1
push 0x18
pop eax
add edi, eax
sub ebx, 1
jne 0x419c80
mov esi, dword [ebp - 0x1ec]
lea eax, [ebp - 0x28]
push eax
call fcn.004169b3
mov eax, dword [ebp - 0x18]
mov ecx, 0x800
cmp eax, ecx
jb 0x419d2f
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], ecx
jb 0x419d23
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov word [eax + 0x1000], cx
mov eax, dword [ebp - 0x18]
cmp byte [0x45af89], 0
jne 0x419dbf
test eax, eax
jne 0x419d45
cmp dword [ebp - 0x78], eax
je 0x419dbf
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
jb 0x419d57
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 0x419d84
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.00415d7e
cmp eax, 6
je 0x419dbf
mov bl, 1
jmp 0x419dc1
xor bl, bl
mov eax, dword [ebp - 0x1d4]
test al, 8
je 0x419de8
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 0x419e0d
and eax, 0xfffffffb
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1e4], eax
call fcn.00401770
test bl, bl
je 0x419e40
and dword [0x45aabc], 0
mov eax, 0x45aaac
cmp dword [0x45aac0], 8
jb 0x419e2b
mov eax, dword [0x45aaac]
xor ecx, ecx
push 1
mov word [eax], cx
push esi
mov byte [0x45afb8], 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.0x418edb
cmp dword [0x45aac8], 0
jne 0x419e86
mov dword [0x45aac8], 2
mov byte [0x45aaa8], 1
jmp case.default.0x418edb
cmp dword [ebp + 0x10], 3
jne 0x419ee1
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x419ea4
mov eax, dword [ebp - 0x40]
push dword [ebp - 0x30]
mov ecx, 0x43e6c8
push eax
call fcn.0040180c
lea eax, [ebp - 0x1f0]
push eax
push dword [ebp - 0x1f4]
lea eax, [ebp - 0x138]
push eax
call fcn.004173ca
push eax
mov ecx, 0x43e6b0
call fcn.004057f6
lea ecx, [ebp - 0x138]
call fcn.00401770
mov byte [0x45af8a], 1
jmp case.default.0x418edb
cmp dword [ebp + 0x10], 6
jne case.default.0x418edb
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.0x418edb
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 0x419f37
mov eax, dword [edi]
movzx eax, word [eax]
push eax
call fcn.0042502a
pop ecx
cmp eax, 0x50
je 0x419f5d
cmp eax, 0x54
je 0x419f54
push 0x10
mov eax, 0x45ab68
jmp 0x419f64
push 7
mov eax, 0x45ab38
jmp 0x419f64
push 2
mov eax, 0x45ab50
pop esi
push eax
lea ecx, [ebp - 0x28]
call fcn.004021d7
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.00401fa4
lea eax, [ebp - 0xf0]
mov byte [ebp - 4], 0x28
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00415db8
cmp dword [ebp - 0x1dc], 6
jb 0x419ffd
lea eax, [edi + 0x78]
cmp dword [eax + 0x10], 0
je 0x419ffd
lea ecx, [ebp - 0x88]
push ecx
push eax
call fcn.004058d4
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.004058d4
cmp dword [ebp - 0x18], 0
jne 0x41a01d
push esi
lea eax, [ebp - 0x28]
push eax
call fcn.00417365
lea eax, [ebp - 0x28]
push eax
call fcn.00405866
mov esi, dword [ebp - 0x1dc]
cmp esi, 3
jb 0x41a056
lea eax, [edi + 0x30]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x41a056
cmp dword [eax + 0x14], 8
jb 0x41a043
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.004017b3
lea eax, [ebp - 0x28]
push eax
call fcn.00405866
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xd0]
call fcn.00401fa4
mov byte [ebp - 4], 0x29
cmp esi, 5
jb 0x41a077
lea eax, [edi + 0x60]
cmp dword [eax + 0x10], 0
jne 0x41a079
mov eax, ebx
push eax
lea ecx, [ebp - 0x138]
call fcn.00401fa4
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 0x2a
push eax
lea eax, [ebp - 0x120]
push eax
call fcn.0040654f
cmp dword [eax + 0x14], 8
mov ecx, eax
mov byte [ebp - 4], 0x2b
jb 0x41a0aa
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 0x4341dc
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.00405890
lea ecx, [ebp - 0x120]
mov byte [ebp - 4], 0x2a
mov bl, al
call fcn.00401770
test bl, bl
jne 0x41a114
mov ebx, str..lnk
push ebx
call fcn.004214de
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.00404235
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x108]
call fcn.00401fa4
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0x2d
push eax
call fcn.004065bf
cmp esi, 4
jb 0x41a162
lea eax, [edi + 0x48]
push eax
lea ecx, [ebp - 0x154]
call fcn.00401fa4
mov ebx, dword [ebp - 0x1d4]
or ebx, 0x10
jmp 0x41a17b
push 0x432668
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 0x41a1c1
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 0x41a1e4
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.004159ea
cmp dword [ebp - 0xc0], 0
je 0x41a240
cmp dword [ebp - 0xbc], 8
lea eax, [ebp - 0xd0]
jb 0x41a22d
mov eax, dword [ebp - 0xd0]
push 0
push eax
push 5
mov esi, 0x1000
push esi
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
jmp 0x41a245
mov esi, 0x1000
mov eax, dword [ebp - 0x44]
cmp eax, 8
jb 0x41a28f
mov ecx, dword [ebp - 0x58]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, esi
jb 0x41a286
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.0041c3b6
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 0x41a321
mov ecx, dword [ebp - 0x88]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, esi
jb 0x41a318
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.0041c3b6
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 0x41a385
mov ecx, dword [ebp - 0xa0]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 0x1d8], ecx
cmp eax, esi
jb 0x41a37c
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.0041c3b6
pop ecx
pop ecx
and dword [ebp - 0x90], 0
xor eax, eax
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
jmp 0x419668
inc dword [ebx + 0x7507107d]
pop es
cmp dword [ebp + 0x10], 7
jne case.default.0x418edb
mov byte [0x45aacc], 1
mov ebx, dword [ebp - 0x1d4]
lea ecx, [ebp - 0x170]
call fcn.00401770
lea ecx, [ebp - 0x208]
call fcn.0041b29a
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.0041726a
test al, al
jne 0x418d1c
lea ecx, [ebp - 0xb8]
call fcn.00401770
call fcn.0041c417
ret 0xc
call fcn.004029a7
nop
loop 0x41a3a3
inc ecx
add al, ch
xchg edx, eax
inc ecx
add ch, dl
xchg ebx, eax
inc ecx
add bl, dh
xchg ebx, eax
inc ecx
add byte [eax - 0x6a], dh
inc ecx
add cl, al
xchg esi, eax
inc ecx
add byte [ebx - 0x69], dh
inc ecx
add byte [esi - 0x6dffbe66], al
sahf
inc ecx
add byte [ebx - 0x69], dh
inc ecx
add ch, ch
sahf
inc ecx
add byte [ebx - 0x68dbffbf], ah
inc ecx
add byte [edx - 0x66], ah
inc ecx
add byte [edx + 0x34], ch
push 0x34