Function at 0x41e37b
Capabilities:
Delete file
Move file

Disassembly:
mov eax, 0x44d1ac
call fcn.0042c4cc
sub esp, 0x824
push ebx
push esi
push edi
call fcn.0041e2f1
mov edi, eax
push edi
mov dword [ebp - 0x1c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [ebp + 0x14]
xor ebx, ebx
cmp esi, ebx
mov dword [ebp - 4], ebx
jne 0x41e3b2
push str.WritePrivateProfileStringA______pFileNameNULL_
jmp 0x41e3cb
push esi
call fcn.0042cc10
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x41e3e3
push str.WritePrivateProfileStringA______strlen_pFileName___0_
push str._s_failed_n
push 0x46abb8
call fcn.00414d1c
add esp, 0xc
push edi
jmp 0x41ea35
mov edi, dword [ebp + 8]
cmp edi, ebx
jne 0x41e3f1
push str.WritePrivateProfileStringA______lpAppNameNULL_
jmp 0x41e40a
push edi
call fcn.0042cc10
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x41e421
push str.WritePrivateProfileStringA______strlen_lpAppName___0_
push str._s_failed_n
push 0x46abb8
call fcn.00414d1c
add esp, 0xc
jmp 0x41ea32
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call fcn.004151e3
push esi
mov byte [ebp - 4], 1
call fcn.00402af4
test eax, eax
pop ecx
jne 0x41e527
cmp dword [ebp + 0xc], ebx
je 0x41e4de
cmp dword [ebp + 0x10], ebx
je 0x41e4de
push 0x463a24
push esi
call fcn.0042f145
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x41e4e3
push esi
push 0x4644c0
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
push edi
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
push 0x4644bc
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
push dword [ebp + 0xc]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
push 0x4644b8
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
push dword [ebp + 0x10]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
push 0x463154
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e4e3
push esi
call fcn.0042f049
pop ecx
push 1
pop esi
jmp 0x41e509
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x46abb8
call fcn.00414d1c
add esp, 0x14
cmp esi, ebx
je 0x41e507
push esi
call fcn.0042f049
pop ecx
xor esi, esi
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.004151e3
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x41ea3d
push 0x460e5c
push esi
call fcn.0042f145
cmp dword [ebp - 0x28], ebx
pop ecx
mov edi, eax
pop ecx
mov dword [ebp - 0x10], edi
jne 0x41e565
push 0x464468
push ebx
call fcn.0043e25c
mov esi, eax
push esi
call fcn.0042cc10
add esp, 0xc
lea ecx, [ebp - 0x30]
push eax
push esi
call fcn.00401879
push esi
call fcn.0042ef60
pop ecx
mov eax, dword [ebp - 0x2c]
mov esi, 0x44f48c
cmp eax, ebx
jne 0x41e573
mov eax, esi
push 0x464464
push eax
call fcn.0042f145
pop ecx
mov ebx, eax
test edi, edi
pop ecx
mov dword [ebp - 0x18], ebx
je 0x41e9f2
test ebx, ebx
je 0x41e9f2
and byte [ebp - 0x11], 0
mov edi, 0x400
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
and byte [ebp - 0x830], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.0042eefe
add esp, 0xc
test eax, eax
je 0x41e826
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.0042cda1
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push 0x464460
push eax
call fcn.0042cff8
add esp, 0x14
test eax, eax
je 0x41e817
push eax
call fcn.0041e315
mov esi, eax
pop ecx
cmp byte [esi], 0x5b
jne 0x41e817
push 0x46445c
push esi
call fcn.0042d7f4
pop ecx
test eax, eax
pop ecx
je 0x41e817
push esi
call fcn.0042ce3b
mov esi, eax
mov dword [esp], 0x46445c
push esi
call fcn.0042d7f4
and byte [eax], 0
push esi
call fcn.0041e315
push dword [ebp + 8]
push eax
call fcn.0042d0a4
add esp, 0x14
test eax, eax
jne 0x41e817
cmp dword [ebp + 0xc], eax
je 0x41e7c1
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.0042f0c6
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41e834
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
and byte [ebp - 0x830], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.0042eefe
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.0042cda1
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push eax
call fcn.0041e315
mov ebx, eax
push 0x4644b8
push ebx
call fcn.0042d7f4
add esp, 0x24
mov dword [ebp - 0x20], eax
test eax, eax
je 0x41e6e8
and byte [eax], 0
push ebx
call fcn.0041e315
pop ecx
mov ebx, eax
push dword [ebp + 0xc]
push ebx
call fcn.0042d0a4
mov esi, eax
pop ecx
neg esi
sbb esi, esi
pop ecx
inc esi
cmp dword [ebp - 0x20], 0
je 0x41e704
test esi, esi
jne 0x41e739
cmp byte [ebx], 0x5b
je 0x41e739
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41e739
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.0042f0c6
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41e85e
jmp 0x41e680
cmp dword [ebp + 0x10], 0
je 0x41e792
mov ebx, dword [ebp - 0x18]
push ebx
push dword [ebp + 0xc]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e877
push ebx
push 0x4644b8
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e877
push ebx
push dword [ebp + 0x10]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e877
push ebx
push 0x463154
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e877
test esi, esi
jne 0x41e7b8
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.0042f0c6
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41e85e
mov ebx, dword [ebp - 0x18]
mov byte [ebp - 0x11], 1
jmp 0x41e826
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.0042eefe
movsx eax, byte [ebp - 0x430]
push eax
lea esi, [ebp - 0x430]
call fcn.0042ee6f
add esp, 0x10
test eax, eax
je 0x41e807
push esi
call fcn.0042ce3b
mov esi, eax
movsx eax, byte [esi]
push eax
call fcn.0042ee6f
pop ecx
pop ecx
jmp 0x41e7ee
cmp byte [esi], 0x5b
je 0x41e817
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41e826
jmp 0x41e7c1
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.0042f0c6
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41e8a4
jmp 0x41e59e
push str.fputs_line_tmp_
push str._s_failed_n
push 0x46abb8
call fcn.00414d1c
push ebx
call fcn.0042f049
push dword [ebp - 0x10]
call fcn.0042f049
add esp, 0x14
jmp 0x41e507
push str.fputs_line_tmp_
push str._s_failed_n
push 0x46abb8
call fcn.00414d1c
push dword [ebp - 0x18]
jmp 0x41e849
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push str.Win9XWritePrivateProfileString___:_Error_writing__s_s_to_temp_file
push 0x46abb8
call fcn.00414d1c
push dword [ebp - 0x18]
call fcn.0042f049
push dword [ebp - 0x10]
call fcn.0042f049
add esp, 0x18
jmp 0x41e507
cmp byte [ebp - 0x11], 0
jne 0x41e961
cmp dword [ebp + 0xc], 0
je 0x41e961
cmp dword [ebp + 0x10], 0
je 0x41e961
push ebx
push 0x464404
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e933
push ebx
push dword [ebp + 8]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e933
push ebx
push 0x4644bc
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e933
push ebx
push dword [ebp + 0xc]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e933
push ebx
push 0x4644b8
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e933
push ebx
push dword [ebp + 0x10]
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jl 0x41e933
push ebx
push 0x463154
call fcn.0042f0c6
pop ecx
test eax, eax
pop ecx
jge 0x41e961
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x46abb8
call fcn.00414d1c
push ebx
call fcn.0042f049
push dword [ebp - 0x10]
call fcn.0042f049
add esp, 0x1c
jmp 0x41e507
push dword [ebp - 0x10]
call fcn.0042f049
push ebx
call fcn.0042ec43
push ebx
call fcn.0042f049
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
and dword [ebp + 0xc], 0
add esp, 0xc
push dword [ebp + 0x14]
call esi
mov ebx, eax
test ebx, ebx
jne 0x41e9d5
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 5
jne 0x41e9cd
cmp dword [ebp + 0xc], eax
jge 0x41e9cd
call edi
push eax
push str.Win9XWritePrivateProfileString____DeleteFile_failed___GetLastError___d
push 0x46abb8
call fcn.00414d1c
add esp, 0xc
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
push dword [ebp + 0x14]
inc dword [ebp + 0xc]
call esi
mov ebx, eax
test ebx, ebx
je 0x41e993
test ebx, ebx
je 0x41e507
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x41e9e1
mov eax, 0x44f48c
push dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov esi, eax
jmp 0x41e509
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x41e9fb
mov eax, esi
push eax
push str.GetPrivateProfileStringA___fails_calling_fopen_on__s_n
push 0x46abb8
call fcn.00414b92
add esp, 0xc
test edi, edi
je 0x41ea19
push edi
call fcn.0042f049
pop ecx
test ebx, ebx
je 0x41ea24
push ebx
call fcn.0042f049
pop ecx
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.004151e3
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret