Function at 0x46e14c
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffc8
mov dword [esp], edx
mov ebx, eax
mov byte [esp + 4], 0
mov eax, ebx
call fcn.0047e098
mov eax, dword [0x48d39c]
fistp qword [eax]
wait
cmp dword [esp], 0
jne 0x46e1b5
mov eax, dword [0x48d39c]
fild qword [eax]
fadd dword [0x46e648]
fild qword [ebx + 0x18]
fcompp
fnstsw ax
sahf
jne 0x46e1b5
mov ax, 0x2f
call fcn.0040bc04
mov edx, 2
call fcn.00411d74
cmp al, 1
jne 0x46e1b5
mov eax, dword [0x48d39c]
fild qword [eax]
fadd dword [0x46e648]
mov eax, dword [0x48d39c]
fistp qword [eax]
wait
cmp dword [esp], 0
jne 0x46e1d0
mov dl, 0x2a
mov ax, 0x11
call fcn.0042d52c
test eax, eax
je 0x46e63c
jmp 0x46e1ed
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x177c]
mov dword [esp + 0xc], eax
mov eax, dword [0x48d550]
mov edx, dword [esp]
mov dword [eax + 0x177c], edx
mov eax, ebx
call fcn.00464bb4
test al, al
je 0x46e63c
lea eax, [ebx + 0xc]
mov dl, 1
call fcn.004246b0
test al, al
je 0x46e63c
mov eax, dword [0x48d39c]
fild qword [eax]
fild qword [ebx + 0x18]
fcompp
fnstsw ax
sahf
jbe 0x46e23f
mov eax, dword [0x48d39c]
push dword [eax + 4]
push dword [eax]
mov eax, ebx
call fcn.0046cdc0
test al, al
je 0x46e63c
mov byte [esp + 5], 1
jmp 0x46e244
mov byte [esp + 5], 0
mov eax, dword [0x48d3a0]
cmp byte [eax], 0
jne 0x46e278
push 0
push 0
mov ax, word [ebx + 0x534]
xor ecx, ecx
mov dl, 4
call fcn.0044f244
test al, al
jne 0x46e278
mov eax, dword [0x48d7e4]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_DeleteFileA_1
jmp 0x46e63c
lea eax, [ebx + 0xc]
call fcn.00428760
mov eax, 0xe000
call fcn.004024e8
mov edi, eax
mov edx, 0xe000
mov eax, edi
call fcn.00405a9c
mov ax, 0x2d
call fcn.0040bc04
xor edx, edx
call fcn.0040e810
mov eax, dword [0x48d39c]
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x177c]
dec eax
mov ecx, 0xe000
cdq
idiv ecx
inc eax
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
test eax, eax
jle 0x46e3b1
mov dword [esp + 0x2c], eax
mov esi, 1
cmp esi, dword [esp + 8]
jge 0x46e2ff
mov ebp, 0xe000
jmp 0x46e316
mov eax, dword [0x48d550]
mov eax, dword [eax + 0x177c]
dec eax
mov ecx, 0xe000
cdq
idiv ecx
mov ebp, edx
inc ebp
push ebp
lea edx, [esp + 0x24]
lea eax, [ebx + 0xc]
mov ecx, edi
call fcn.00426720
mov edx, dword [0x48d44c]
mov dword [edx], eax
mov eax, dword [0x48d44c]
cmp ebp, dword [eax]
jle 0x46e347
mov edx, dword [ebx + 0x14]
mov ax, 5
call fcn.0040de10
jmp 0x46e5ff
mov eax, dword [0x48d44c]
fild dword [eax]
fild qword [esp + 0x10]
faddp st(1)
fistp qword [esp + 0x10]
wait
mov eax, dword [0x48d550]
fild dword [eax + 0x177c]
fild qword [esp + 0x10]
fdivrp st(1)
fmul dword [0x46e64c]
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 0x46e393
call fcn.00414c64
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x46e5ff
inc esi
dec dword [esp + 0x2c]
jne 0x46e2f2
lea eax, [ebx + 0xc]
call fcn.00428820
call fcn.0040eb04
fild qword [ebx + 0x494]
fcomp dword [0x46e650]
fnstsw ax
sahf
jne 0x46e412
mov eax, dword [0x48db64]
cmp byte [eax], 0
jne 0x46e412
mov eax, dword [0x48d39c]
mov edx, dword [eax]
mov dword [ebx + 0x48c], edx
mov edx, dword [eax + 4]
mov dword [ebx + 0x490], edx
mov eax, dword [0x48d550]
fild dword [eax + 0x177c]
mov eax, dword [0x48d39c]
fild qword [eax]
faddp st(1)
fsub dword [0x46e648]
fistp qword [ebx + 0x494]
wait
jmp 0x46e448
mov esi, 1
lea edx, [ebx + 0x48c]
fild qword [edx]
mov eax, dword [0x48d39c]
fild qword [eax]
fcompp
fnstsw ax
sahf
ja 0x46e43f
mov eax, dword [0x48d550]
fild dword [eax + 0x177c]
fild qword [edx]
faddp st(1)
fistp qword [edx]
wait
inc esi
add edx, 8
cmp esi, 3
jne 0x46e41d
mov eax, dword [0x48d39c]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x48d550]
fild dword [eax + 0x177c]
fild qword [ebx + 0x18]
faddp st(1)
fsub dword [0x46e648]
add esp, 0xfffffff8
fistp qword [esp]
wait
lea eax, [ebx + 0xc]
call fcn.00423bdc
cmp byte [esp + 5], 0
je 0x46e5b4
mov eax, dword [0x48d7e4]
mov eax, dword [eax]
mov ecx, 0x8000000
mov edx, 0x80000000
call fcn.0040eba4
mov dword [esp + 0x28], eax
lea eax, [ebx + 0xc]
call fcn.00428760
mov ax, 0xf8
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
mov eax, dword [0x48d948]
xor edx, edx
call fcn.0040e810
mov eax, dword [esp + 0x28]
call fcn.00412ed4
fistp qword [esp + 0x18]
wait
mov eax, dword [0x48d550]
fild dword [eax + 0x177c]
mov eax, dword [0x48d39c]
fild qword [eax]
faddp st(1)
fistp qword [esp + 0x20]
wait
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
push 0xe000
push edi
mov eax, dword [esp + 0x30]
push eax
call sub.kernel32.dll__hread
mov esi, eax
mov dword [esp + 0x30], esi
xor eax, eax
mov dword [esp + 0x34], eax
fild qword [esp + 0x30]
fild qword [esp + 0x10]
faddp st(1)
fistp qword [esp + 0x10]
wait
push esi
lea edx, [esp + 0x24]
lea eax, [ebx + 0xc]
mov ecx, edi
call fcn.00426720
mov ebp, eax
fild qword [esp + 0x10]
fild qword [esp + 0x18]
fdivp st(1)
fmul dword [0x46e64c]
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 0x46e565
call fcn.00414c64
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x46e578
cmp esi, ebp
jbe 0x46e584
mov eax, dword [esp + 0x28]
push eax
call sub.kernel32.dll_CloseHandle_1
jmp 0x46e5ff
test esi, esi
je 0x46e590
cmp esi, ebp
je 0x46e4f6
lea eax, [ebx + 0xc]
call fcn.00428820
mov eax, dword [esp + 0x28]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x48d7e4]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_DeleteFileA_1
call fcn.0040eb04
mov eax, edi
call fcn.00402508
cmp dword [esp], 0
jle 0x46e5d0
mov eax, dword [0x48d550]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x177c], edx
mov eax, ebx
call fcn.004632ec
call fcn.00444994
mov eax, dword [0x48d550]
cmp byte [eax + 0x18f1], 4
jbe 0x46e5f1
mov byte [ebx + 0x8f], 0
mov eax, ebx
call fcn.0047d4c8
mov byte [esp + 4], 1
jmp 0x46e63c
lea eax, [ebx + 0xc]
call fcn.00428820
mov eax, edi
call fcn.00402508
cmp dword [esp], 0
jle 0x46e623
mov eax, dword [0x48d550]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x177c], edx
mov eax, dword [0x48d7e4]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_DeleteFileA_1
call fcn.0040eb04
mov eax, ebx
call fcn.0047d4c8
mov al, byte [esp + 4]
add esp, 0x38
pop ebp
pop edi
pop esi
pop ebx
ret