Function at 0x41c920
Capabilities:
Delete file
Move file
Query environment variable

Disassembly:
push 0xffffffffffffffff
push 0x46a431
mov eax, dword fs:[0]
push eax
sub esp, 0x818
mov eax, dword [0x48c9dc]
xor eax, esp
mov dword [esp + 0x814], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48c9dc]
xor eax, esp
push eax
lea eax, [esp + 0x82c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x83c]
mov dword [esp + 0x1c], eax
xor ebx, ebx
lea ecx, [esp + 0x18]
mov dword [esp + 0x834], ebx
mov byte [esp + 0x17], 1
mov dword [esp + 0x24], ebx
call dword [sym.imp.MFC80.DLL_Ordinal_310]
push str.TEMP
mov byte [esp + 0x838], 1
call dword [sym.imp.MSVCR80.dll_getenv]
add esp, 4
push 0x4760d0
lea ecx, [esp + 0x24]
mov esi, eax
call dword [sym.imp.MFC80.DLL_Ordinal_304]
cmp esi, ebx
mov byte [esp + 0x834], 2
je 0x41c9c0
push esi
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC80.DLL_Ordinal_784]
mov eax, dword [esp + 0x844]
cmp eax, ebx
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
jl 0x41cab2
jmp 0x41c9e0
cmp byte [esp + 0x17], 0
je 0x41cb73
mov ecx, dword [esp + 0x1c]
mov esi, dword [ecx + 4]
test esi, esi
mov byte [esp + 0x17], 0
je 0x41ca91
cmp byte [esp + 0x17], 0
jne 0x41ca91
test esi, esi
mov eax, esi
je 0x41ccd6
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_781]
test ebx, ebx
lea ecx, [esp + 0x18]
jne 0x41ca47
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea edx, [esp + 0x42c]
push 0x476ab0
push edx
call edi
add esp, 0xc
jmp 0x41ca61
push ebx
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea eax, [esp + 0x430]
push 0x476aa8
push eax
call edi
add esp, 0x10
lea ecx, [esp + 0x428]
push ecx
lea ecx, [esp + 0x844]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
call dword [sym.imp.ddbpi.dll_ddbFileExists]
add esp, 8
test eax, eax
je 0x41ca89
mov byte [esp + 0x17], 1
test esi, esi
jne 0x41c9ff
mov eax, dword [esp + 0x844]
mov dword [esp + 0x24], ebx
add ebx, 1
cmp ebx, eax
jle 0x41c9e0
cmp byte [esp + 0x17], 0
je 0x41cb73
mov ebx, 2
cmp eax, ebx
jl 0x41cb73
nop
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 4]
test esi, esi
je 0x41cb63
test esi, esi
mov eax, esi
je 0x41ccd6
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_781]
push ebx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x848]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea eax, [esp + 0x434]
push str._s_s__d
push eax
call edi
add esp, 0x14
lea ecx, [ebx - 1]
push ecx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x848]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea edx, [esp + 0x34]
push str._s_s__d
push edx
call edi
add esp, 0x14
lea eax, [esp + 0x28]
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test esi, esi
jne 0x41cacf
add ebx, 1
cmp ebx, dword [esp + 0x844]
jle 0x41cac0
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x41cc1e
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 4]
test esi, esi
je 0x41cc1e
test esi, esi
mov eax, esi
je 0x41ccd6
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_781]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x844]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x430]
push 0x476a94
push ecx
call edi
add esp, 0x10
push ebx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x848]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea edx, [esp + 0x34]
push str._s_s__d
push edx
call edi
add esp, 0x14
lea eax, [esp + 0x28]
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test esi, esi
jne 0x41cb8e
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80.DLL_Ordinal_3934]
test al, al
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 4]
jne 0x41ccdb
test esi, esi
je 0x41cd73
nop
test esi, esi
mov eax, esi
je 0x41ccd6
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_781]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
push str.tmp_
lea ecx, [esp + 0x28]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x434]
push str._s_s_s
push ecx
call edi
add esp, 0x14
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x844]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea edx, [esp + 0x30]
push 0x476a94
push edx
call edi
add esp, 0x10
lea eax, [esp + 0x28]
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test esi, esi
jne 0x41cc40
jmp 0x41cd73
jmp fcn.0043f2d6
test esi, esi
je 0x41cd73
test esi, esi
mov eax, esi
je 0x41ccd6
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80.DLL_Ordinal_781]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
push str.tmp_
lea ecx, [esp + 0x848]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x434]
push str._s_s_s
push ecx
call edi
add esp, 0x14
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea ecx, [esp + 0x844]
call dword [sym.imp.MFC80.DLL_Ordinal_876]
push eax
lea edx, [esp + 0x30]
push 0x476a94
push edx
call edi
add esp, 0x10
lea eax, [esp + 0x28]
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x42c]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test esi, esi
jne 0x41cce3
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80.DLL_Ordinal_578]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80.DLL_Ordinal_578]
lea ecx, [esp + 0x840]
call dword [sym.imp.MFC80.DLL_Ordinal_578]
mov al, 1
mov ecx, dword [esp + 0x82c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x814]
xor ecx, esp
call fcn.0043f646
add esp, 0x824
ret