Function at 0x4262ac
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffcc8
mov ebx, eax
mov byte [esp], 0
mov al, byte [ebx + 0x70]
call fcn.0041aea0
test al, al
je 0x426704
mov eax, dword [0x48d3a0]
cmp byte [eax], 0
jne 0x4262f1
mov ax, 0x134
call fcn.0040bc04
mov edx, 2
call fcn.00411d74
test al, al
je 0x426704
cmp byte [ebx + 0x80], 0
jne 0x426303
mov byte [esp], 1
jmp 0x426704
mov eax, ebx
call fcn.00428760
test al, al
je 0x426704
push 0
push 0
push 0
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov ax, word [ebx + 0x72]
call fcn.00412944
mov edx, eax
lea eax, [esp + 0x30]
call fcn.00405c48
cmp byte [ebx + 0x70], 1
je 0x426341
cmp byte [ebx + 0x70], 2
jne 0x426365
mov al, byte [ebx + 0x70]
call fcn.004185d4
fcomp dword [0x426714]
fnstsw ax
sahf
jne 0x426365
mov edx, dword [ebx + 8]
mov ax, 0x10
call fcn.0040de10
jmp 0x4266e9
mov eax, dword [0x48d550]
cmp byte [eax + 0x1905], 0
je 0x4264a0
or ebp, 0xffffffff
mov dword [esp + 0x18], 0xffffffff
jmp 0x42645d
push 4
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll__lread
push 1
push 0
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
movsx eax, byte [ebx + 0x70]
mov edx, dword [0x48d9a0]
movzx eax, word [edx + eax*2 + 0x4c]
mov dword [esp + 0x334], eax
fild dword [esp + 0x334]
fild qword [esp + 8]
fdivrp st(1)
call fcn.004028ac
mov edi, eax
fild dword [esp + 0x10]
fild qword [esp + 8]
faddp st(1)
fsub dword [0x426718]
movsx eax, byte [ebx + 0x70]
mov edx, dword [0x48d9a0]
movzx eax, word [edx + eax*2 + 0x4c]
mov dword [esp + 0x334], eax
fild dword [esp + 0x334]
fdivp st(1)
call fcn.004028ac
sub eax, edi
inc eax
mov dword [esp + 0x14], eax
cmp edi, ebp
jl 0x42641c
mov eax, dword [esp + 0x18]
add eax, ebp
cmp edi, eax
jle 0x426453
cmp ebp, 0xffffffff
jle 0x426447
mov eax, dword [esp + 0x18]
push eax
push ebp
push 0x403
movsx eax, word [ebx + 0x72]
mov eax, dword [eax*4 + 0x49a6f0]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x4266e9
mov ebp, edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
jmp 0x42645d
add edi, dword [esp + 0x14]
sub edi, ebp
mov dword [esp + 0x18], edi
push 8
lea eax, [esp + 0xc]
push eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll__lread
test eax, eax
ja 0x426387
cmp ebp, 0xffffffff
jle 0x4264a0
mov eax, dword [esp + 0x18]
push eax
push ebp
push 0x403
movsx eax, word [ebx + 0x72]
mov eax, dword [eax*4 + 0x49a6f0]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x4266e9
mov ax, 0x135
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48d948]
call fcn.00405c48
mov eax, dword [ebx + 8]
push eax
mov eax, dword [0x48d948]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x48d268]
push eax
mov eax, dword [0x48d948]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x48d948]
xor edx, edx
call fcn.0040e810
mov eax, dword [ebx + 4]
call fcn.00412ed4
fistp qword [esp + 0x20]
wait
lea esi, [esp + 0x130]
mov eax, dword [0x48d2b0]
cmp byte [eax], 0
je 0x426507
mov eax, dword [0x48d358]
mov byte [eax], 1
push 0
push 0
push 0
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
jmp 0x426676
push 4
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebx + 4]
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 esi, eax
test esi, esi
jne 0x426569
call fcn.0040eb04
fild dword [esp + 0x10]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.00412abc
mov edx, eax
mov ax, 0xb
call fcn.0040de10
jmp 0x4266e9
mov eax, dword [esp + 0x10]
push eax
push esi
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll__hread
cmp eax, dword [esp + 0x10]
je 0x426595
call fcn.0040eb04
lea edx, [esp + 0x30]
mov ax, 2
call fcn.0040de10
jmp 0x4266e9
push dword [esp + 0xc]
push dword [esp + 0xc]
mov eax, ebx
mov ecx, dword [esp + 0x18]
mov edx, esi
call fcn.00425d8c
test al, al
jne 0x4265b8
call fcn.0040eb04
jmp 0x4266e9
push 0x4000
mov eax, dword [esp + 0x14]
push eax
push esi
call sub.kernel32.dll_VirtualFree_1
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x4265f7
call sub.kernel32.dll_GetLastError_1
mov edx, dword [0x48d498]
mov dword [edx], eax
mov eax, dword [0x48d498]
mov eax, dword [eax]
call fcn.0040f5f0
mov eax, dword [0x48da44]
xor edx, edx
call fcn.00411d74
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
push 1
lea eax, [esp + 0x2c]
call fcn.0040fdb8
push eax
push 0
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov edx, dword [0x48d498]
mov dword [edx], eax
mov edx, dword [0x48d498]
lea eax, [esp + 0x28]
mov ecx, 4
call fcn.00405a94
fild qword [esp + 0x28]
fmul dword [0x42671c]
fild qword [esp + 0x20]
fdivp st(1)
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 0x426667
call fcn.00414c64
call fcn.0040f494
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x4266e9
push 8
lea eax, [esp + 0xc]
push eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll__lread
test eax, eax
ja 0x42651b
mov eax, dword [0x48d358]
cmp byte [eax], 0
je 0x4266b6
mov eax, dword [0x48d358]
mov byte [eax], 0
mov eax, dword [0x48d49c]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [0x48d49c]
xor edx, edx
mov dword [eax], edx
mov eax, ebx
call fcn.00428820
lea eax, [esp + 0x30]
push eax
call sub.kernel32.dll_DeleteFileA_1
mov byte [ebx + 0x80], 0
mov word [ebx + 0x74], 0
cmp byte [ebx + 0x76], 4
je 0x4266de
mov byte [ebx + 0x76], 1
call fcn.0040eb04
mov byte [esp], 1
jmp 0x426704
test esi, esi
je 0x4266fd
push 0x4000
mov eax, dword [esp + 0x14]
push eax
push esi
call sub.kernel32.dll_VirtualFree_1
mov eax, ebx
call fcn.00428820
mov al, byte [esp]
add esp, 0x338
pop ebp
pop edi
pop esi
pop ebx
ret