Function at 0x47fe30
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffee0
mov byte [esp], dl
mov esi, eax
mov eax, dword [0x48d550]
cmp byte [eax + 0x18c8], 0
je 0x47fe69
cmp byte [esi + 0x553], 0
jne 0x47fe69
mov eax, dword [0x48d38c]
mov dl, byte [esp]
mov byte [eax], dl
call fcn.004627b8
jmp 0x480765
mov eax, esi
call fcn.00464bb4
test al, al
je 0x480765
mov eax, dword [0x48d9cc]
cmp byte [eax], 0
je 0x47feb2
cmp dword [esi + 0x4c], 0
je 0x47fea0
mov ax, 0x46
call fcn.0040bc04
mov edx, 3
call fcn.00411d74
jmp 0x480765
lea eax, [esi + 0xc]
mov dl, 1
call fcn.004246b0
test al, al
je 0x480765
cmp byte [esi + 0x55d], 0
jne 0x47fee6
push 0
push 0
mov ax, word [esi + 0x534]
xor ecx, ecx
mov dl, 9
call fcn.0044f244
test al, al
jne 0x47fee6
mov eax, dword [0x48db94]
cmp byte [eax], 0
jne 0x480584
jmp 0x480765
mov eax, dword [0x48d9cc]
cmp byte [eax], 0
je 0x47ff4b
push 0
mov eax, dword [0x48d918]
mov eax, dword [eax]
push eax
call sub.kernel32.dll__lcreat
mov edx, dword [0x48d440]
mov dword [edx], eax
mov eax, dword [0x48d440]
cmp dword [eax], 0xffffffff
jne 0x47ff3d
mov edx, dword [0x48d918]
mov edx, dword [edx]
mov ax, 3
call fcn.0040de10
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x480765
mov eax, dword [0x48d9fc]
mov byte [eax], 1
jmp 0x480765
xor eax, eax
mov dword [esi + 0x47c], eax
mov dword [esi + 0x480], eax
mov eax, dword [0x48db94]
cmp byte [eax], 0
jne 0x47ff5e
mov eax, dword [0x48da18]
xor edx, edx
mov dword [eax], edx
xor eax, eax
mov dword [esi + 0x78], eax
mov eax, dword [0x48d74c]
mov dl, byte [esp]
mov byte [eax], dl
mov eax, dword [0x48d550]
cmp byte [eax + 0x18ad], 0
jne 0x47ff8b
xor eax, eax
mov dword [esi + 0x474], eax
mov dword [esi + 0x478], eax
jmp 0x47ff99
mov eax, esi
call fcn.0047e098
fistp qword [esi + 0x474]
wait
mov eax, dword [esi + 0x14]
mov dl, byte [esp]
call fcn.0047f3dc
xor edx, edx
call fcn.0040e810
lea eax, [esi + 0xc]
call fcn.00428520
mov byte [esp + 0x12], al
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
jne 0x48037b
cmp byte [esp + 0x12], 1
jne 0x480362
push dword [esi + 0x478]
push dword [esi + 0x474]
mov eax, esi
mov dl, 1
call fcn.0047e0e8
movzx eax, word [esi + 0x53c]
movzx edx, word [esi + 0x50c]
shr edx, 1
cmp eax, edx
jae 0x480003
mov eax, dword [0x48d8f8]
mov byte [eax], 1
jmp 0x48000b
mov eax, dword [0x48d8f8]
mov byte [eax], 2
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x48002c
push 0
mov eax, dword [esi]
push eax
push 0x222
mov eax, dword [0x48da1c]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x48d74c]
cmp byte [eax], 3
sete dl
mov eax, esi
mov cl, 1
call fcn.0047c7e0
mov eax, 0x19
call fcn.0040f448
push dword [esi + 0x478]
push dword [esi + 0x474]
call fcn.00410208
mov edx, eax
mov eax, dword [0x48d830]
call fcn.00405c48
mov ax, 0x45
call fcn.0040bc04
mov edx, dword [0x48d830]
call fcn.0040f5a0
mov eax, dword [0x48da44]
mov edx, 0x12
call fcn.00411d74
cmp al, 3
jne 0x4800a0
mov byte [esp + 0x12], 2
mov eax, dword [0x48d9fc]
mov byte [eax], 1
jmp 0x48037b
test al, al
jne 0x4800bc
fild qword [esi + 0x474]
fadd dword [0x480770]
fistp qword [esi + 0x474]
wait
jmp 0x47ffab
lea eax, [esi + 0xc]
call fcn.00428760
mov eax, dword [0x48d828]
mov edx, dword [0x48d9d8]
push esi
mov esi, eax
mov edi, edx
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
mov eax, dword [0x48d51c]
mov eax, dword [eax]
mov dl, byte [eax + 0x136]
test dl, dl
jbe 0x480114
mov eax, dword [0x48d9d8]
mov edi, dword [0x48d984]
mov cl, byte [eax]
mov ebx, dword [0x48d550]
cmp cl, byte [ebx + 0x189c]
jne 0x48010e
mov cl, byte [edi]
mov byte [eax], cl
inc edi
inc eax
dec dl
jne 0x4800fa
mov eax, dword [0x48d9cc]
cmp byte [eax], 0
je 0x4802a9
lea eax, [esi + 0xc]
call fcn.004269c0
test al, al
jne 0x480148
lea eax, [esi + 0xc]
call fcn.00428820
mov eax, dword [0x48d9fc]
mov al, byte [eax]
add al, 2
mov byte [esp + 0x12], al
jmp 0x48037b
mov eax, dword [0x48d414]
movzx eax, byte [eax]
push eax
mov eax, dword [0x48d9d8]
push eax
mov eax, dword [0x48d440]
mov eax, dword [eax]
push eax
call sub.kernel32.dll__hwrite
mov eax, dword [0x48d51c]
mov eax, dword [eax]
movzx eax, byte [eax + 0x136]
mov dword [esp + 0x114], eax
fild dword [esp + 0x114]
fild qword [esi + 0x474]
faddp st(1)
fistp qword [esi + 0x47c]
wait
mov eax, dword [0x48d51c]
mov eax, dword [eax]
movzx eax, byte [eax + 0x136]
mov dword [esp + 0x114], eax
fild dword [esp + 0x114]
fild qword [esi + 0x474]
faddp st(1)
fistp qword [esi + 0x474]
wait
mov eax, dword [0x48d318]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
push 1
mov eax, dword [0x48d318]
call fcn.0040fdb8
push eax
push 0
mov eax, dword [0x48d440]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov edx, dword [0x48d498]
mov dword [edx], eax
mov edx, dword [0x48d498]
mov eax, dword [0x48d318]
mov ecx, 4
call fcn.00405a94
mov eax, dword [0x48d414]
movzx eax, byte [eax]
mov dword [esp + 0x114], eax
fild dword [esp + 0x114]
mov eax, dword [0x48d318]
fild qword [eax]
fsubrp st(1)
mov eax, dword [0x48d318]
fistp qword [eax]
wait
mov eax, dword [0x48d318]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x48d414]
movzx eax, byte [eax]
mov edx, dword [0x48d51c]
mov edx, dword [edx]
movzx edx, byte [edx + 0x136]
sub eax, edx
mov dword [esp + 0x11c], eax
fild dword [esp + 0x11c]
add esp, 0xfffffff8
fistp qword [esp]
wait
lea eax, [esi + 0x54]
call fcn.0042418c
mov eax, dword [0x48d318]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x48d414]
movzx eax, byte [eax]
mov dword [esp + 0x11c], eax
fild dword [esp + 0x11c]
mov eax, dword [0x48d318]
fild qword [eax]
faddp st(1)
fsub dword [0x480770]
add esp, 0xfffffff8
fistp qword [esp]
wait
lea eax, [esi + 0xc]
call fcn.00423bdc
jmp 0x480337
mov eax, dword [esi + 0x474]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x478]
mov dword [esp + 0xc], eax
mov eax, dword [0x48d414]
movzx eax, byte [eax]
push eax
mov ecx, dword [0x48d9d8]
lea edx, [esp + 0xc]
lea eax, [esi + 0xc]
call fcn.00426720
mov eax, esi
call fcn.004632ec
call fcn.00444994
mov byte [esi + 0x8f], 0
fild qword [esi + 0x474]
fadd dword [0x480770]
fistp qword [esi + 0x474]
wait
push dword [esp + 0xc]
push dword [esp + 0xc]
mov eax, dword [0x48d414]
movzx eax, byte [eax]
mov dword [esp + 0x11c], eax
fild dword [esp + 0x11c]
fild qword [esp + 0x10]
faddp st(1)
fsub dword [0x480770]
add esp, 0xfffffff8
fistp qword [esp]
wait
lea eax, [esi + 0xc]
call fcn.00423bdc
lea eax, [esi + 0xc]
call fcn.00428820
mov eax, dword [0x48da18]
inc dword [eax]
inc dword [esi + 0x78]
mov eax, dword [0x48d5c8]
mov byte [eax], 1
call sub.user32.dll_DestroyCaret
mov eax, esi
call fcn.0047d4c8
jmp 0x47ffab
cmp byte [esp + 0x12], 2
jne 0x48037b
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x48037b
mov eax, dword [0x48d9fc]
mov byte [eax], 1
call fcn.0040eb04
mov eax, dword [0x48d9cc]
cmp byte [eax], 0
je 0x480513
cmp byte [esp + 0x12], 2
setne byte [esp + 0x11]
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x4803cf
cmp dword [esi + 0x78], 0
jbe 0x4803cf
mov ax, 0x1c1
call fcn.0040bc04
mov edx, dword [esi + 0x14]
call fcn.0040f5a0
mov eax, dword [0x48da44]
mov edx, 2
call fcn.00411d74
cmp al, 1
sete byte [esp + 0x11]
cmp byte [esp + 0x11], 0
je 0x4804d5
cmp dword [esi + 0x78], 0
jbe 0x4804d5
mov eax, dword [esi + 0x18]
mov dword [esi + 0x474], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x478], eax
lea eax, [esi + 0xc]
call fcn.00428760
mov eax, dword [0x48d9fc]
mov al, byte [eax]
mov byte [esp + 0x10], al
mov eax, dword [0x48d9fc]
mov byte [eax], 0
lea eax, [esi + 0xc]
call fcn.004269c0
mov ebx, eax
lea eax, [esi + 0xc]
call fcn.00428820
mov eax, dword [0x48d440]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
test bl, bl
je 0x480765
mov eax, dword [0x48d9fc]
mov byte [eax], 0
cmp byte [esi + 0x82], 4
je 0x480462
mov ax, word [esi + 0x534]
call fcn.00412944
mov edx, eax
lea eax, [esp + 0x13]
call fcn.00405c48
jmp 0x48046e
mov edx, dword [esi + 0x14]
lea eax, [esp + 0x13]
call fcn.00405c48
push 0
lea edx, [esp + 0x17]
mov eax, dword [0x48d918]
mov eax, dword [eax]
mov cl, 6
call fcn.00429484
test al, al
jne 0x480765
mov eax, esi
call fcn.004632ec
call fcn.00444994
mov byte [esi + 0x8f], 0
lea eax, [esp + 0x13]
call fcn.00412f30
fistp qword [esi + 0x18]
wait
fild qword [esi + 0x18]
fcomp dword [0x480774]
fnstsw ax
sahf
jne 0x4804c4
mov dword [esi + 0x18], 1
xor eax, eax
mov dword [esi + 0x1c], eax
cmp byte [esp + 0x10], 0
je 0x4804e9
mov eax, dword [0x48d9fc]
mov byte [eax], 1
jmp 0x4804e9
mov eax, dword [0x48d440]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, esi
call fcn.00481d20
mov eax, dword [0x48d918]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_DeleteFileA_1
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x480520
mov edx, dword [0x48d918]
mov edx, dword [edx]
mov ax, 4
call fcn.0040de10
jmp 0x480520
cmp dword [esi + 0x78], 0
jne 0x480520
mov eax, esi
call fcn.00481d20
mov bl, 1
lea edi, [esi + 0x48c]
fild qword [esi + 0x18]
fsub dword [0x480770]
add esp, 0xfffffff8
fistp qword [esp]
wait
push dword [edi + 4]
push dword [edi]
call fcn.0040bb94
fistp qword [edi]
wait
inc ebx
add edi, 8
cmp bl, 3
jne 0x480528
fild qword [esi + 0x18]
fsub dword [0x480770]
fild qword [esi + 0x188]
fcompp
fnstsw ax
sahf
jbe 0x48057d
fild qword [esi + 0x18]
fsub dword [0x480770]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, esi
xor edx, edx
call fcn.0047e0e8
mov eax, esi
call fcn.0047d4c8
cmp byte [esp + 0x12], 0
jne 0x480595
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x4805c2
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x480744
mov eax, dword [0x48d9cc]
cmp byte [eax], 0
je 0x4805c2
cmp byte [esp + 0x11], 0
jne 0x4805c2
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x480744
call fcn.00444994
mov ax, word [esi + 0x534]
call fcn.0046243c
mov eax, dword [0x48d9fc]
cmp byte [eax], 0
je 0x4805f4
mov ax, 0x2ac
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48da44]
call fcn.00405c48
jmp 0x480609
mov eax, dword [0x48da44]
push esi
mov edi, eax
mov esi, 0x480778
mov ecx, 0x8b
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x48062a
mov ax, 0x2ae
call fcn.0040bc04
push eax
mov eax, dword [0x48da44]
push eax
call sub.kernel32.dll_lstrcatA
jmp 0x48063f
mov ax, 0x2ad
call fcn.0040bc04
push eax
mov eax, dword [0x48da44]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x48d74c]
cmp byte [eax], 4
jne 0x480661
mov edx, dword [0x48d550]
add edx, 0xabf
mov eax, dword [0x48da44]
call fcn.0040f5a0
jmp 0x480677
mov edx, dword [0x48d550]
add edx, 0x12a3
mov eax, dword [0x48da44]
call fcn.0040f5a0
mov eax, dword [0x48d550]
cmp byte [eax + 0x188c], 0
je 0x48069a
mov ax, 0x2b0
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48da44]
call fcn.0040f5a0
mov eax, dword [0x48db94]
cmp byte [eax], 0
je 0x4806c1
mov eax, dword [0x48d750]
push dword [eax + 4]
push dword [eax]
call fcn.004123c0
mov edx, eax
mov eax, dword [0x48da44]
call fcn.0040f5a0
jmp 0x4806f7
mov eax, dword [0x48da18]
mov eax, dword [eax]
mov dword [esp + 0x118], eax
xor eax, eax
mov dword [esp + 0x11c], eax
fild qword [esp + 0x118]
add esp, 0xfffffff8
fistp qword [esp]
wait
call fcn.004123c0
mov edx, eax
mov eax, dword [0x48da44]
call fcn.0040f5a0
mov eax, dword [0x48d550]
cmp byte [eax + 0x188c], 0
jne 0x48071a
mov ax, 0x2b0
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48da44]
call fcn.0040f5a0
mov ax, 0x44
call fcn.0040bc04
mov edx, eax
mov eax, dword [0x48da44]
mov ecx, 4
call fcn.00411d84
fild qword [esi + 0x18]
fsub dword [0x480770]
fistp qword [esi + 0x474]
wait
mov eax, dword [0x48db94]
cmp byte [eax], 0
jne 0x480756
mov eax, dword [0x48d9cc]
mov byte [eax], 0
mov byte [esi + 0x553], 0
mov eax, dword [0x48d74c]
mov byte [eax], 0
add esp, 0x120
pop edi
pop esi
pop ebx
ret