Function at 0x4152c8
Capabilities:
Delete file
Set environment variable
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x4152d0
push ecx
push ebx
push esi
push edi
mov eax, dword [0x416c0c]
mov byte [eax], 1
mov eax, 0x414f18
call fcn.00405f18
xor eax, eax
push ebp
push 0x415709
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x416a98]
xor edx, edx
mov dword [eax], edx
lea eax, [ebp - 0x18]
call fcn.00413494
mov edx, dword [ebp - 0x18]
mov eax, 0x41c9d4
call fcn.0040433c
lea edx, [ebp - 0x1c]
mov eax, dword [0x41c9d4]
call fcn.004133a8
mov edx, dword [ebp - 0x1c]
mov eax, 0x41c9d4
call fcn.0040433c
lea eax, [ebp - 0x20]
call fcn.00414d14
mov edx, dword [ebp - 0x20]
mov eax, 0x41c9f4
call fcn.0040433c
mov eax, dword [0x41c9f4]
call fcn.00404754
push eax
push 0x415718
call sub.kernel32.dll_SetEnvironmentVariableA
mov dl, 1
mov eax, dword [0x413a64]
call fcn.00413b00
mov dword [0x41c9e0], eax
mov eax, dword [0x41c9e0]
mov byte [eax + 4], 1
mov eax, dword [0x41c9e0]
mov byte [eax + 5], 1
mov eax, dword [0x41c9e0]
add eax, 8
mov edx, 0x415728
call fcn.0040433c
xor eax, eax
mov dword [0x41c9ec], eax
mov bl, 1
xor eax, eax
push ebp
push 0x4153d3
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x41574c
push 0xa
mov ecx, dword [0x416b28]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x40fed4]
call fcn.00412680
mov dword [0x41c9ec], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4153df
test bl, bl
je 0x415528
mov dl, 1
mov eax, dword [0x40fe58]
call fcn.00403704
mov dword [0x41c9d0], eax
mov dl, 1
mov eax, dword [0x40fe58]
call fcn.00403704
mov dword [0x41c9e4], eax
xor eax, eax
push ebp
push 0x415521
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [0x41c9ec]
mov eax, dword [0x41c9e0]
call fcn.00413c58
mov eax, dword [0x41c9e0]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x4154ff
inc eax
mov dword [ebp - 0x14], eax
mov dword [0x41c9f0], 0
mov dl, 1
mov eax, dword [0x40fe58]
call fcn.00403704
mov dword [0x41c9e8], eax
xor eax, eax
push ebp
push 0x4154e9
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x24]
mov eax, dword [0x41c9e0]
mov eax, dword [eax + 0x20]
mov edx, dword [0x41c9f0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x24]
mov ecx, dword [0x41c9e8]
mov eax, dword [0x41c9e0]
call fcn.00413b84
push dword [0x41c9f4]
push 0x41575c
lea ecx, [ebp - 0x2c]
mov eax, dword [0x41c9e0]
mov eax, dword [eax + 0x20]
mov edx, dword [0x41c9f0]
mov ebx, dword [eax]
call dword [ebx + 0xc]
push dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
mov edx, 3
call fcn.00404658
mov edx, dword [ebp - 0x28]
mov eax, dword [0x41c9e8]
call fcn.004124c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4154f0
mov eax, dword [0x41c9e8]
call fcn.00403734
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x415528
mov eax, dword [0x41c9e4]
call fcn.00403734
mov eax, dword [0x41c9d0]
call fcn.00403734
ret
mov eax, dword [0x41c9ec]
call fcn.00403734
mov bl, 1
xor eax, eax
push ebp
push 0x4155f1
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x40fe58]
call fcn.00403704
mov dword [0x41c9d0], eax
mov edx, dword [0x41c9d0]
mov eax, 0x415768
call fcn.00414e00
mov edx, 0x41c9c4
mov ecx, 0xc
mov eax, dword [0x41c9d0]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [0x41c9d0]
call fcn.00412544
mov edx, dword [0x41c9d0]
mov eax, 0x415778
call fcn.00414e00
lea eax, [ebp - 0x34]
mov edx, 0x41c9c4
call fcn.0040454c
mov edx, dword [ebp - 0x34]
lea ecx, [ebp - 0x30]
mov eax, dword [0x41c9d4]
call fcn.00414c3c
mov edx, dword [ebp - 0x30]
mov eax, 0x41c9d8
call fcn.0040433c
mov edx, dword [0x41c9d8]
mov eax, dword [0x41c9d0]
call fcn.004124c0
mov eax, dword [0x41c9d0]
call fcn.00403734
push 2
mov eax, dword [0x41c9d8]
call fcn.00404754
push eax
call sub.kernel32.dll_SetFileAttributesA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4155fd
test bl, bl
je 0x4156ee
lea eax, [ebp - 0x38]
call fcn.004135a4
mov eax, dword [ebp - 0x38]
call fcn.00404754
push eax
push 0x415780
call sub.kernel32.dll_SetEnvironmentVariableA
push 0x415790
push dword [0x41c9d8]
push 0x4157a8
lea eax, [ebp - 0x3c]
mov edx, dword [0x416bc8]
mov edx, dword [edx]
call fcn.004044e0
push dword [ebp - 0x3c]
push 0x4157b4
mov eax, 0x41c9dc
mov edx, 5
call fcn.00404658
mov eax, dword [0x41c9dc]
call fcn.00414d48
mov ebx, eax
mov eax, dword [0x41c9d8]
call fcn.00404754
push eax
call sub.kernel32.dll_DeleteFileA
mov eax, dword [0x41c9e0]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x4156dd
inc eax
mov dword [ebp - 0x14], eax
mov dword [0x41c9f0], 0
push dword [0x41c9f4]
push 0x41575c
lea ecx, [ebp - 0x44]
mov eax, dword [0x41c9e0]
mov eax, dword [eax + 0x20]
mov edx, dword [0x41c9f0]
mov esi, dword [eax]
call dword [esi + 0xc]
push dword [ebp - 0x44]
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.00404658
mov eax, dword [ebp - 0x40]
call fcn.00404754
push eax
call sub.kernel32.dll_DeleteFileA
inc dword [0x41c9f0]
dec dword [ebp - 0x14]
jne 0x415693
mov eax, dword [0x41c9e0]
call fcn.00403734
mov eax, dword [0x416a98]
mov dword [eax], ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x415710
lea eax, [ebp - 0x44]
mov edx, 0xc
call fcn.0040430c
ret