Function at 0x4895e2
Capabilities:
Check if file exists

Disassembly:
push 0x80
mov eax, 0x5a91b2
call fcn.00462cd6
mov ebx, ecx
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp + 0x1c]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x48], eax
xor eax, eax
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x20], vtable.ClassPtr_class_KtmTransaction_.0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
movlpd qword [ebp - 0x5c], xmm0
mov edx, vtable.ClassPtr_class_FSItem_.0
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], eax
movlpd qword [ebp - 0x64], xmm0
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
cmp dword [ebp + 0x18], eax
mov byte [ebp - 0x41], al
lea eax, [ebp - 0x14]
push eax
push 0x104
push ecx
mov ecx, ebx
mov byte [ebp - 4], 4
setne byte [ebp - 0x49]
call fcn.0048ac26
mov esi, eax
test esi, esi
jns 0x489680
je 0x489ada
push 0x508
push str.d:dbs_shodct1116_102044cmd8clientonedrive_setup_standalone_fsmanager_fsmanagerimpl.cpp
push esi
call fcn.0048259a
jmp 0x489ada
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
push 0x104
push edi
call fcn.0048ac26
mov esi, eax
test esi, esi
jns 0x4896a4
je 0x489ada
push 0x509
jmp 0x489670
mov eax, dword [ebp - 0x14]
mov byte [ebp - 0x49], 1
test eax, eax
je 0x4896b2
add eax, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4896d7
mov esi, 0x80070002
push 0x511
push str.d:dbs_shodct1116_102044cmd8clientonedrive_setup_standalone_fsmanager_fsmanagerimpl.cpp
push esi
call fcn.0048259a
jmp 0x489b0c
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4896e1
add eax, 0xc
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne byte [ebp - 0x51]
test eax, eax
je 0x489704
cmp dword [ebp + 0x14], 0
je 0x489704
mov esi, 0x80070050
push 0x515
jmp 0x4896c7
sub ebx, 0xffffff80
push ebx
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x68], 1
mov edi, dword [ebp - 0x50]
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 5
push eax
lea ecx, [edi + 8]
call fcn.0048b69b
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x18]
push eax
lea ecx, [edi + 8]
call fcn.0048b69b
push ebx
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp - 0x58]
mov byte [ebp - 0x68], 0
test edi, edi
je 0x489758
cmp byte [edi + 0x44], 0
jne 0x4897cb
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x489763
xor ecx, ecx
jmp 0x489766
lea ecx, [eax + 0xc]
mov edx, dword [ebp - 0x50]
push ecx
push edx
mov eax, dword [edx]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x5b664c]
call esi
mov esi, eax
test esi, esi
jns 0x489790
je 0x489ada
push 0x522
jmp 0x489670
test edi, edi
jne 0x4897de
push ebx
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x68], 1
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 6
push eax
lea ecx, [ecx + 8]
call fcn.0048b69b
push ebx
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [ebp - 0x58]
mov byte [ebp - 0x68], 0
test edi, edi
jne 0x4897de
mov esi, 0x80040b02
push 0x52d
jmp 0x4896c7
cmp edi, dword [ebp - 0x60]
je 0x4899fb
cmp dword [ebp + 8], 0
jne 0x489804
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4897f7
add eax, 0xc
mov ebx, dword [ebp - 0x50]
mov ecx, ebx
push eax
call fcn.0048c5dc
jmp 0x489807
mov ebx, dword [ebp - 0x50]
mov esi, dword [ebp + 0x14]
test esi, esi
jne 0x489854
cmp byte [ebp - 0x51], 0
je 0x489854
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x48981e
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x489854
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, esi
shr eax, 0x1f
test al, al
je 0x489ada
push 0x549
jmp 0x489670
cmp dword [ebp + 8], 0
mov eax, dword [ebp - 0x18]
jne 0x4898ae
test eax, eax
jne 0x489865
xor ecx, ecx
jmp 0x489868
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x489872
add eax, 0xc
push esi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4899f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, esi
shr eax, 0x1f
test al, al
je 0x489ada
push 0x55b
jmp 0x489670
test eax, eax
jne 0x4898b6
xor ecx, ecx
jmp 0x4898b9
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4898c3
add eax, 0xc
push 2
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x4899f4
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x4898e0
xor ecx, ecx
jmp 0x4898e3
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4898ed
add eax, 0xc
push esi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x489925
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, esi
shr eax, 0x1f
test al, al
je 0x489ada
push 0x575
jmp 0x489670
test edi, edi
je 0x489946
mov ecx, edi
call fcn.0048daa9
mov esi, eax
test esi, esi
jns 0x489946
je 0x489ada
push 0x57a
jmp 0x489670
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x489950
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4899f4
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x489969
add eax, 0xc
push eax
lea ecx, [ebp - 0x8c]
call fcn.004094f1
and dword [ebp - 0x30], 0
lea eax, [ebp - 0x8c]
and dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x40]
push eax
mov byte [ebp - 4], 7
call fcn.00409706
mov edi, dword [ebp - 0x48]
test edi, edi
mov dword [ebp - 0x28], reloc.WS2_32.dll_accept
setne byte [ebp - 0x24]
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 9
call fcn.0040aa69
mov eax, dword [ebx]
lea ecx, [ebp - 0x40]
push ecx
push ebx
mov esi, dword [eax + 0x60]
mov ecx, esi
call dword [0x5b664c]
call esi
mov esi, eax
test esi, esi
jns 0x4899ec
je 0x4899db
push 0x57f
push str.d:dbs_shodct1116_102044cmd8clientonedrive_setup_standalone_fsmanager_fsmanagerimpl.cpp
push esi
call fcn.0048259a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.0040aa69
jmp 0x489add
lea ecx, [ebp - 0x40]
call fcn.0040aa69
xor esi, esi
jmp 0x489b0c
cmp dword [ebp + 8], 0
je 0x489a6e
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x489a0b
add eax, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x489a6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x489a48
cmp eax, 0x20
je 0x489a48
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
jns 0x489a6e
je 0x489ada
push 0x5a0
jmp 0x489670
test edi, edi
jne 0x489a4d
int3
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.0048d275
mov esi, eax
test esi, esi
jns 0x489a6e
je 0x489ada
push 0x59b
jmp 0x489670
mov bl, 1
jmp 0x489a71
mov bl, byte [ebp - 0x41]
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x489a8f
call fcn.0048dcf0
mov esi, eax
test esi, esi
jns 0x489a8f
je 0x489ada
push 0x5ac
jmp 0x489670
cmp edi, dword [ebp - 0x60]
je 0x489ab0
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x18]
push edi
push eax
call fcn.00489077
mov esi, eax
test esi, esi
jns 0x489ab0
je 0x489ad9
push 0x5c1
jmp 0x489ace
test bl, bl
je 0x489ada
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x14]
push edi
push eax
call fcn.0048bd96
mov esi, eax
test esi, esi
jns 0x489b0c
je 0x489ad9
push 0x5c7
push str.d:dbs_shodct1116_102044cmd8clientonedrive_setup_standalone_fsmanager_fsmanagerimpl.cpp
push esi
call fcn.0048259a
int3
mov edi, dword [ebp - 0x48]
test esi, esi
jns 0x489b0c
cmp byte [ebp - 0x49], 0
jne 0x489b0c
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x489af3
call fcn.0048dcf0
mov ecx, dword [ebp - 0x50]
push edi
push 1
push dword [ebp + 0x14]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp + 8]
call fcn.004895e2
mov esi, eax
mov edi, vtable.ClassPtr_class_FSItem_.0
mov byte [ebp - 4], 0xa
push 0
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], edi
call fcn.00489395
push 0
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x5c], edi
call fcn.00489395
xor ecx, ecx
lea eax, [ebp - 0x18]
xchg dword [eax], ecx
test ecx, ecx
je 0x489b43
call fcn.00415424
xor ecx, ecx
lea eax, [ebp - 0x14]
xchg dword [eax], ecx
test ecx, ecx
je 0x489b53
call fcn.00415424
push 0
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x20], vtable.ClassPtr_class_KtmTransaction_.0
call fcn.00489395
mov eax, esi
call fcn.00462c80
ret 0x18