Function at 0x4095f0
Capabilities:
Copy file
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x4eb8a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
mov ebx, dword [esp + 0x4c]
push ebp
mov ebp, ecx
push esi
push edi
mov ecx, ebx
call fcn.004503d0
push 0x52cb30
lea ecx, [esp + 0x18]
call fcn.0044fec0
push 0x52cb30
lea ecx, [esp + 0x14]
mov dword [esp + 0x50], 0
call fcn.0044fec0
push 0x52cb30
lea ecx, [esp + 0x20]
mov byte [esp + 0x50], 1
call fcn.0044fec0
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
mov ecx, ebp
mov byte [esp + 0x58], 2
call fcn.00409e00
mov esi, eax
test esi, esi
jne 0x4096b9
mov eax, dword [esp + 0x54]
push 0x6f
push ebx
mov dword [eax], esi
call fcn.00453600
add esp, 8
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 1
call fcn.00450660
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c], 0
call fcn.00450660
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00450660
mov eax, 1
jmp 0x409baa
mov ecx, dword [ebp + 0x70]
push ecx
push 0x7e
push str._CSDViewerApp::OpenSafeDoc__Line:_d_Cmd__s_
push str.safedisk
push 4
push 0x52e6a4
call fcn.0042b6d0
mov edx, dword [ebp + 0x70]
add esp, 0x18
lea ecx, [esp + 0x18]
push edx
call fcn.0044fec0
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 3
call fcn.00451990
push str.open_safe_disk
lea ecx, [esp + 0x1c]
call fcn.00451840
cmp eax, 0xffffffff
je 0x409710
mov dword [ebp + 0xc0], 1
push str.copy_safe_disk
lea ecx, [esp + 0x1c]
call fcn.00451840
cmp eax, 0xffffffff
je 0x4098c9
push 0x8d
push str._CSDViewerApp::OpenSafeDoc__Line:_d_Find_Copy_Safe_Disk
push str.safedisk
push 4
push 0x52e6a4
call fcn.0042b6d0
add esp, 0x14
lea ecx, [esp + 0x54]
push 0x52cb30
call fcn.0044fec0
push 0x52cb30
lea ecx, [esp + 0x5c]
mov byte [esp + 0x50], 4
call fcn.0044fec0
lea eax, [esp + 0x58]
lea ecx, [esp + 0x54]
push eax
push ecx
mov ecx, ebp
mov byte [esp + 0x54], 5
call fcn.0040bc60
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
push edx
push eax
push 0x96
push str._CSDViewerApp::OpenSafeDoc__Line:_d__Copy__s___s_
push str.safedisk
push 4
push 0x52e6a4
call fcn.0042b6d0
mov ecx, dword [esp + 0x70]
mov ebx, dword [ecx - 8]
lea edi, [ebx + ebx + 2]
push edi
call fcn.004d2462
mov esi, eax
add esp, 0x20
test esi, esi
je 0x40984d
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push ebx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x58]
push eax
push esi
call fcn.004374c4
add esp, 0xc
mov ecx, ebp
push ebx
push esi
call fcn.0040bc10
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x28]
lea edx, [esp + 0x24]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x58]
push edx
stosw word es:[edi], ax
mov dword [esp + 0x28], 0
mov word [esp + 0x38], 0x208
mov dword [esp + 0x2c], 2
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ecx
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
je 0x40986b
push eax
push 0xb1
push str._CSDViewerApp::OpenSafeDoc__Line:_d_SHFileOperation_Fail._Ret__d_
push str.safedisk
push 4
push 0x52e6a4
call fcn.0042b6d0
add esp, 0x18
jmp 0x40986b
push 0x9c
push str._CSDViewerApp::OpenSafeDoc__Line:_d_new_FileGroup_Fail.
push str.safedisk
push 4
push 0x52e6a4
call fcn.0042b6d0
add esp, 0x14
lea ecx, [esp + 0x58]
mov byte [esp + 0x4c], 4
call fcn.00450660
lea ecx, [esp + 0x54]
mov byte [esp + 0x4c], 3
call fcn.00450660
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 2
call fcn.00450660
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 1
call fcn.00450660
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c], 0
call fcn.00450660
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00450660
xor eax, eax
jmp 0x409baa
mov ecx, 0x52db20
call fcn.00407150
mov eax, dword [esp + 0x54]
mov ecx, 0x52db20
mov dword [eax], 1
call fcn.004072a0
test eax, eax
jne 0x4098fd
mov ecx, 0x52db20
call fcn.004073a0
test eax, eax
je 0x409ac2
mov ecx, 0x52db20
call fcn.004075c0
test eax, eax
je 0x409ad7
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00401b30
mov ecx, dword [esp + 0x14]
mov edi, eax
add esp, 4
mov eax, dword [ecx - 8]
test eax, eax
je 0x409976
mov eax, dword [ebp + 0xc0]
test eax, eax
jne 0x409976
push ecx
call fcn.00401af0
add esp, 4
test eax, eax
jne 0x409972
test edi, edi
jne 0x409972
mov edx, dword [esp + 0x10]
mov ecx, 0x52db20
push edx
call fcn.004076b0
test eax, eax
je 0x409ae9
mov eax, dword [esp + 0x10]
mov ecx, 0x52db20
push eax
call fcn.00407a10
test eax, eax
je 0x409af8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [eax - 8]
test edx, edx
jne 0x4099c3
xor eax, eax
cmp esi, 2
sete al
push eax
push ecx
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.0040a260
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 6
call fcn.004507f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c], 3
call fcn.00450660
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x409b07
push eax
mov ecx, ebp
call fcn.0040aa60
test eax, eax
je 0x409b23
mov ecx, 0x52db20
call fcn.00407f60
mov ebx, eax
test ebx, ebx
jne 0x4099f5
mov ecx, 0x52db20
call fcn.00407fa0
test eax, eax
je 0x409b34
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
xor edi, edi
mov ecx, 0x52db20
call fcn.00407f60
test eax, eax
je 0x409a57
mov edx, dword [esp + 0x14]
mov ecx, 0x52db20
push edx
call fcn.00409200
test eax, eax
jne 0x409a90
mov ecx, 0x52db20
call fcn.004075d0
mov esi, eax
push esi
push 0x129
push str._CSDViewerApp::OpenSafeDoc__Line:_d__Ret__d_
push str.safedisk
push 4
push 0x52e6a4
call fcn.0042b6d0
add esp, 0x18
cmp esi, 3
je 0x409a90
cmp esi, 2
je 0x409a7d
test ebx, ebx
jne 0x409a64
push 0x3e8
call ebp
inc edi
cmp edi, 0x1e
jl 0x4099fd
mov ecx, dword [esp + 0x58]
push 0x71
push ecx
mov esi, 0xd
call fcn.00453600
add esp, 8
jmp 0x409b63
mov eax, dword [esp + 0x14]
mov ecx, 0x52db20
push eax
call fcn.004091d0
test eax, eax
je 0x409a64
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
mov ecx, 0x52db20
call fcn.004088c0
test eax, eax
je 0x409b4a
mov ecx, dword [esp + 0x54]
xor esi, esi
mov dword [ecx], 0
jmp 0x409b63
push 0x70
push ebx
mov esi, 2
call fcn.00453600
add esp, 8
jmp 0x409b63
push 0x71
push ebx
mov esi, 3
call fcn.00453600
add esp, 8
jmp 0x409b63
mov edx, dword [esp + 0x10]
mov esi, 5
push edx
push 0x73
push ebx
jmp 0x409b5b
mov eax, dword [esp + 0x10]
mov esi, 6
push eax
push 0x78
push ebx
jmp 0x409b5b
mov ecx, dword [esp + 0x54]
push 0x74
push ebx
mov esi, 7
mov dword [ecx], 0
call fcn.00453600
add esp, 8
jmp 0x409b63
mov edx, dword [esp + 0x54]
mov esi, 8
mov dword [edx], 0
jmp 0x409b63
mov eax, dword [esp + 0x58]
push 0x75
push eax
mov esi, 9
call fcn.00453600
add esp, 8
jmp 0x409b63
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
push edx
push 0x77
mov esi, 0xb
push eax
call fcn.00453600
add esp, 0xc
mov ecx, 0x52db20
call fcn.00407180
lea ecx, [esp + 0x18]
mov byte [esp + 0x4c], 2
call fcn.00450660
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4c], 1
call fcn.00450660
lea ecx, [esp + 0x10]
mov byte [esp + 0x4c], 0
call fcn.00450660
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], 0xffffffff
call fcn.00450660
mov eax, esi
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x40
ret 8