Function at 0x451b90
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffdc4
mov ebx, dword [0x48d318]
mov al, 0xd
call fcn.0042aef4
test al, al
je 0x451f80
mov edx, dword [0x48d370]
lea eax, [esp + 0x130]
call fcn.00405c48
lea eax, [esp + 0x130]
call fcn.00412f30
mov eax, dword [0x48d1b8]
fistp qword [eax]
wait
mov eax, dword [0x48d1b8]
fild qword [eax]
fcomp dword [0x451f8c]
fnstsw ax
sahf
je 0x451f80
mov dl, 7
mov ax, 0x28
call fcn.0042d52c
test eax, eax
je 0x451f80
mov eax, dword [0x48d1b8]
fild qword [eax]
fsub dword [0x451f90]
mov eax, dword [0x48db38]
fild qword [eax]
fdivp st(1)
call fcn.004028ac
add eax, 1
adc edx, 0
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], edx
fild qword [esp + 0x230]
fistp qword [ebx]
wait
fld xword [0x451f94]
fild qword [ebx]
fcompp
fnstsw ax
sahf
ja 0x451beb
fild qword [ebx]
call fcn.004028a0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x130]
mov ecx, 0x8000000
mov edx, 0x80000000
call fcn.0040eba4
mov dword [esp], eax
cmp dword [esp], 0xffffffff
jne 0x451c85
lea edx, [esp + 0x130]
mov ax, 1
call fcn.0040de10
jmp 0x451f80
mov eax, 0xe000
call fcn.004024e8
mov dword [esp + 0x28], eax
mov ax, 0x5b
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
lea eax, [esp + 0x130]
call fcn.0040fb28
mov edx, eax
mov eax, dword [0x48d948]
mov cx, 0x3c
call fcn.00405c80
mov eax, dword [0x48d550]
movzx eax, byte [eax + 0x188c]
lea eax, [eax + eax*4]
mov edx, dword [0x48d4f8]
lea eax, [edx + eax]
push eax
mov eax, dword [0x48d948]
push eax
call sub.kernel32.dll_lstrcatA
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x1c]
mov edx, dword [0x48d328]
mov byte [edx], al
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x451f6e
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], 1
mov al, byte [esp + 0x18]
mov edx, dword [0x48d980]
mov byte [edx], al
cmp dword [esp + 0x18], 1
jle 0x451d2e
call fcn.0040f734
call fcn.0040f494
mov al, 0x16
call fcn.0042aef4
test al, al
je 0x451f6e
mov edx, dword [0x48d370]
lea eax, [esp + 0x30]
call fcn.00405c48
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x34]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
jne 0x451d7c
mov ax, 0x13c
call fcn.0040bc04
mov edx, 3
call fcn.00411d74
jmp 0x451d2e
push 0
lea eax, [esp + 0x34]
push eax
call sub.kernel32.dll__lcreat
mov dword [esp + 4], eax
cmp dword [esp + 4], 0xffffffff
jne 0x451da5
lea edx, [esp + 0x30]
mov ax, 3
call fcn.0040de10
jmp 0x451f6e
mov eax, dword [0x48d948]
xor edx, edx
call fcn.0040e810
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x1c]
jge 0x451dcf
mov eax, dword [0x48db38]
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x14], edx
jmp 0x451e06
mov eax, dword [0x48d1b8]
fild qword [eax]
fsub dword [0x451f90]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [0x48db38]
push dword [eax + 4]
push dword [eax]
call fcn.0040fe38
inc eax
mov dword [esp + 0x238], eax
fild dword [esp + 0x238]
fistp qword [esp + 0x10]
wait
fild qword [esp + 0x10]
fsub dword [0x451f90]
fdiv dword [0x451fa0]
call fcn.004028ac
inc eax
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x451f51
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x24]
jge 0x451e45
mov ebx, 0xe000
jmp 0x451e65
fild qword [esp + 0x10]
fsub dword [0x451f90]
add esp, 0xfffffff8
fistp qword [esp]
wait
push 0
push 0xe000
call fcn.0040fe38
mov ebx, eax
inc ebx
push ebx
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 8]
push eax
call sub.kernel32.dll__hread
mov esi, eax
push ebx
mov eax, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0xc]
push eax
call sub.kernel32.dll__hwrite
mov ebp, eax
cmp ebx, esi
jle 0x451e9d
lea edx, [esp + 0x130]
mov ax, 2
call fcn.0040de10
cmp ebx, ebp
jle 0x451eae
lea edx, [esp + 0x30]
mov ax, 5
call fcn.0040de10
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x451ec5
cmp ebx, esi
jg 0x451ec5
cmp ebx, ebp
jle 0x451ef7
mov eax, dword [esp + 4]
push eax
call sub.kernel32.dll_CloseHandle_1
mov ax, 0x11b
call fcn.0040bc04
mov edx, 2
call fcn.00411d74
cmp al, 1
jne 0x451ef0
lea eax, [esp + 0x30]
push eax
call sub.kernel32.dll_DeleteFileA_1
call fcn.0040eb04
jmp 0x451f6e
mov dword [esp + 0x238], ebx
fild dword [esp + 0x238]
fild qword [esp + 8]
faddp st(1)
fistp qword [esp + 8]
wait
fild qword [esp + 8]
mov eax, dword [0x48d1b8]
fild qword [eax]
fdivp st(1)
fmul dword [0x451fa4]
call fcn.004028a0
mov edx, dword [0x48d1d8]
mov byte [edx], al
mov eax, dword [0x48d1d8]
mov al, byte [eax]
mov edx, dword [0x48d668]
cmp al, byte [edx]
je 0x451f46
call fcn.00414c64
inc dword [esp + 0x20]
dec edi
jne 0x451e34
mov eax, dword [esp + 4]
push eax
call sub.kernel32.dll_CloseHandle_1
call fcn.0040eb04
inc dword [esp + 0x18]
dec dword [esp + 0x2c]
jne 0x451d16
mov eax, dword [esp + 0x28]
call fcn.00402508
mov eax, dword [esp]
push eax
call sub.kernel32.dll_CloseHandle_1
add esp, 0x23c
pop ebp
pop edi
pop esi
pop ebx
ret