Function at 0x471970
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffee0
mov byte [esp], dl
mov esi, eax
mov eax, dword [0x4be784]
cmp byte [eax + 0x18c8], 0
je 0x4719a9
cmp byte [esi + 0x435], 0
jne 0x4719a9
mov eax, dword [0x4be558]
mov dl, byte [esp]
mov byte [eax], dl
call fcn.0044cf4c
jmp 0x4722fb
mov eax, esi
call fcn.0044f5d0
test al, al
je 0x4722fb
mov eax, dword [0x4bed18]
cmp byte [eax], 0
je 0x4719f5
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x5c], 0
je 0x4719e3
mov ax, 0x46
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
jmp 0x4722fb
mov eax, dword [esi + 0xc]
mov dl, 1
call fcn.00419834
test al, al
je 0x4722fb
cmp byte [esi + 0x442], 0
jne 0x471a29
push 0
push 0
mov ax, word [esi + 0x424]
xor ecx, ecx
mov dl, 9
call fcn.00430df8
test al, al
jne 0x471a29
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
jne 0x472117
jmp 0x4722fb
mov eax, dword [0x4bed18]
cmp byte [eax], 0
je 0x471a8b
mov eax, dword [0x4bec60]
mov eax, dword [eax]
call fcn.004adcb4
mov edx, dword [0x4be640]
mov dword [edx], eax
mov eax, dword [0x4be640]
cmp dword [eax], 0xffffffff
jne 0x471a7d
mov edx, dword [0x4bec60]
mov edx, dword [edx]
mov ax, 3
call fcn.004acdac
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x4722fb
mov eax, dword [0x4bed48]
mov byte [eax], 1
jmp 0x4722fb
xor eax, eax
mov dword [esi + 0x134], eax
mov dword [esi + 0x138], eax
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
jne 0x471a9e
mov eax, dword [0x4bed78]
xor edx, edx
mov dword [eax], edx
mov eax, dword [esi + 0xc]
xor edx, edx
mov dword [eax + 0x8c], edx
mov eax, dword [0x4bea04]
mov dl, byte [esp]
mov byte [eax], dl
mov eax, dword [0x4be784]
cmp byte [eax + 0x18ad], 0
jne 0x471ad1
xor eax, eax
mov dword [esi + 0x12c], eax
mov dword [esi + 0x130], eax
jmp 0x471adf
mov eax, esi
call fcn.0046fbdc
fistp qword [esi + 0x12c]
wait
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0xc]
mov dl, byte [esp]
call fcn.00470eb8
xor edx, edx
call fcn.004ad8ec
mov eax, dword [esi + 0xc]
call fcn.0041e660
mov byte [esp + 0x12], al
mov eax, dword [0x4bed48]
cmp byte [eax], 0
jne 0x471edc
cmp byte [esp + 0x12], 1
jne 0x471ec3
push dword [esi + 0x130]
push dword [esi + 0x12c]
mov eax, esi
mov dl, 1
call fcn.0046fc28
movzx eax, word [esi + 0x42c]
movzx edx, word [esi + 0x3fc]
shr edx, 1
cmp eax, edx
jae 0x471b4c
mov eax, dword [0x4bec3c]
mov byte [eax], 1
jmp 0x471b54
mov eax, dword [0x4bec3c]
mov byte [eax], 2
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x471b75
push 0
mov eax, dword [esi]
push eax
push 0x222
mov eax, dword [0x4bed7c]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x4bea04]
cmp byte [eax], 3
sete dl
mov eax, esi
mov cl, 1
call fcn.0046e108
mov eax, 0x19
call fcn.004ae058
push dword [esi + 0x130]
push dword [esi + 0x12c]
call fcn.004af438
mov edx, eax
mov eax, dword [0x4beb38]
call fcn.004b81b0
mov ax, 0x45
call fcn.004aa600
mov edx, dword [0x4beb38]
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
mov edx, 0x12
call fcn.004b12a8
cmp al, 3
jne 0x471be9
mov byte [esp + 0x12], 2
mov eax, dword [0x4bed48]
mov byte [eax], 1
jmp 0x471edc
test al, al
jne 0x471c05
fild qword [esi + 0x12c]
fadd dword [0x472308]
fistp qword [esi + 0x12c]
wait
jmp 0x471af4
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x10]
mov eax, dword [0x4beb30]
mov edx, dword [0x4bed24]
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 [0x4be750]
mov eax, dword [eax]
mov dl, byte [eax + 0x136]
test dl, dl
jbe 0x471c61
mov eax, dword [0x4bed24]
mov edi, dword [0x4becd8]
mov cl, byte [eax]
mov ebx, dword [0x4be784]
cmp cl, byte [ebx + 0x189c]
jne 0x471c5b
mov cl, byte [edi]
mov byte [eax], cl
inc edi
inc eax
dec dl
jne 0x471c47
mov eax, dword [0x4bed18]
cmp byte [eax], 0
je 0x471dfd
mov eax, dword [esi + 0xc]
call fcn.0041ca44
test al, al
jne 0x471c99
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
mov eax, dword [0x4bed48]
mov al, byte [eax]
add al, 2
mov byte [esp + 0x12], al
jmp 0x471edc
mov eax, dword [0x4be60c]
movzx eax, byte [eax]
push eax
mov eax, dword [0x4bed24]
push eax
mov eax, dword [0x4be640]
mov eax, dword [eax]
push eax
call sub.kernel32.dll__hwrite
mov eax, dword [0x4be750]
mov eax, dword [eax]
movzx eax, byte [eax + 0x136]
mov dword [esp + 0x114], eax
fild dword [esp + 0x114]
fild qword [esi + 0x12c]
faddp st(1)
fistp qword [esi + 0x134]
wait
mov eax, dword [0x4be750]
mov eax, dword [eax]
movzx eax, byte [eax + 0x136]
mov dword [esp + 0x114], eax
fild dword [esp + 0x114]
fild qword [esi + 0x12c]
faddp st(1)
fistp qword [esi + 0x12c]
wait
mov eax, dword [0x4be4c4]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
push 1
mov eax, dword [0x4be4c4]
call fcn.004af014
push eax
push 0
mov eax, dword [0x4be640]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_SetFilePointer_1
mov edx, dword [0x4be6b0]
mov dword [edx], eax
mov edx, dword [0x4be6b0]
mov eax, dword [0x4be4c4]
mov ecx, 4
call fcn.004066dc
mov eax, dword [0x4be60c]
movzx eax, byte [eax]
mov dword [esp + 0x114], eax
fild dword [esp + 0x114]
mov eax, dword [0x4be4c4]
fild qword [eax]
fsubrp st(1)
mov eax, dword [0x4be4c4]
fistp qword [eax]
wait
mov eax, dword [0x4be4c4]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x4be60c]
movzx eax, byte [eax]
mov edx, dword [0x4be750]
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
mov eax, dword [esi + 0xc]
add eax, 0x64
call fcn.0041907c
mov eax, dword [0x4be4c4]
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x4be60c]
movzx eax, byte [eax]
mov dword [esp + 0x11c], eax
fild dword [esp + 0x11c]
mov eax, dword [0x4be4c4]
fild qword [eax]
faddp st(1)
fsub dword [0x472308]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [esi + 0xc]
call fcn.00418ac4
jmp 0x471e8e
mov eax, dword [esi + 0x12c]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x130]
mov dword [esp + 0xc], eax
push dword [esp + 0xc]
push dword [esp + 0xc]
mov eax, dword [0x4be60c]
movzx eax, byte [eax]
mov dword [esp + 0x11c], eax
fild dword [esp + 0x11c]
fild qword [esp + 0x10]
faddp st(1)
fsub dword [0x472308]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [esi + 0xc]
call fcn.00418ac4
mov eax, dword [0x4be60c]
movzx eax, byte [eax]
push eax
mov ecx, dword [0x4bed24]
lea edx, [esp + 0xc]
mov eax, dword [esi + 0xc]
call fcn.0041c768
mov eax, esi
call fcn.0044dab4
call fcn.00427d08
mov eax, dword [esi + 0xc]
mov byte [eax + 0xd2], 0
fild qword [esi + 0x12c]
fadd dword [0x472308]
fistp qword [esi + 0x12c]
wait
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
mov eax, dword [0x4bed78]
inc dword [eax]
mov eax, dword [esi + 0xc]
inc dword [eax + 0x8c]
mov eax, dword [0x4be810]
mov byte [eax], 1
call sub.user32.dll_DestroyCaret
mov eax, esi
call fcn.0046ee24
jmp 0x471af4
cmp byte [esp + 0x12], 2
jne 0x471edc
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x471edc
mov eax, dword [0x4bed48]
mov byte [eax], 1
call fcn.004adbe0
mov eax, dword [0x4bed18]
cmp byte [eax], 0
je 0x47209a
cmp byte [esp + 0x12], 2
setne byte [esp + 0x11]
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x471f39
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x8c], 0
jbe 0x471f39
mov ax, 0x1c1
call fcn.004aa600
mov edx, dword [esi + 0xc]
mov edx, dword [edx + 0xc]
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
mov edx, 2
call fcn.004b12a8
cmp al, 1
sete byte [esp + 0x11]
cmp byte [esp + 0x11], 0
je 0x47205c
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x8c], 0
jbe 0x47205c
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x10]
mov dword [esi + 0x12c], edx
mov edx, dword [eax + 0x14]
mov dword [esi + 0x130], edx
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x10]
mov eax, dword [0x4bed48]
mov al, byte [eax]
mov byte [esp + 0x10], al
mov eax, dword [0x4bed48]
mov byte [eax], 0
mov eax, dword [esi + 0xc]
call fcn.0041ca44
mov ebx, eax
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
mov eax, dword [0x4be640]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
test bl, bl
je 0x4722fb
mov eax, dword [0x4bed48]
mov byte [eax], 0
mov eax, dword [esi + 0xc]
cmp byte [eax + 0x96], 4
je 0x471fe0
mov ax, word [esi + 0x424]
call fcn.004b1cb8
mov edx, eax
lea eax, [esp + 0x13]
call fcn.004b81b0
jmp 0x471fec
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x13]
call fcn.004b81b0
push 0
lea edx, [esp + 0x17]
mov eax, dword [0x4bec60]
mov eax, dword [eax]
mov cl, 6
call fcn.0041f778
test al, al
jne 0x4722fb
mov eax, esi
call fcn.0044dab4
call fcn.00427d08
mov eax, dword [esi + 0xc]
mov byte [eax + 0xd2], 0
lea eax, [esp + 0x13]
call fcn.004b2314
mov ebx, dword [esi + 0xc]
fistp qword [ebx + 0x10]
wait
mov eax, dword [esi + 0xc]
fild qword [eax + 0x10]
fcomp dword [0x47230c]
fnstsw ax
sahf
jne 0x47204b
mov dword [ebx + 0x10], 1
xor eax, eax
mov dword [ebx + 0x14], eax
cmp byte [esp + 0x10], 0
je 0x472070
mov eax, dword [0x4bed48]
mov byte [eax], 1
jmp 0x472070
mov eax, dword [0x4be640]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_CloseHandle_1
mov eax, esi
call fcn.004739dc
mov eax, dword [0x4bec60]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_DeleteFileA_1
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x4720ad
mov edx, dword [0x4bec60]
mov edx, dword [edx]
mov ax, 4
call fcn.004acdac
jmp 0x4720ad
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x8c], 0
jne 0x4720ad
mov eax, esi
call fcn.004739dc
mov bl, 1
lea edi, [esi + 0x144]
mov eax, dword [esi + 0xc]
fild qword [eax + 0x10]
fsub dword [0x472308]
add esp, 0xfffffff8
fistp qword [esp]
wait
push dword [edi + 4]
push dword [edi]
call fcn.004aa590
fistp qword [edi]
wait
inc ebx
add edi, 8
cmp bl, 3
jne 0x4720b5
mov eax, dword [esi + 0xc]
fild qword [eax + 0x10]
fsub dword [0x472308]
fild qword [esi + 0x3c]
fcompp
fnstsw ax
sahf
jbe 0x472110
mov eax, dword [esi + 0xc]
fild qword [eax + 0x10]
fsub dword [0x472308]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, esi
xor edx, edx
call fcn.0046fc28
mov eax, esi
call fcn.0046ee24
cmp byte [esp + 0x12], 0
jne 0x472128
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x472155
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x4722da
mov eax, dword [0x4bed18]
cmp byte [eax], 0
je 0x472155
cmp byte [esp + 0x11], 0
jne 0x472155
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x4722da
call fcn.00427d08
mov ax, word [esi + 0x424]
call fcn.00447e94
mov eax, dword [0x4bed48]
cmp byte [eax], 0
je 0x472187
mov ax, 0x2ac
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004b81b0
jmp 0x47219c
mov eax, dword [0x4bedb0]
push esi
mov edi, eax
mov esi, 0x472310
mov ecx, 0x8b
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x4721bd
mov ax, 0x2ae
call fcn.004aa600
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
jmp 0x4721d2
mov ax, 0x2ad
call fcn.004aa600
push eax
mov eax, dword [0x4bedb0]
push eax
call sub.kernel32.dll_lstrcatA
mov eax, dword [0x4bea04]
cmp byte [eax], 4
jne 0x4721f4
mov edx, dword [0x4be784]
add edx, 0xabf
mov eax, dword [0x4bedb0]
call fcn.004ae1b0
jmp 0x47220a
mov edx, dword [0x4be784]
add edx, 0x12a3
mov eax, dword [0x4bedb0]
call fcn.004ae1b0
mov eax, dword [0x4be784]
cmp byte [eax + 0x188c], 0
je 0x47222d
mov ax, 0x2b0
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004ae1b0
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
je 0x472254
mov eax, dword [0x4bea08]
push dword [eax + 4]
push dword [eax]
call fcn.004b849c
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004ae1b0
jmp 0x47228a
mov eax, dword [0x4bed78]
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.004b849c
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004ae1b0
mov eax, dword [0x4be784]
cmp byte [eax + 0x188c], 0
jne 0x4722ad
mov ax, 0x2b0
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
call fcn.004ae1b0
mov ax, 0x44
call fcn.004aa600
mov edx, eax
mov eax, dword [0x4bedb0]
mov ecx, 4
call fcn.004b12b8
mov eax, dword [esi + 0xc]
fild qword [eax + 0x10]
fsub dword [0x472308]
fistp qword [esi + 0x12c]
wait
mov eax, dword [0x4bef4c]
cmp byte [eax], 0
jne 0x4722ec
mov eax, dword [0x4bed18]
mov byte [eax], 0
mov byte [esi + 0x435], 0
mov eax, dword [0x4bea04]
mov byte [eax], 0
add esp, 0x120
pop edi
pop esi
pop ebx
ret