Function at 0x41e553
Capabilities:
Delete file
Move file

Disassembly:
mov eax, 0x452918
call fcn.00432d7c
sub esp, 0x824
push ebx
push esi
push edi
call fcn.0041e4c9
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 0x41e58a
push str.WritePrivateProfileStringA______pFileNameNULL_
jmp 0x41e5a3
push esi
call fcn.00432d00
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x41e5bb
push str.WritePrivateProfileStringA______strlen_pFileName___0_
push str._s_failed_n
push 0x471d20
call fcn.00415dff
add esp, 0xc
push edi
jmp 0x41ec0d
mov edi, dword [ebp + 8]
cmp edi, ebx
jne 0x41e5c9
push str.WritePrivateProfileStringA______lpAppNameNULL_
jmp 0x41e5e2
push edi
call fcn.00432d00
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x41e5f9
push str.WritePrivateProfileStringA______strlen_lpAppName___0_
push str._s_failed_n
push 0x471d20
call fcn.00415dff
add esp, 0xc
jmp 0x41ec0a
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call fcn.004017f0
push esi
mov byte [ebp - 4], 1
call fcn.0041a8b9
test eax, eax
pop ecx
jne 0x41e6ff
cmp dword [ebp + 0xc], ebx
je 0x41e6b6
cmp dword [ebp + 0x10], ebx
je 0x41e6b6
push 0x46a020
push esi
call fcn.004343be
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x41e6bb
push esi
push 0x46a5d4
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
push edi
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
push 0x46a5d0
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
push dword [ebp + 0xc]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
push 0x466ed4
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
push dword [ebp + 0x10]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
push 0x4693b0
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41e6bb
push esi
call fcn.0043219c
pop ecx
push 1
pop esi
jmp 0x41e6e1
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x471d20
call fcn.00415dff
add esp, 0x14
cmp esi, ebx
je 0x41e6df
push esi
call fcn.0043219c
pop ecx
xor esi, esi
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.004017f0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x41ec15
push 0x46a580
push esi
call fcn.004343be
cmp dword [ebp - 0x28], ebx
pop ecx
mov edi, eax
pop ecx
mov dword [ebp - 0x10], edi
jne 0x41e73d
push 0x46a57c
push ebx
call fcn.00443005
mov esi, eax
push esi
call fcn.00432d00
add esp, 0xc
lea ecx, [ebp - 0x30]
push eax
push esi
call fcn.00405170
push esi
call fcn.0043285d
pop ecx
mov eax, dword [ebp - 0x2c]
mov esi, 0x45561c
cmp eax, ebx
jne 0x41e74b
mov eax, esi
push 0x46a578
push eax
call fcn.004343be
pop ecx
mov ebx, eax
test edi, edi
pop ecx
mov dword [ebp - 0x18], ebx
je 0x41ebca
test ebx, ebx
je 0x41ebca
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.004342dd
add esp, 0xc
test eax, eax
je 0x41e9fe
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.004311ad
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push 0x46a574
push eax
call fcn.00431767
add esp, 0x14
test eax, eax
je 0x41e9ef
push eax
call fcn.0041e4ed
mov esi, eax
pop ecx
cmp byte [esi], 0x5b
jne 0x41e9ef
push 0x46a570
push esi
call fcn.00432085
pop ecx
test eax, eax
pop ecx
je 0x41e9ef
push esi
call fcn.00431247
mov esi, eax
mov dword [esp], 0x46a570
push esi
call fcn.00432085
and byte [eax], 0
push esi
call fcn.0041e4ed
push dword [ebp + 8]
push eax
call fcn.00431813
add esp, 0x14
test eax, eax
jne 0x41e9ef
cmp dword [ebp + 0xc], eax
je 0x41e999
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.0043433f
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41ea0c
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
and byte [ebp - 0x830], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.004342dd
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.004311ad
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push eax
call fcn.0041e4ed
mov ebx, eax
push 0x466ed4
push ebx
call fcn.00432085
add esp, 0x24
mov dword [ebp - 0x20], eax
test eax, eax
je 0x41e8c0
and byte [eax], 0
push ebx
call fcn.0041e4ed
pop ecx
mov ebx, eax
push dword [ebp + 0xc]
push ebx
call fcn.00431813
mov esi, eax
pop ecx
neg esi
sbb esi, esi
pop ecx
inc esi
cmp dword [ebp - 0x20], 0
je 0x41e8dc
test esi, esi
jne 0x41e911
cmp byte [ebx], 0x5b
je 0x41e911
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41e911
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.0043433f
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41ea36
jmp 0x41e858
cmp dword [ebp + 0x10], 0
je 0x41e96a
mov ebx, dword [ebp - 0x18]
push ebx
push dword [ebp + 0xc]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41ea4f
push ebx
push 0x466ed4
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41ea4f
push ebx
push dword [ebp + 0x10]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41ea4f
push ebx
push 0x4693b0
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41ea4f
test esi, esi
jne 0x41e990
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.0043433f
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41ea36
mov ebx, dword [ebp - 0x18]
mov byte [ebp - 0x11], 1
jmp 0x41e9fe
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.004342dd
movsx eax, byte [ebp - 0x430]
push eax
lea esi, [ebp - 0x430]
call fcn.0043424e
add esp, 0x10
test eax, eax
je 0x41e9df
push esi
call fcn.00431247
mov esi, eax
movsx eax, byte [esi]
push eax
call fcn.0043424e
pop ecx
pop ecx
jmp 0x41e9c6
cmp byte [esi], 0x5b
je 0x41e9ef
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41e9fe
jmp 0x41e999
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.0043433f
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41ea7c
jmp 0x41e776
push str.fputs_line_tmp_
push str._s_failed_n
push 0x471d20
call fcn.00415dff
push ebx
call fcn.0043219c
push dword [ebp - 0x10]
call fcn.0043219c
add esp, 0x14
jmp 0x41e6df
push str.fputs_line_tmp_
push str._s_failed_n
push 0x471d20
call fcn.00415dff
push dword [ebp - 0x18]
jmp 0x41ea21
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push str.Win9XWritePrivateProfileString___:_Error_writing__s_s_to_temp_file
push 0x471d20
call fcn.00415dff
push dword [ebp - 0x18]
call fcn.0043219c
push dword [ebp - 0x10]
call fcn.0043219c
add esp, 0x18
jmp 0x41e6df
cmp byte [ebp - 0x11], 0
jne 0x41eb39
cmp dword [ebp + 0xc], 0
je 0x41eb39
cmp dword [ebp + 0x10], 0
je 0x41eb39
push ebx
push 0x46a518
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41eb0b
push ebx
push dword [ebp + 8]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41eb0b
push ebx
push 0x46a5d0
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41eb0b
push ebx
push dword [ebp + 0xc]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41eb0b
push ebx
push 0x466ed4
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41eb0b
push ebx
push dword [ebp + 0x10]
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jl 0x41eb0b
push ebx
push 0x4693b0
call fcn.0043433f
pop ecx
test eax, eax
pop ecx
jge 0x41eb39
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x471d20
call fcn.00415dff
push ebx
call fcn.0043219c
push dword [ebp - 0x10]
call fcn.0043219c
add esp, 0x1c
jmp 0x41e6df
push dword [ebp - 0x10]
call fcn.0043219c
push ebx
call fcn.004325f7
push ebx
call fcn.0043219c
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 0x41ebad
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 5
jne 0x41eba5
cmp dword [ebp + 0xc], eax
jge 0x41eba5
call edi
push eax
push str.Win9XWritePrivateProfileString____DeleteFile_failed___GetLastError___d
push 0x471d20
call fcn.00415dff
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 0x41eb6b
test ebx, ebx
je 0x41e6df
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x41ebb9
mov eax, 0x45561c
push dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov esi, eax
jmp 0x41e6e1
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x41ebd3
mov eax, esi
push eax
push str.GetPrivateProfileStringA___fails_calling_fopen_on__s_n
push 0x471d20
call fcn.00415c75
add esp, 0xc
test edi, edi
je 0x41ebf1
push edi
call fcn.0043219c
pop ecx
test ebx, ebx
je 0x41ebfc
push ebx
call fcn.0043219c
pop ecx
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.004017f0
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