Function at 0x41c2c0
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffcc8
mov esi, eax
mov byte [esp], 0
mov al, byte [esi + 0x90]
call fcn.0049e790
test al, al
je 0x41c74c
mov eax, dword [0x4be570]
cmp byte [eax], 0
jne 0x41c308
mov ax, 0x134
call fcn.004aa600
mov edx, 2
call fcn.004b12a8
test al, al
je 0x41c74c
cmp byte [esi + 0xa1], 0
jne 0x41c31a
mov byte [esp], 1
jmp 0x41c74c
mov eax, esi
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x10]
test al, al
je 0x41c74c
push 0
push 0
push 0
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov ax, word [esi + 0x92]
call fcn.004b1cb8
mov edx, eax
lea eax, [esp + 0x30]
call fcn.004b81b0
cmp byte [esi + 0x90], 1
je 0x41c365
cmp byte [esi + 0x90], 2
jne 0x41c38c
mov al, byte [esi + 0x90]
call fcn.00412798
fcomp dword [0x41c75c]
fnstsw ax
sahf
jne 0x41c38c
mov edx, dword [esi + 0xc]
mov ax, 0x10
call fcn.004acdac
jmp 0x41c72d
mov eax, dword [0x4be784]
cmp byte [eax + 0x1905], 0
je 0x41c4d3
or ebp, 0xffffffff
mov dword [esp + 0x18], 0xffffffff
jmp 0x41c48d
push 4
lea eax, [esp + 0x14]
push eax
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll__lread
push 1
push 0
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll_SetFilePointer_1
movsx eax, byte [esi + 0x90]
mov edx, dword [0x4becf0]
movzx eax, word [edx + eax*2 + 0x54]
mov dword [esp + 0x334], eax
fild dword [esp + 0x334]
fild qword [esp + 8]
fdivrp st(1)
call fcn.004028f4
mov edi, eax
fild dword [esp + 0x10]
fild qword [esp + 8]
faddp st(1)
fsub dword [0x41c760]
movsx eax, byte [esi + 0x90]
mov edx, dword [0x4becf0]
movzx eax, word [edx + eax*2 + 0x54]
mov dword [esp + 0x334], eax
fild dword [esp + 0x334]
fdivp st(1)
call fcn.004028f4
sub eax, edi
inc eax
mov dword [esp + 0x14], eax
cmp edi, ebp
jl 0x41c449
mov eax, dword [esp + 0x18]
add eax, ebp
cmp edi, eax
jle 0x41c483
cmp ebp, 0xffffffff
jle 0x41c477
mov eax, dword [esp + 0x18]
push eax
push ebp
push 0x403
movsx eax, word [esi + 0x92]
mov eax, dword [eax*4 + 0x4bfc18]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x41c72d
mov ebp, edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x41c48d
add edi, dword [esp + 0x14]
sub edi, ebp
mov dword [esp + 0x18], edi
push 8
lea eax, [esp + 0xc]
push eax
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll__lread
test eax, eax
ja 0x41c3ae
cmp ebp, 0xffffffff
jle 0x41c4d3
mov eax, dword [esp + 0x18]
push eax
push ebp
push 0x403
movsx eax, word [esi + 0x92]
mov eax, dword [eax*4 + 0x4bfc18]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x41c72d
mov ax, 0x135
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bec98]
call fcn.004b81b0
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4be3f4]
push eax
mov eax, dword [0x4bec98]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bec98]
xor edx, edx
call fcn.004ad8ec
mov eax, dword [esi + 8]
call fcn.004b22b8
fistp qword [esp + 0x20]
wait
lea ebx, [esp + 0x130]
mov eax, dword [0x4be450]
cmp byte [eax], 0
je 0x41c53a
mov eax, dword [0x4be520]
mov byte [eax], 1
push 0
push 0
push 0
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll_SetFilePointer_1
jmp 0x41c6ad
push 4
lea eax, [esp + 0x14]
push eax
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll__lread
push 4
push 0x1000
mov eax, dword [esp + 0x18]
push eax
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov ebx, eax
test ebx, ebx
jne 0x41c59c
call fcn.004adbe0
fild dword [esp + 0x10]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004b1e30
mov edx, eax
mov ax, 0xb
call fcn.004acdac
jmp 0x41c72d
mov eax, dword [esp + 0x10]
push eax
push ebx
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll__hread
cmp eax, dword [esp + 0x10]
je 0x41c5c8
call fcn.004adbe0
lea edx, [esp + 0x30]
mov ax, 2
call fcn.004acdac
jmp 0x41c72d
push dword [esp + 0xc]
push dword [esp + 0xc]
mov eax, esi
mov ecx, dword [esp + 0x18]
mov edx, ebx
call fcn.0041bd64
test al, al
jne 0x41c5eb
call fcn.004adbe0
jmp 0x41c72d
push 0x4000
mov eax, dword [esp + 0x14]
push eax
push ebx
call sub.kernel32.dll_VirtualFree_1
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x41c62a
call sub.kernel32.dll_GetLastError_1
mov edx, dword [0x4be6b0]
mov dword [edx], eax
mov eax, dword [0x4be6b0]
mov eax, dword [eax]
call fcn.004ae200
mov eax, dword [0x4bedb0]
xor edx, edx
call fcn.004b12a8
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x2c]
call fcn.004af014
push eax
push 0
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov edx, dword [0x4be6b0]
mov dword [edx], eax
mov edx, dword [0x4be6b0]
lea eax, [esp + 0x28]
mov ecx, 4
call fcn.004066dc
fild qword [esp + 0x28]
fmul dword [0x41c764]
fild qword [esp + 0x20]
fdivp st(1)
call fcn.004028e8
mov edx, dword [0x4be344]
mov byte [edx], al
mov eax, dword [0x4be344]
mov al, byte [eax]
mov edx, dword [0x4be8d0]
cmp al, byte [edx]
je 0x41c69a
call fcn.004b5c48
call fcn.004ae0a4
mov eax, dword [0x4bed48]
cmp byte [eax], 0
jne 0x41c72d
push 8
lea eax, [esp + 0xc]
push eax
mov eax, dword [esi + 8]
push eax
call sub.kernel32.dll__lread
test eax, eax
ja 0x41c54e
mov eax, dword [0x4be520]
cmp byte [eax], 0
je 0x41c6ed
mov eax, dword [0x4be520]
mov byte [eax], 0
mov eax, dword [0x4be6b4]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x4be6b4]
xor edx, edx
mov dword [eax], edx
mov eax, esi
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
lea eax, [esp + 0x30]
push eax
call sub.kernel32.dll_DeleteFileA_1
mov byte [esi + 0xa1], 0
mov word [esi + 0x94], 0
cmp byte [esi + 0x96], 4
je 0x41c722
mov byte [esi + 0x96], 1
call fcn.004adbe0
mov byte [esp], 1
jmp 0x41c74c
test ebx, ebx
je 0x41c741
push 0x4000
mov eax, dword [esp + 0x14]
push eax
push ebx
call sub.kernel32.dll_VirtualFree_1
mov eax, esi
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
mov al, byte [esp]
add esp, 0x338
pop ebp
pop edi
pop esi
pop ebx
ret