Function at 0x41c2b0
Capabilities:
Delete file
Move file

Disassembly:
mov eax, 0x430850
call fcn.004083b8
sub esp, 0x824
push ebx
push esi
push edi
call fcn.0041c226
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 0x41c2e7
push str.WritePrivateProfileStringA______pFileNameNULL_
jmp 0x41c300
push esi
call fcn.00409f30
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x41c318
push str.WritePrivateProfileStringA______strlen_pFileName___0_
push str._s_failed_n
push 0x444698
call fcn.00413226
add esp, 0xc
push edi
jmp 0x41c96a
mov edi, dword [ebp + 8]
cmp edi, ebx
jne 0x41c326
push str.WritePrivateProfileStringA______lpAppNameNULL_
jmp 0x41c33f
push edi
call fcn.00409f30
pop ecx
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x20], eax
jne 0x41c356
push str.WritePrivateProfileStringA______strlen_lpAppName___0_
push str._s_failed_n
push 0x444698
call fcn.00413226
add esp, 0xc
jmp 0x41c967
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call fcn.00403360
push esi
mov byte [ebp - 4], 1
call fcn.00414986
test eax, eax
pop ecx
jne 0x41c45c
cmp dword [ebp + 0xc], ebx
je 0x41c413
cmp dword [ebp + 0x10], ebx
je 0x41c413
push 0x4422a0
push esi
call fcn.00427aa5
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x41c418
push esi
push 0x442f64
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
push edi
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
push 0x442f60
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
push dword [ebp + 0xc]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
push 0x433aec
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
push dword [ebp + 0x10]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
push 0x441a44
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c418
push esi
call fcn.00409de6
pop ecx
push 1
pop esi
jmp 0x41c43e
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x444698
call fcn.00413226
add esp, 0x14
cmp esi, ebx
je 0x41c43c
push esi
call fcn.00409de6
pop ecx
xor esi, esi
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.00403360
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x41c972
push 0x442f10
push esi
call fcn.00427aa5
cmp dword [ebp - 0x28], ebx
pop ecx
mov edi, eax
pop ecx
mov dword [ebp - 0x10], edi
jne 0x41c49a
push 0x442f0c
push ebx
call fcn.0042811e
mov esi, eax
push esi
call fcn.00409f30
add esp, 0xc
lea ecx, [ebp - 0x30]
push eax
push esi
call fcn.00403650
push esi
call fcn.00408402
pop ecx
mov eax, dword [ebp - 0x2c]
mov esi, 0x43257c
cmp eax, ebx
jne 0x41c4a8
mov eax, esi
push 0x442f08
push eax
call fcn.00427aa5
pop ecx
mov ebx, eax
test edi, edi
pop ecx
mov dword [ebp - 0x18], ebx
je 0x41c927
test ebx, ebx
je 0x41c927
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.00409a04
add esp, 0xc
test eax, eax
je 0x41c75b
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00407995
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push 0x442f04
push eax
call fcn.004078e9
add esp, 0x14
test eax, eax
je 0x41c74c
push eax
call fcn.0041c24a
mov esi, eax
pop ecx
cmp byte [esi], 0x5b
jne 0x41c74c
push 0x442f00
push esi
call fcn.00409e63
pop ecx
test eax, eax
pop ecx
je 0x41c74c
push esi
call fcn.0040770e
mov esi, eax
mov dword [esp], 0x442f00
push esi
call fcn.00409e63
and byte [eax], 0
push esi
call fcn.0041c24a
push dword [ebp + 8]
push eax
call fcn.00407a2f
add esp, 0x14
test eax, eax
jne 0x41c74c
cmp dword [ebp + 0xc], eax
je 0x41c6f6
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.004099b6
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41c769
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
and byte [ebp - 0x830], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.00409a04
lea eax, [ebp - 0x430]
push edi
push eax
lea eax, [ebp - 0x830]
push eax
call fcn.00407995
and byte [ebp - 0x431], 0
lea eax, [ebp - 0x830]
push eax
call fcn.0041c24a
mov ebx, eax
push 0x433aec
push ebx
call fcn.00409e63
add esp, 0x24
mov dword [ebp - 0x20], eax
test eax, eax
je 0x41c61d
and byte [eax], 0
push ebx
call fcn.0041c24a
pop ecx
mov ebx, eax
push dword [ebp + 0xc]
push ebx
call fcn.00407a2f
mov esi, eax
pop ecx
neg esi
sbb esi, esi
pop ecx
inc esi
cmp dword [ebp - 0x20], 0
je 0x41c639
test esi, esi
jne 0x41c66e
cmp byte [ebx], 0x5b
je 0x41c66e
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41c66e
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.004099b6
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41c793
jmp 0x41c5b5
cmp dword [ebp + 0x10], 0
je 0x41c6c7
mov ebx, dword [ebp - 0x18]
push ebx
push dword [ebp + 0xc]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c7ac
push ebx
push 0x433aec
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c7ac
push ebx
push dword [ebp + 0x10]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c7ac
push ebx
push 0x441a44
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c7ac
test esi, esi
jne 0x41c6ed
push dword [ebp - 0x18]
lea eax, [ebp - 0x430]
push eax
call fcn.004099b6
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test eax, eax
je 0x41c793
mov ebx, dword [ebp - 0x18]
mov byte [ebp - 0x11], 1
jmp 0x41c75b
push dword [ebp - 0x10]
and byte [ebp - 0x430], 0
lea eax, [ebp - 0x430]
push edi
push eax
call fcn.00409a04
movsx eax, byte [ebp - 0x430]
push eax
lea esi, [ebp - 0x430]
call fcn.0040a178
add esp, 0x10
test eax, eax
je 0x41c73c
push esi
call fcn.0040770e
mov esi, eax
movsx eax, byte [esi]
push eax
call fcn.0040a178
pop ecx
pop ecx
jmp 0x41c723
cmp byte [esi], 0x5b
je 0x41c74c
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41c75b
jmp 0x41c6f6
lea eax, [ebp - 0x430]
push ebx
push eax
call fcn.004099b6
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
test byte [eax + 0xc], 0x10
jne 0x41c7d9
jmp 0x41c4d3
push str.fputs_line_tmp_
push str._s_failed_n
push 0x444698
call fcn.00413226
push ebx
call fcn.00409de6
push dword [ebp - 0x10]
call fcn.00409de6
add esp, 0x14
jmp 0x41c43c
push str.fputs_line_tmp_
push str._s_failed_n
push 0x444698
call fcn.00413226
push dword [ebp - 0x18]
jmp 0x41c77e
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push str.Win9XWritePrivateProfileString___:_Error_writing__s_s_to_temp_file
push 0x444698
call fcn.00413226
push dword [ebp - 0x18]
call fcn.00409de6
push dword [ebp - 0x10]
call fcn.00409de6
add esp, 0x18
jmp 0x41c43c
cmp byte [ebp - 0x11], 0
jne 0x41c896
cmp dword [ebp + 0xc], 0
je 0x41c896
cmp dword [ebp + 0x10], 0
je 0x41c896
push ebx
push 0x442ea8
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c868
push ebx
push dword [ebp + 8]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c868
push ebx
push 0x442f60
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c868
push ebx
push dword [ebp + 0xc]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c868
push ebx
push 0x433aec
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c868
push ebx
push dword [ebp + 0x10]
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jl 0x41c868
push ebx
push 0x441a44
call fcn.004099b6
pop ecx
test eax, eax
pop ecx
jge 0x41c896
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push str.Win9XWritePrivateProfileString__:__Error_writing__s____s_s_to_temp_file
push 0x444698
call fcn.00413226
push ebx
call fcn.00409de6
push dword [ebp - 0x10]
call fcn.00409de6
add esp, 0x1c
jmp 0x41c43c
push dword [ebp - 0x10]
call fcn.00409de6
push ebx
call fcn.00409c80
push ebx
call fcn.00409de6
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 0x41c90a
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 5
jne 0x41c902
cmp dword [ebp + 0xc], eax
jge 0x41c902
call edi
push eax
push str.Win9XWritePrivateProfileString____DeleteFile_failed___GetLastError___d
push 0x444698
call fcn.00413226
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 0x41c8c8
test ebx, ebx
je 0x41c43c
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x41c916
mov eax, 0x43257c
push dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov esi, eax
jmp 0x41c43e
mov eax, dword [ebp - 0x2c]
test eax, eax
jne 0x41c930
mov eax, esi
push eax
push str.GetPrivateProfileStringA___fails_calling_fopen_on__s_n
push 0x444698
call fcn.0041309c
add esp, 0xc
test edi, edi
je 0x41c94e
push edi
call fcn.00409de6
pop ecx
test ebx, ebx
je 0x41c959
push ebx
call fcn.00409de6
pop ecx
and byte [ebp - 4], 0
push 1
lea ecx, [ebp - 0x30]
call fcn.00403360
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