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

Disassembly:
push 0x2a4
mov eax, 0x5a19d6
call fcn.004348d9
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x2ac], eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4222bd
call fcn.0043ab03
test al, al
je 0x421c31
cdq
pop ebp
dec edx
int3
push dword [ebp - 0x2ac]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x421c72
call fcn.0043a6f8
test al, al
je 0x4222bd
or dh, bh
or al, 1
pop esp
movsb byte es:[edi], byte [esi]
and dl, byte [ebx]
out 0x3b, al
ror ebx, 1
ret 0xb84d
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.00445350
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 0x61f778
call fcn.00401a60
mov dword [ebp - 4], ebx
call fcn.0043a9ef
test al, al
je 0x421cd0
fmul st(7), st(0)
pop ebx
sbb eax, edx
push 0xffffffffffffffc0
and esi, dword [ecx]
dec eax
add eax, 0xe4906087
mov esi, 0x8a23e8c7
add dword [eax], eax
call fcn.0043a6f8
test al, al
je 0x421cf8
cmp eax, 0xfe4dc4b4
aad 0xd0
test bl, dl
wait
inc edx
or eax, 0xda31af96
int1
scasb al, byte es:[edi]
std
mov bl, 0x62
fist dword [edx + 0x2b]
retf 0x6f09
outsd dx, dword [esi]
or eax, 0x18e8b65a
mov byte [ecx], al
add byte [eax + eax*8 - 0x13d5e98c], al
call fcn.0043a515
test al, al
je 0x421d17
sub ch, ah
sub al, 0xbf
xchg ebx, eax
xchg dword [eax - 0x7a], edx
into
push ebp
xchg ebp, eax
salc
mov dl, 0xee
test dword [ebp + ecx*8 + 0x6e3af878], esp
cmpsd dword [esi], dword es:[edi]
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.00422f36
pop ecx
pop ecx
mov byte [ebp - 4], 1
call fcn.0043ab03
test al, al
je 0x421d5d
invalid
cmp al, ah
push edx
xchg edi, eax
and byte [edx - 0x6b], 0xa3
adc byte [eax], al
and dword [ecx], ebp
into
call fcn.0043aa79
test al, al
je 0x421d81
out 0x72, eax
sbb byte [esi], dh
jp 0x421cf4
mov dword [eax], 0x2fd1e952
ret 0xe9b8
call fcn.0043aa34
test al, al
je 0x421da3
loop 0x421d4f
invalid
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x278]
push eax
call fcn.0042331e
pop ecx
pop ecx
mov byte [ebp - 4], 2
call fcn.0043a4d0
test al, al
je 0x421dd8
ror dword [ecx - 0x70], cl
stosb byte es:[edi], al
cmc
mov bh, 0x37
outsb dx, byte [esi]
lea esi, [esi]
in al, 0xd5
outsb dx, byte [esi]
sbb dword [eax + 0x5f9edee6], eax
invalid
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.0042331e
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 3
push eax
call int.0042119b
add esp, 0xc
call fcn.0043a73d
test al, al
je 0x421e17
push ds
sbb edx, dword [0x755bb7de]
sub dh, ch
stc
scasb al, byte es:[edi]
dec esp
dec ebx
stosb byte es:[edi], al
out 0xf6, al
call fcn.0043aabe
test al, al
je 0x421e40
mov ah, 0x23
add dword [ebp - 0x7c], 0xffffffb2
and byte [edi], cl
pop es
invalid
call fcn.0043a4d0
test al, al
je 0x421e67
nop
xchg esp, eax
arpl word [eax + 0x56ca5897], bp
fdivr st(6), st(0)
or ah, byte [ebp + edi*2 - 0x41731cbb]
loopne 0x421ea3
adc edi, dword [ebp - 0x3b]
daa
fistp qword [edx + 0x1a9eee28]
mov bl, 0x8d
test dword [eax + 0x50fffffd], esp
lea eax, [ebp - 0x260]
push eax
call int.0042119b
pop ecx
lea eax, [ebp - 0x278]
push eax
lea ecx, [ebp - 0x260]
call fcn.00402fe0
test eax, eax
jne 0x421ed4
call fcn.0043a9aa
test al, al
je 0x421ea4
adc eax, 0x61e238ee
je 0x421e86
invalid
mov word [esi - 0x7d], fs
mov ebp, 0xfffffde8
add byte [ebp + 4], dh
cmp word [ebp - 0x218], 0
jne 0x421eb2
xor eax, eax
jmp 0x421ebf
lea eax, [ebp - 0x218]
push eax
call fcn.004532f1
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x248]
call fcn.00401a60
jmp 0x421f52
call fcn.0043a920
test al, al
je 0x421efa
dec ecx
dec edx
invalid
call fcn.0043a6f8
test al, al
je 0x421f23
cmp eax, dword [esi - 0x6e]
popfd
pop ebx
sbb edi, dword [ecx]
mov dword [edx + 0x37015b2], ecx
cwde
sbb al, byte [esi]
or dword [eax], 0xc1a2a381
int 0xa2
test al, ch
pop ds
mov dh, 0xcf
mov cl, ah
xor edi, edi
mov ch, 0x54
std
invalid
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x290]
push eax
call fcn.004231e6
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x248]
call fcn.00405290
push 0
push 1
lea ecx, [ebp - 0x290]
call fcn.004019a0
and dword [ebp - 0x2b0], 0
call fcn.0043aa79
test al, al
je 0x421f78
push ds
xor esi, esp
aaa
lcall 0xb446, 0x579e1f8e
ret
and dword [ebp - 0x220], 0
lea ecx, [ebp - 0x230]
xor eax, eax
mov dword [ebp - 0x21c], 7
push eax
push 0x61f778
mov word [ebp - 0x230], ax
call fcn.00401a60
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x230]
call fcn.00401b60
call fcn.0043a9ef
test al, al
je 0x421fe5
movsb byte es:[edi], byte [esi]
pushfd
out dx, al
pop ds
add esp, dword [ecx + 0x69]
loopne 0x422037
insd dword es:[edi], dx
mov ebx, 0x1dcf16fa
xchg ecx, eax
jns 0x422004
sub bh, ch
inc ebx
pushfd
mov esi, dword [ecx - 0x68]
pop ebp
retf 0xc505
call fcn.0043a48b
test al, al
je 0x422007
fist word [edi]
int1
invalid
xor al, 0x4f
lahf
call fcn.0043a73d
test al, al
je 0x42202c
wait
xchg esp, eax
and eax, 0x149704ab
insb byte es:[edi], dx
cli
clc
mov ah, 0x7c
jns 0x422074
push cs
in al, 0xba
push eax
pop ds
sub eax, 0xb55e0230
mov eax, dword [0xff6a85a5]
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [ebp - 0x2a8]
push ebx
push eax
lea ecx, [ebp - 0x230]
call fcn.00405600
mov esi, str..fcb
push esi
call fcn.004532f1
pop ecx
push eax
push esi
lea ecx, [ebp - 0x230]
call fcn.004054d0
mov eax, dword [ebp - 0x2b0]
test eax, eax
jle 0x42209d
cdq
push edx
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.00421735
add esp, 0xc
push 0xffffffffffffffff
inc dword [ebx - 0x95f33c]
push ebx
push eax
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 5
call fcn.00405600
push ebx
push 1
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 4
call fcn.004019a0
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 0x422180
call fcn.0043a6f8
test al, al
je 0x4220e4
xor al, 4
pop esi
and eax, 0x1514621f
pop ebx
inc ebp
mov eax, dword [0xf71627ba]
mov dword [edi], edx
retf
call fcn.0043a59f
test al, al
je 0x42210b
fcmovne st(0), st(1)
test ah, 0x1e
mov dword [0x2e88325a], eax
add al, 0x5d
in eax, dx
or dword [ecx - 0x46e96898], ecx
call 0xb12ae378
mov esp, 0x4e374342
movsd dword es:[edi], dword [esi]
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 0x422180
call fcn.0043a59f
test al, al
je 0x422152
push ebp
pop ebx
cwde
xor ah, byte [esi]
out dx, al
dec eax
sub eax, 0x2b155adf
aam 0x75
push ecx
and ebx, edi
invalid
mov ebx, dword [ebp - 0x2b0]
cmp ebx, 0xa
jge 0x422277
push 0
inc ebx
mov byte [ebp - 4], 3
push 1
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x2b0], ebx
call fcn.004019a0
jmp 0x421f78
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
push dword [ebp - 0x2ac]
call fcn.00453d34
pop ecx
pop ecx
call fcn.0043a851
test al, al
je 0x4221c2
f2xm1
in al, dx
pushal
push es
fdivr qword [ecx - 4]
cmp dword [edx], esp
aam 3
div byte [edi - 0x42e11bf9]
pop ebp
hlt
call fcn.0043a5e4
test al, al
je 0x4221e3
pop edi
ror dword [ebp - 4], cl
fild word [edi - 0xbb1523a]
jp 0x4221e5
dec ebx
mov bl, 0xd5
sub eax, 0xe65b1cab
js 0x42221f
shr al, 1
xchg byte [ecx + eax + 0x74c08400], al
sbb byte [0x2a33b9bd], bl
call fcn.0043a66e
test al, al
je 0x422204
test byte [ecx], al
add byte [eax + eax*8 - 0x42e2e78c], al
mov ecx, 0xf29e2a33
mov ebp, 0xf483e796
sbb eax, 0x2a33b9bd
sahf
mov ebp, 0xf483e796
stosd dword es:[edi], eax
add ecx, esi
jmp 0xcac947bc
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x230]
push eax
push ebx
pop edx
add byte [edi], cl
inc ebx
test eax, edx
std
invalid
call esi
test eax, eax
je 0x422244
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 0x422277
call fcn.0043a80c
test al, al
je 0x42226c
popfd
jne 0x422214
in eax, 0xe7
xchg byte [0x4d70d2be], ch
sbb dword [edi - 0x571facf6], ecx
cdq
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.004019a0
push ebx
push esi
lea ecx, [ebp - 0x260]
call fcn.004019a0
push ebx
push esi
lea ecx, [ebp - 0x278]
call fcn.004019a0
push ebx
push esi
lea ecx, [ebp - 0x2a8]
call fcn.004019a0
push ebx
push esi
lea ecx, [ebp - 0x248]
call fcn.004019a0
call fcn.00434894
ret