Function at 0x4249e2
Capabilities:
Delete file
Move file

Disassembly:
mov eax, 0x457840
call fcn.0043742c
sub esp, 0x824
push ebx
push esi
push edi
call fcn.00424958
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 0x424a19
push str.WritePrivateProfileStringA______pFileNameNULL_
jmp 0x424a32
push esi
call fcn.004373b0
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x424a4a
push str.WritePrivateProfileStringA______strlen_pFileName___0_
push str._s_failed_n
push 0x476888
call fcn.0041ebbf
add esp, 0xc
push edi
jmp 0x42509c
mov edi, dword [ebp + 8]
cmp edi, ebx
jne 0x424a58
push str.WritePrivateProfileStringA______lpAppNameNULL_
jmp 0x424a71
push edi
call fcn.004373b0
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x424a88
push str.WritePrivateProfileStringA______strlen_lpAppName___0_
push str._s_failed_n
push 0x476888
call fcn.0041ebbf
add esp, 0xc
jmp 0x425099
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call fcn.00402a10
push esi
mov byte [ebp - 4], 1
call fcn.0041dc36
test eax, eax
pop ecx
jne 0x424b8e
cmp dword [ebp + 0xc], ebx
je 0x424b45
cmp dword [ebp + 0x10], ebx
je 0x424b45
push 0x46f9e8
push esi
call fcn.00438c1b
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x424b4a
push esi
push 0x46f9e4
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
push edi
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
push 0x46f9e0
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
push dword [ebp + 0xc]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
push 0x46f9dc
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
push dword [ebp + 0x10]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
push 0x46edb0
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424b4a
push esi
call fcn.00438b1f
pop ecx
push 1
pop esi
jmp 0x424b70
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x476888
call fcn.0041ebbf
add esp, 0x14
cmp esi, ebx
je 0x424b6e
push esi
call fcn.00438b1f
pop ecx
xor esi, esi
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.00402a10
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x4250a4
push 0x46f98c
push esi
call fcn.00438c1b
cmp dword [ebp - 0x28], ebx
pop ecx
mov edi, eax
pop ecx
mov dword [ebp - 0x10], edi
jne 0x424bcc
push 0x46f988
push ebx
call fcn.004481e1
mov esi, eax
push esi
call fcn.004373b0
add esp, 0xc
lea ecx, [ebp - 0x30]
push eax
push esi
call fcn.00402970
push esi
call fcn.00438a36
pop ecx
mov eax, dword [ebp - 0x2c]
mov esi, 0x45a50c
cmp eax, ebx
jne 0x424bda
mov eax, esi
push 0x46f984
push eax
call fcn.00438c1b
pop ecx
mov ebx, eax
test edi, edi
pop ecx
mov dword [ebp - 0x18], ebx
je 0x425059
test ebx, ebx
je 0x425059
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.004389d4
add esp, 0xc
test eax, eax
je 0x424e8d
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00435e81
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push 0x46f980
push eax
call fcn.00435fbf
add esp, 0x14
test eax, eax
je 0x424e7e
push eax
call fcn.0042497c
mov esi, eax
pop ecx
cmp byte [esi], 0x5b
jne 0x424e7e
push 0x46f97c
push esi
call fcn.00435f1b
pop ecx
test eax, eax
pop ecx
je 0x424e7e
push esi
call fcn.0043629c
mov esi, eax
mov dword [esp], 0x46f97c
push esi
call fcn.00435f1b
and byte [eax], 0
push esi
call fcn.0042497c
push dword [ebp + 8]
push eax
call fcn.004360e9
add esp, 0x14
test eax, eax
jne 0x424e7e
cmp dword [ebp + 0xc], eax
je 0x424e28
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.00438b9c
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x424e9b
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
and byte [ebp - 0x830], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.004389d4
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00435e81
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push eax
call fcn.0042497c
mov ebx, eax
push 0x46f9dc
push ebx
call fcn.00435f1b
add esp, 0x24
mov dword [ebp - 0x20], eax
test eax, eax
je 0x424d4f
and byte [eax], 0
push ebx
call fcn.0042497c
pop ecx
mov ebx, eax
push dword [ebp + 0xc]
push ebx
call fcn.004360e9
mov esi, eax
pop ecx
neg esi
sbb esi, esi
pop ecx
inc esi
cmp dword [ebp - 0x20], 0
je 0x424d6b
test esi, esi
jne 0x424da0
cmp byte [ebx], 0x5b
je 0x424da0
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x424da0
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.00438b9c
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x424ec5
jmp 0x424ce7
cmp dword [ebp + 0x10], 0
je 0x424df9
mov ebx, dword [ebp - 0x18]
push ebx
push dword [ebp + 0xc]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424ede
push ebx
push 0x46f9dc
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424ede
push ebx
push dword [ebp + 0x10]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424ede
push ebx
push 0x46edb0
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424ede
test esi, esi
jne 0x424e1f
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.00438b9c
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x424ec5
mov ebx, dword [ebp - 0x18]
mov byte [ebp - 0x11], 1
jmp 0x424e8d
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.004389d4
movsx eax, byte [ebp - 0x430]
push eax
lea esi, [ebp - 0x430]
call fcn.0043713f
add esp, 0x10
test eax, eax
je 0x424e6e
push esi
call fcn.0043629c
mov esi, eax
movsx eax, byte [esi]
push eax
call fcn.0043713f
pop ecx
pop ecx
jmp 0x424e55
cmp byte [esi], 0x5b
je 0x424e7e
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x424e8d
jmp 0x424e28
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.00438b9c
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x424f0b
jmp 0x424c05
push str.fputs_line_tmp_
push str._s_failed_n
push 0x476888
call fcn.0041ebbf
push ebx
call fcn.00438b1f
push dword [ebp - 0x10]
call fcn.00438b1f
add esp, 0x14
jmp 0x424b6e
push str.fputs_line_tmp_
push str._s_failed_n
push 0x476888
call fcn.0041ebbf
push dword [ebp - 0x18]
jmp 0x424eb0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push str.Win9XWritePrivateProfileString___:_Error_writing__s_s_to_temp_file
push 0x476888
call fcn.0041ebbf
push dword [ebp - 0x18]
call fcn.00438b1f
push dword [ebp - 0x10]
call fcn.00438b1f
add esp, 0x18
jmp 0x424b6e
cmp byte [ebp - 0x11], 0
jne 0x424fc8
cmp dword [ebp + 0xc], 0
je 0x424fc8
cmp dword [ebp + 0x10], 0
je 0x424fc8
push ebx
push 0x46f924
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424f9a
push ebx
push dword [ebp + 8]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424f9a
push ebx
push 0x46f9e0
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424f9a
push ebx
push dword [ebp + 0xc]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424f9a
push ebx
push 0x46f9dc
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424f9a
push ebx
push dword [ebp + 0x10]
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jl 0x424f9a
push ebx
push 0x46edb0
call fcn.00438b9c
pop ecx
test eax, eax
pop ecx
jge 0x424fc8
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x476888
call fcn.0041ebbf
push ebx
call fcn.00438b1f
push dword [ebp - 0x10]
call fcn.00438b1f
add esp, 0x1c
jmp 0x424b6e
push dword [ebp - 0x10]
call fcn.00438b1f
push ebx
call fcn.00437a18
push ebx
call fcn.00438b1f
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 0x42503c
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 5
jne 0x425034
cmp dword [ebp + 0xc], eax
jge 0x425034
call edi
push eax
push str.Win9XWritePrivateProfileString____DeleteFile_failed___GetLastError___d
push 0x476888
call fcn.0041ebbf
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 0x424ffa
test ebx, ebx
je 0x424b6e
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x425048
mov eax, 0x45a50c
push dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov esi, eax
jmp 0x424b70
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x425062
mov eax, esi
push eax
push str.GetPrivateProfileStringA___fails_calling_fopen_on__s_n
push 0x476888
call fcn.0041ea35
add esp, 0xc
test edi, edi
je 0x425080
push edi
call fcn.00438b1f
pop ecx
test ebx, ebx
je 0x42508b
push ebx
call fcn.00438b1f
pop ecx
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.00402a10
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