Function at 0x453781
Capabilities:
Check if file exists
Delete file
Get common file path

Disassembly:
push 0x2a4
mov eax, 0x5e1e4d
call fcn.0046dcba
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x2ac], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x453e58
call fcn.00452620
test al, al
je 0x4537cc
wait
int 0x3d
sbb dword [eax + edi*4], eax
or al, 0x98
mov al, 0x84
push esp
invalid
push dword [ebp - 0x2ac]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x45380d
call fcn.00452215
test al, al
je 0x453e58
scasd eax, dword es:[edi]
xchg byte [edi + ebx*8], bh
mov edx, 0x61a1b2cc
in al, 0x23
cli
fcom qword [edx + 0x5f]
mov bl, 0x51
in eax, dx
add al, 0xba
dec esp
sbb dword [ebx - 0x66dec696], esi
mov cl, 0x65
loope 0x453886
jmp 0x453e58
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.00480620
add esp, 0xc
mov dword [ebp - 0x234], 7
xor eax, eax
mov dword [ebp - 0x238], ebx
lea ecx, [ebp - 0x248]
mov word [ebp - 0x248], ax
push ebx
push 0x5e6948
call fcn.00402ac0
mov dword [ebp - 4], ebx
call fcn.0045250c
test al, al
je 0x45386b
fistp qword [esi + 0x18]
pop ss
sub dword [ecx - 0x70], eax
iretd
call fcn.00452215
test al, al
je 0x453893
jae 0x453870
pop es
mov ch, 0xa8
mov ch, dl
mov al, 0x3d
test byte es:[edx + 0xc85f57a], dh
test bl, ch
les ebx, [ebp - 0x37]
outsb dx, byte [esi]
or dword [eax + esi*2 + 0x770f3c6b], edi
lahf
call fcn.00452032
call fcn.00452032
test al, al
je 0x4538b2
mov ch, byte [eax - 0x252eb805]
out dx, al
push esi
push esi
fimul word [edi - 0x4fc7dcdc]
into
sbb al, 0xaa
mov al, 0x1e
wait
adc cl, byte [ebp - 0x2177b]
call dword [eax + 0x68]
add al, 1
add byte [eax], al
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x2a8]
push eax
call fcn.00455749
pop ecx
pop ecx
mov byte [ebp - 4], 1
call fcn.00452620
test al, al
je 0x4538f8
scasd eax, dword es:[edi]
inc ebp
invalid
call fcn.00452596
test al, al
je 0x45391c
cmp al, byte [edi + edx*2 - 0x1f]
push ebx
xor dword [eax - 0x20], 0x3c
imul ebx, dword [ebx - 0x12], 0xffffff91
pop ecx
sahf
push es
retf 0xcbc7
call fcn.00452551
test al, al
je 0x45393e
out 0x76, eax
push edi
cmpsd dword [esi], dword es:[edi]
pop edi
push cs
inc ebx
pushfd
mov word [eax + edi + 7], gs
nop
mov al, 0xb5
cmp eax, 0x4dadf3c5
sub byte [edi], bl
dec edi
mov eax, 0x54b5ff5d
std
invalid
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x278]
push eax
call fcn.00455b1c
pop ecx
pop ecx
mov byte [ebp - 4], 2
call fcn.00451fed
test al, al
je 0x453973
ret
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00455b1c
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 3
push eax
call fcn.0045b93c
add esp, 0xc
call fcn.0045225a
test al, al
je 0x4539b2
int3
call fcn.004525db
test al, al
je 0x4539db
mov dh, 0x7f
pushfd
invalid
call fcn.00451fed
test al, al
je 0x453a02
push 0x5a18c796
push cs
fst dword [edx - 0x17]
xor cl, al
salc
mov eax, dword [0x12870556]
pop edi
pop ds
cmpsb byte [esi], byte es:[edi]
mov al, 0xe0
push 0xffffffffffffffb4
scasd eax, dword es:[edi]
add eax, 0x8d4713a0
test dword [eax + 0x50fffffd], esp
lea eax, [ebp - 0x260]
push eax
call fcn.0045b93c
pop ecx
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x260]
call fcn.00454c92
test eax, eax
jne 0x453a6f
call fcn.004524c7
test al, al
je 0x453a3f
iretd
cmp word [ebp - 0x218], 0
jne 0x453a4d
xor eax, eax
jmp 0x453a5a
lea eax, [ebp - 0x218]
push eax
call fcn.0048ed77
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00402ac0
jmp 0x453aed
call fcn.0045243d
test al, al
je 0x453a95
test byte [ecx - 0x61f67275], bl
retf
call fcn.00452215
test al, al
je 0x453abe
xchg ebx, eax
imul esp, dword [edi], 0xa6995b97
faddp st(4)
and al, 0xee
sub eax, 0x8feb3a4c
hlt
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x290]
push eax
call fcn.004559e4
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x248]
call fcn.00404270
push 0
push 1
lea ecx, [ebp - 0x290]
call fcn.0041ece0
and dword [ebp - 0x2b0], 0
call fcn.00452596
test al, al
je 0x453b13
mov dh, 0xd6
mov fs, word [ecx]
mov bl, 7
xchg esp, eax
stosd dword es:[edi], eax
sbb ch, byte [esp]
out dx, eax
adc eax, 0x28ef4d8c
mul al
dec ebp
out dx, eax
sub byte [esi], bh
mul al
shr byte [eax - 0x7d], cl
and dword [ebp - 0x220], 0
lea ecx, [ebp - 0x230]
xor eax, eax
mov dword [ebp - 0x21c], 7
push eax
push 0x5e6948
mov word [ebp - 0x230], ax
call fcn.00402ac0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x230]
call fcn.004029a0
call fcn.0045250c
test al, al
je 0x453b80
movsd dword es:[edi], dword [esi]
loopne 0x453b14
invalid
and byte [0xb0885580], ah
adc byte [ebp - 0x78], 0xb0
jg 0x453bab
adc dword [esi + 0x539d7a1c], 0xfffffff1
jp 0x453b0b
push ebx
int1
mov ah, 0x46
dec byte [ebx]
inc edi
ficomp word [ebx + 0x64680fe0]
pop ecx
fcomp qword [edx + edx*2 - 0x1bdc17d7]
invalid
call fcn.00451fa8
test al, al
je 0x453ba2
cmp eax, 0x32b52150
xor ebx, dword [ebp + 0x58]
and byte [ebx], 0x3a
jecxz 0x453b63
popal
and eax, 0x9750e0de
rcl bh, 0x18
insd dword es:[edi], dx
in eax, dx
call fcn.0045225a
test al, al
je 0x453bc7
ja 0x453b6c
mov esi, 0x5f5a90bb
loop 0x453c05
wait
mov edx, 0xa7e32d0
pop ebx
inc ecx
sbb al, 0x48
out 0x3d, eax
das
dec esi
mov ch, ah
cmp eax, 0x33ff6aa4
fisttp dword [ebp - 0x2a77b]
call dword [ebx + 0x50]
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [ebp - 0x2a8]
push ebx
push eax
lea ecx, [ebp - 0x230]
call fcn.00405b10
mov esi, str..fcb
push esi
call fcn.0048ed77
pop ecx
push eax
push esi
lea ecx, [ebp - 0x230]
call fcn.00405c20
mov eax, dword [ebp - 0x2b0]
test eax, eax
jle 0x453c38
cdq
push edx
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.00455267
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 5
call fcn.00405b10
push ebx
push 1
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 4
call fcn.0041ece0
test dword [eax - 3], esi
invalid
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x453d1b
call fcn.00452215
test al, al
je 0x453c7f
push edi
mov eax, dword [0x68e483f6]
lodsd eax, dword [esi]
push 0x14
mov edi, 0x1907c2cd
push ds
add ebp, dword [edi]
push es
pop edi
out 0x93, eax
mov bh, 0x47
outsb dx, byte [esi]
jmp 0x453c7a
call fcn.004520bc
test al, al
je 0x453ca6
jns 0x453cc0
inc esp
cwde
mov al, 0xb8
pop gs
aas
outsd dx, dword [esi]
mov edx, dword [ebx]
sahf
push eax
mov dl, 0xbc
xchg ebx, eax
sub dword [edx], esp
sub ch, al
add esi, dword [ebp - 0x6733b61b]
mov ah, 0x30
jmp 0xfe29fa2d
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x453d1b
add byte [ebp - 0x17a98a40], al
bnd jecxz 0x453cc8
call fcn.004520bc
test al, al
je 0x453ced
invalid
inc dword [eax + eax*8 + 0x1feb1f74]
adc byte [eax + eax*8], ch
mov ch, 0xf1
in eax, dx
push ebp
ret
jmp 0x453cef
mov ebx, dword [ebp - 0x2b0]
cmp ebx, 0xa
jge 0x453e12
push eax
std
invalid
push 0
inc ebx
mov byte [ebp - 4], 3
push 1
inc ebp
cld
add ebp, dword [edx + 1]
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x2b0], ebx
call fcn.0041ece0
jmp 0x453b13
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
push dword [ebp - 0x2ac]
call fcn.0048cfd6
pop ecx
pop ecx
call fcn.0045236e
test al, al
je 0x453d5d
xor dword [ecx + edi*4 + 0x1e], ebx
add eax, 0x32c81356
mov byte [edi - 0x6b], bl
xor bl, byte [esi + 0x2a0f490c]
js 0x453d46
sbb al, 0x34
adc ebp, eax
lahf
jecxz 0x453d60
call fcn.00452101
test al, al
je 0x453d7e
invalid
inc dword [eax + eax*8 - 0x293e78c]
insb byte es:[edi], dx
std
pop esp
mov esp, 0xc4be79a3
jo 0x453d00
cmpsb byte [esi], byte es:[edi]
imul esi, dword [edi + ebx*8 + 0x766cac95], 0xffffffa5
invalid
call fcn.0045218b
test al, al
je 0x453d9f
add byte [0x1f9d364e], cl
mov bl, byte [edi + 0x75]
lahf
invalid
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x230]
push eax
call esi
test eax, eax
je 0x453ddf
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
push 5
cmovae eax, dword [ebp - 0x230]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebx, dword [ebp - 0x2ac]
push ebx
call esi
test eax, eax
je 0x453e12
call fcn.00452329
test al, al
je 0x453e07
add bh, byte [ecx + esi*4 + 0x59]
mov cl, 0xbc
in al, dx
xlatb
xor byte [esi], bl
inc edx
std
in al, dx
outsb dx, byte [esi]
mov byte [0x6ab6267e], al
add eax, 0xff53006a
adc eax, sym.imp.KERNEL32.dll_MoveFileExW
push 5
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
xor ebx, ebx
lea ecx, [ebp - 0x230]
xor esi, esi
push ebx
inc esi
push esi
call fcn.0041ece0
push ebx
push esi
lea ecx, [ebp - 0x260]
call fcn.0041ece0
push ebx
push esi
lea ecx, [ebp - 0x278]
call fcn.0041ece0
push ebx
push esi
lea ecx, [ebp - 0x2a8]
call fcn.0041ece0
push ebx
push esi
lea ecx, [ebp - 0x248]
call fcn.0041ece0
call fcn.0046dc64
ret