Function at 0x40d810
Capabilities:
Create process on windows
Delete file
Enumerate files on windows
Get common file path
Set current directory

Disassembly:
mov eax, 0x1404
call fcn.00411240
push ebx
push ebp
push esi
push edi
mov ebx, ecx
mov ecx, 0xfa
xor eax, eax
lea edi, [esp + 0x334]
rep stosd dword es:[edi], eax
mov ecx, 0xfa
lea edi, [esp + 0x85c]
rep stosd dword es:[edi], eax
mov ecx, 0xfa
lea edi, [esp + 0xc44]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
rep stosd dword es:[edi], eax
lea eax, [ebx + 0x18a48]
mov dword [esp + 0x14], eax
push eax
lea eax, [esp + 0x234]
push eax
call ebp
mov eax, dword [ebx + 0x5c9018]
test eax, eax
jne 0x40df4a
mov edi, 1
mov ecx, ebx
push edi
call fcn.0040e960
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
test eax, eax
jne 0x40d899
push 2
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40d8aa
lea ecx, [ebx + 0x18b4c]
lea edx, [esp + 0x230]
push ecx
push edx
call esi
mov ecx, ebx
call fcn.0040e9e0
lea eax, [esp + 0x334]
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
cmp dword [ebx + 8], edi
jne 0x40d8fe
lea ecx, [esp + 0x337]
push str.Documents_and_Settings_
push ecx
call ebp
lea edx, [esp + 0x334]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebx + 0x52e9b8]
lea ecx, [esp + 0x334]
push eax
push ecx
call esi
push 0x41ae8c
jmp 0x40d942
cmp dword [ebx + 4], edi
jne 0x40d93d
mov ecx, dword [ebx + 0x52eac8]
push 0
lea eax, [esp + 0x130]
push 2
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea edx, [esp + 0x12c]
lea eax, [esp + 0x334]
push edx
push eax
call ebp
lea ecx, [esp + 0x334]
push 0x41a23c
push ecx
jmp 0x40d94a
push 0x41ae78
lea edx, [esp + 0x338]
push edx
call esi
lea eax, [esp + 0x334]
push str.Anim_
push eax
call esi
lea edi, [ebx + 0x52eacc]
lea ecx, [esp + 0x334]
push edi
push ecx
mov dword [esp + 0x24], edi
call esi
lea edx, [esp + 0x334]
push 0x41a23c
push edx
call esi
lea eax, [esp + 0x334]
push eax
call fcn.00401940
add esp, 4
lea ecx, [esp + 0x334]
lea edx, [esp + 0x85c]
push ecx
push edx
call ebp
cmp dword [ebx + 4], 1
je 0x40d9bf
push 1
push 0
lea eax, [esp + 0x33c]
push 0
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [esp + 0x230]
lea edx, [esp + 0x85c]
push ecx
push edx
call ebp
lea eax, [ebx + 0x52ebd0]
push eax
lea eax, [esp + 0x860]
push eax
call esi
lea ecx, [esp + 0x334]
lea edx, [esp + 0xc44]
push ecx
push edx
call ebp
lea eax, [esp + 0xc44]
push edi
push eax
call esi
lea ecx, [esp + 0xc44]
push str..lnk
push ecx
call esi
mov eax, dword [ebx + 4]
push 0
cmp eax, 1
jne 0x40da44
lea edx, [esp + 0x860]
lea eax, [esp + 0x234]
push edx
push eax
push 0xf13108
lea ecx, [esp + 0xc54]
push 0xf13108
lea edx, [esp + 0x870]
push ecx
push edx
jmp 0x40da6e
lea eax, [esp + 0x860]
lea ecx, [esp + 0x234]
push eax
push ecx
push 0xf13108
lea edx, [esp + 0xc54]
push 0xf13108
lea eax, [esp + 0x870]
push edx
push eax
call fcn.004016b0
mov eax, dword [ebx + 4]
add esp, 0x1c
cmp eax, 1
mov ecx, ebx
push 7
jne 0x40daa1
call fcn.0040e960
test eax, eax
je 0x40dac2
lea ecx, [esp + 0x230]
push 1
push ecx
lea edx, [esp + 0x864]
push 0
push edx
jmp 0x40dab8
call fcn.0040e960
test eax, eax
je 0x40dac2
push 1
push 0
lea eax, [esp + 0xc4c]
push 0
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp dword [ebx + 0x52eac0], 1
jne 0x40db6c
lea ecx, [esp + 0x230]
lea edx, [esp + 0x85c]
push ecx
push edx
call ebp
lea eax, [ebx + 0x52edd8]
lea ecx, [esp + 0x85c]
push eax
push ecx
call esi
lea edx, [esp + 0x334]
lea eax, [esp + 0xc44]
push edx
push eax
call ebp
lea ecx, [esp + 0xc44]
push 0x41ae54
push ecx
call esi
lea edx, [esp + 0x85c]
push 0
lea eax, [esp + 0x234]
push edx
push eax
push 0xf13108
lea ecx, [esp + 0xc54]
push 0xf13108
lea edx, [esp + 0x870]
push ecx
push edx
call fcn.004016b0
add esp, 0x1c
mov ecx, ebx
push 6
call fcn.0040e960
test eax, eax
je 0x40db6c
push 1
push 0
lea eax, [esp + 0xc4c]
push 0
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [esp + 0x230]
lea edx, [esp + 0x85c]
push ecx
push edx
call ebp
lea eax, [esp + 0x85c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [esp + eax + 0x85b], 0x5c
je 0x40dba5
lea ecx, [esp + 0x85c]
push 0x41a23c
push ecx
call esi
lea edx, [ebx + 0x52eedc]
lea eax, [esp + 0x85c]
push edx
push eax
call esi
lea ecx, [esp + 0x334]
lea edx, [esp + 0xc44]
push ecx
push edx
call ebp
lea eax, [esp + 0xc44]
push str.Uninstall.lnk
push eax
call esi
lea ecx, [esp + 0x85c]
push 0
lea edx, [esp + 0x234]
push ecx
push edx
push 0xf13108
lea eax, [esp + 0xc54]
push 0xf13108
lea ecx, [esp + 0x870]
push eax
push ecx
call fcn.004016b0
add esp, 0x1c
mov ecx, ebx
push 3
call fcn.0040e960
test eax, eax
je 0x40dcbf
lea edx, [esp + 0x334]
mov ecx, ebx
push edx
push 0
call fcn.0040fcc0
lea eax, [esp + 0x230]
lea ecx, [esp + 0x85c]
push eax
push ecx
call ebp
lea eax, [ebx + 0x52ebd0]
lea edx, [esp + 0x85c]
push eax
push edx
call esi
lea eax, [esp + 0x334]
lea ecx, [esp + 0xc44]
push eax
push ecx
call ebp
lea edx, [esp + 0xc44]
push 0x41a23c
push edx
call esi
lea eax, [esp + 0xc44]
push edi
push eax
call esi
lea ecx, [esp + 0xc44]
push str..lnk
push ecx
call esi
lea edx, [esp + 0x85c]
push 0
lea eax, [esp + 0x234]
push edx
push eax
push 0xf13108
lea ecx, [esp + 0xc54]
push 0xf13108
lea edx, [esp + 0x870]
push ecx
push edx
call fcn.004016b0
add esp, 0x1c
mov eax, dword [ebx + 0x1dda4]
test eax, eax
jl 0x40dd00
mov ecx, eax
shl ecx, 6
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
shl ecx, 2
sub ecx, eax
lea ecx, [ebx + ecx*8 + 0x5380c0]
cmp dword [ecx], 0
jne 0x40dcfc
dec eax
sub ecx, 0x79d8
test eax, eax
jge 0x40dce2
mov dword [esp + 0x10], 0
jmp 0x40dd27
test eax, eax
jge 0x40dd0a
mov dword [esp + 0x10], 0
jmp 0x40dd27
mov ecx, eax
shl ecx, 6
add ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [ecx + ecx*4]
shl edx, 2
sub edx, eax
lea eax, [ebx + edx*8 + 0x5306ec]
mov dword [esp + 0x10], eax
lea ecx, [esp + 0x85c]
push 0x3e8
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov ecx, dword [ebx + 8]
mov eax, 1
cmp ecx, eax
jne 0x40dd87
lea edx, [esp + 0x85f]
push str.Documents_and_Settings_
push edx
call ebp
lea eax, [ebx + 0x52e9b8]
lea ecx, [esp + 0x85c]
push eax
push ecx
call esi
lea edx, [esp + 0x85c]
push str.Application_DataAnim_
push edx
call esi
lea eax, [esp + 0x85c]
push eax
call fcn.00401940
add esp, 4
jmp 0x40dde7
cmp dword [ebx + 4], eax
jne 0x40ddd8
mov edx, dword [ebx + 0x52eac8]
push 0
lea ecx, [esp + 0x130]
push 0x1a
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [esp + 0x12c]
push 0x41a9c0
push eax
call esi
lea ecx, [esp + 0x12c]
lea edx, [esp + 0x85c]
push ecx
push edx
call ebp
lea eax, [esp + 0x85c]
push eax
call fcn.00401940
add esp, 4
jmp 0x40dde7
lea ecx, [esp + 0x85c]
push 0x41a23c
push ecx
call esi
lea edx, [ebx + 0x52ecd4]
lea eax, [esp + 0x85c]
push edx
push eax
call esi
lea edi, [ebx + 0x1dda8]
mov ecx, edi
call fcn.00401ae0
push 0x3e8
mov ecx, edi
call fcn.00401b20
push 0x41ae40
mov ecx, edi
call fcn.00401cc0
lea ecx, [esp + 0x230]
push ecx
mov ecx, edi
call fcn.00401cc0
push 0x41ae40
call fcn.00401cc0
push 0x41ae3c
call fcn.00401cc0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x40de57
push 0x41a504
call fcn.00401cc0
jmp 0x40dedb
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x79d4]
mov eax, dword [eax + 0x7d4]
test eax, eax
jl 0x40dedb
lea ebx, [eax + eax*8]
shl ebx, 3
sub ebx, eax
shl ebx, 5
inc eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x79d4]
mov ecx, dword [ebx + edx + 0x57d0]
cmp ecx, 1
lea eax, [ebx + edx]
jne 0x40deca
mov eax, dword [eax + 0x57d8]
test eax, eax
jl 0x40deca
lea ecx, [esp + 0x334]
push 0xa
push ecx
push eax
call fcn.00417236
add esp, 0xc
lea edx, [esp + 0x334]
mov ecx, edi
push edx
call fcn.00401cc0
push 0x41a89c
call fcn.00401cc0
mov eax, dword [esp + 0x14]
sub ebx, 0x8e0
dec eax
mov dword [esp + 0x14], eax
jne 0x40de7b
push 0x41ae3c
mov ecx, edi
call fcn.00401cc0
lea eax, [esp + 0x102c]
push str._r_n_r_n__r_n
push eax
call ebp
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x102c]
push ecx
push edx
call esi
lea eax, [esp + 0x102c]
push 0x41adc4
push eax
call esi
lea ecx, [esp + 0x102c]
push 0x41abd8
push ecx
call esi
lea edx, [esp + 0x102c]
mov ecx, edi
push edx
call fcn.00401cc0
lea eax, [esp + 0x85c]
push eax
call fcn.00401c50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1404
ret
lea ecx, [esp + 0x334]
push 0x3e8
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov ecx, dword [ebx + 8]
mov eax, 1
cmp ecx, eax
jne 0x40df96
lea edx, [esp + 0x337]
push str.Documents_and_Settings_
push edx
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebx + 0x52e9b8]
lea ecx, [esp + 0x334]
push eax
push ecx
call esi
push 0x41ae8c
jmp 0x40dfe6
cmp dword [ebx + 4], eax
jne 0x40dfdb
mov ecx, dword [ebx + 0x52eac8]
push 0
lea eax, [esp + 0x130]
push 2
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea edx, [esp + 0x12c]
lea eax, [esp + 0x334]
push edx
push eax
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x334]
push 0x41a23c
push ecx
jmp 0x40dfee
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x41ae78
lea edx, [esp + 0x338]
push edx
call esi
lea eax, [esp + 0x334]
push str.Anim_
push eax
call esi
lea eax, [ebx + 0x52eacc]
lea ecx, [esp + 0x334]
push eax
push ecx
mov dword [esp + 0x24], eax
call esi
lea edx, [esp + 0x334]
push 0x41a23c
push edx
call esi
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x334]
lea ecx, [esp + 0x28]
push eax
push ecx
call esi
lea edx, [esp + 0x28]
push str..LNK
push edx
call esi
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x40e0a0
lea eax, [esp + 0x71c]
lea ecx, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40e0b3
lea edx, [esp + 0x334]
lea eax, [esp + 0x28]
push edx
push eax
call ebp
lea ecx, [esp + 0x748]
lea edx, [esp + 0x28]
push ecx
push edx
call esi
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40e057
lea ecx, [esp + 0x71c]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40e075
test edi, edi
mov dword [esp + 0x10], edi
je 0x40e0c8
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor edi, edi
mov dword [esp + 0x10], edi
lea ecx, [esp + 0x334]
lea edx, [esp + 0x28]
push ecx
push edx
call ebp
cmp dword [ebx + 8], 1
jne 0x40e121
lea eax, [esp + 0x334]
push 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x337]
push str.Documents_and_Settings_
push ecx
call ebp
lea edx, [ebx + 0x52e9b8]
lea eax, [esp + 0x334]
push edx
push eax
call esi
lea ecx, [esp + 0x334]
push str.Local_SettingsTemp_
push ecx
call esi
jmp 0x40e134
lea edx, [esp + 0x334]
push edx
push 0x3e8
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x334]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
lea ecx, [esp + 0x28]
push ecx
call fcn.004019f0
add esp, 4
mov ecx, ebx
push 4
call fcn.0040e960
test eax, eax
je 0x40e302
lea edx, [esp + 0x230]
lea eax, [esp + 0x334]
push edx
push eax
call ebp
lea eax, [ebx + 0x52fa08]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x40e2bf
lea eax, [ebx + 0x52fa08]
lea ecx, [esp + 0x334]
push eax
push ecx
call esi
lea edx, [esp + 0x334]
push str..
push edx
call esi
lea eax, [esp + 0x71c]
test edi, edi
push eax
jne 0x40e211
lea ecx, [esp + 0x338]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40e264
lea edx, [esp + 0x230]
lea eax, [esp + 0x28]
push edx
push eax
call ebp
lea eax, [ebx + 0x52fa08]
lea ecx, [esp + 0x28]
push eax
push ecx
call esi
lea edx, [esp + 0x28]
push 0x41a23c
push edx
call esi
lea eax, [esp + 0x748]
lea ecx, [esp + 0x28]
push eax
push ecx
call esi
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40e1a7
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40e264
lea ecx, [esp + 0x230]
lea edx, [esp + 0x28]
push ecx
push edx
call ebp
lea eax, [ebx + 0x52fa08]
push eax
lea eax, [esp + 0x2c]
push eax
call esi
lea ecx, [esp + 0x28]
push 0x41a23c
push ecx
call esi
lea edx, [esp + 0x748]
lea eax, [esp + 0x28]
push edx
push eax
call esi
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40e1a7
test edi, edi
mov dword [esp + 0x10], edi
je 0x40e27b
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [esp + 0x10], 0
lea edx, [esp + 0x230]
lea eax, [esp + 0x334]
push edx
push eax
call ebp
lea eax, [ebx + 0x52fa08]
lea ecx, [esp + 0x334]
push eax
push ecx
call esi
lea edx, [esp + 0x334]
push 0x41a23c
push edx
call esi
lea eax, [esp + 0x334]
push eax
call fcn.004019f0
add esp, 4
jmp 0x40e302
lea edi, [ebx + 0x52efe0]
mov dword [esp + 0x18], 0xa
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x40e2f1
lea ecx, [esp + 0x334]
push edi
push ecx
call esi
lea edx, [esp + 0x334]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x18]
add edi, 0x104
dec eax
mov dword [esp + 0x18], eax
jne 0x40e2cd
push 5
mov ecx, ebx
call fcn.0040e960
test eax, eax
je 0x40e46c
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x12c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x230]
lea ecx, [esp + 0x12c]
push eax
push ecx
call esi
lea edx, [esp + 0x12c]
lea eax, [esp + 0x334]
push edx
push eax
call ebp
lea ecx, [esp + 0x12c]
push str.SaveCG.
push ecx
call esi
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x71c]
test edi, edi
push edx
jne 0x40e3d0
lea eax, [esp + 0x130]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40e437
mov ecx, dword [esp + 0x71c]
and ecx, 0x10
test cl, cl
jne 0x40e35a
lea edx, [esp + 0x334]
lea eax, [esp + 0x12c]
push edx
push eax
call ebp
lea ecx, [esp + 0x12c]
push str.SaveCG_
push ecx
call esi
lea edx, [esp + 0x748]
lea eax, [esp + 0x12c]
push edx
push eax
call esi
lea ecx, [esp + 0x12c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40e35a
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40e433
mov eax, dword [esp + 0x71c]
and eax, 0x10
test al, al
jne 0x40e35a
lea ecx, [esp + 0x334]
lea edx, [esp + 0x12c]
push ecx
push edx
call ebp
lea eax, [esp + 0x12c]
push str.SaveCG_
push eax
call esi
lea ecx, [esp + 0x748]
lea edx, [esp + 0x12c]
push ecx
push edx
call esi
lea eax, [esp + 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x40e35a
test edi, edi
je 0x40e43e
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x12c]
push ecx
push edx
call ebp
lea eax, [esp + 0x12c]
push str.SaveCG_
push eax
call esi
lea ecx, [esp + 0x12c]
push ecx
call fcn.004019f0
add esp, 4
mov ecx, ebx
call fcn.0040ed40
mov eax, dword [ebx + 0x1dda4]
test eax, eax
jl 0x40e58d
mov ecx, eax
shl ecx, 6
add ecx, eax
lea ecx, [ecx + ecx*2]
lea edx, [ecx + ecx*4]
shl edx, 2
sub edx, eax
lea ecx, [ebx + edx*8 + 0x5380c0]
cmp dword [ecx], 0
jne 0x40e4af
dec eax
sub ecx, 0x79d8
test eax, eax
jge 0x40e49a
jmp 0x40e58d
test eax, eax
jl 0x40e58d
mov ecx, eax
mov dword [esp + 0x24], 0xa
shl ecx, 6
add ecx, eax
lea ecx, [ecx + ecx*2]
lea ecx, [ecx + ecx*4]
shl ecx, 2
sub ecx, eax
lea eax, [ebx + 0x25890]
mov dword [esp + 0x10], eax
lea edx, [ebx + ecx*8 + 0x5306ec]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x79d4]
mov eax, dword [edx + 0x7d4]
test eax, eax
jl 0x40e573
lea edi, [eax + eax*8]
shl edi, 3
sub edi, eax
shl edi, 5
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x334]
push eax
push ecx
call ebp
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx + 0x79d4]
mov edx, dword [ecx]
add eax, edi
cmp edx, dword [eax + 0x57d8]
jne 0x40e562
add eax, 0x5fac
push eax
lea eax, [esp + 0x338]
push eax
call esi
lea ecx, [esp + 0x334]
push 0x41a23c
push ecx
call esi
lea edx, [esp + 0x334]
push edx
call fcn.004019f0
add esp, 4
mov eax, dword [esp + 0x20]
sub edi, 0x8e0
dec eax
mov dword [esp + 0x20], eax
jne 0x40e50a
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
add ecx, 4
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
jne 0x40e4e6
lea eax, [esp + 0x28]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov ecx, dword [ebx + 8]
mov eax, 1
cmp ecx, eax
jne 0x40e5ca
lea ecx, [esp + 0x2b]
push str.Documents_and_Settings_
push ecx
call ebp
lea edx, [ebx + 0x52e9b8]
lea eax, [esp + 0x28]
push edx
push eax
call esi
push str.Application_DataAnim_
jmp 0x40e60d
cmp dword [ebx + 4], eax
jne 0x40e608
mov eax, dword [ebx + 0x52eac8]
push 0
lea edx, [esp + 0x130]
push 0x1a
push edx
push eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea ecx, [esp + 0x12c]
push 0x41a9c0
push ecx
call esi
lea edx, [esp + 0x12c]
lea eax, [esp + 0x28]
push edx
push eax
call ebp
jmp 0x40e614
push 0x41a23c
lea ecx, [esp + 0x2c]
push ecx
call esi
lea edx, [ebx + 0x52ecd4]
lea eax, [esp + 0x28]
push edx
push eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x28]
push ecx
call edi
cmp dword [ebx + 8], 1
jne 0x40e66d
lea edx, [esp + 0x28]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [esp + 0x2b]
push str.Documents_and_Settings_
push eax
call ebp
lea ecx, [ebx + 0x52e9b8]
lea edx, [esp + 0x28]
push ecx
push edx
call esi
lea eax, [esp + 0x28]
push str.Application_DataAnim_
push eax
call esi
jmp 0x40e6aa
cmp dword [ebx + 4], 1
jne 0x40e6b7
mov eax, dword [ebx + 0x52eac8]
push 0
lea edx, [esp + 0x130]
push 0x1a
push edx
push eax
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea ecx, [esp + 0x12c]
push 0x41a9c0
push ecx
call esi
lea edx, [esp + 0x12c]
lea eax, [esp + 0x28]
push edx
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
call fcn.004019f0
add esp, 4
lea edx, [esp + 0x334]
mov ecx, ebx
push edx
push 0
call fcn.0040fcc0
lea eax, [esp + 0x334]
lea ecx, [esp + 0xc44]
push eax
push ecx
call ebp
lea edx, [esp + 0xc44]
push 0x41a23c
push edx
call esi
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xc44]
push eax
push ecx
call esi
lea edx, [esp + 0xc44]
push str..lnk
push edx
call esi
lea eax, [esp + 0xc44]
push eax
call edi
mov ecx, dword [esp + 0x14]
push ecx
call fcn.004019f0
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1404
ret