Function at 0x401cec
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4cc
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push ebx
call fcn.004047d8
pop ecx
push eax
push 0x9c42
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 1
lea eax, [ebp - 0x138]
push ebx
push eax
call fcn.00402335
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0xc
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test eax, eax
je 0x402087
push 0x392
lea eax, [ebp - 0x4cc]
push 0
push eax
call fcn.004029cb
lea eax, [ebp - 0x4cc]
push eax
lea eax, [ebp - 0x138]
push 0xe4
push eax
call fcn.00403e01
add esp, 0x18
test eax, eax
je 0x401d9a
push 0x410ca0
call edi
push str._DBG_
push 7
call fcn.00402800
lea eax, [ebp - 0x4cc]
push eax
push ebx
push str.DEC_DATA___s___s_r_n
push 8
call fcn.00402800
add esp, 0x18
push 0x410ca0
call esi
push 0x20
lea eax, [ebp - 0x88]
push eax
push 0
call fcn.004052cb
add esp, 0xc
cmp dword [ebp - 0x60], eax
jne 0x402087
and dword [ebp - 8], 0
and dword [ebp - 0xc], 0
push 0x100034
call fcn.00402915
mov dword [ebp - 4], eax
pop ecx
test eax, eax
je 0x40207b
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
cmp dword [0x410c8c], 0
je 0x401e2a
lea eax, [ebp - 0x10]
push eax
push 0x58
lea eax, [ebp - 0x138]
push eax
push 0x410c40
call fcn.0040556a
add esp, 0x10
test eax, eax
je 0x401f57
cmp dword [ebp - 0x10], 0x20
jne 0x401f57
push 8
pop ecx
mov esi, eax
mov edi, 0x410c60
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.00402962
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 4]
pop ecx
add eax, 4
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x88]
push eax
push 0x410c60
call fcn.00405411
mov ecx, dword [ebp - 4]
xor esi, esi
mov eax, dword [ebp - 0x68]
add ecx, 0x24
add esp, 0xc
mov dword [ebp - 0x14], ecx
mov dword [ecx], eax
mov eax, dword [ebp - 0x64]
mov dword [ecx + 4], eax
cmp dword [0x410ab4], esi
je 0x401ecb
push ebx
call fcn.00404332
lea eax, [eax*2 + 0x40]
push eax
call fcn.00402915
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x401ecb
push ebx
push esi
call fcn.00404289
push str..BACKUP
push esi
call fcn.00404182
add esp, 0x10
push 0x410ca0
call edi
push str._DBG_
push 7
call fcn.00402800
push esi
push str.__create:_s_r_n
push 8
call fcn.00402800
add esp, 0x14
push 0x410ca0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x40
push 0x100
push dword [ebp - 0x10]
lea eax, [ebp - 0x54]
push eax
call 0x40614a
push dword [ebp - 0x14]
lea eax, [ebp - 0x54]
push eax
call 0x40612c
push 4
lea eax, [ebp - 0x58]
push eax
push eax
lea eax, [ebp - 0x54]
push eax
call 0x40607d
add esp, 0x28
cmp dword [ebp - 0x58], 0
je 0x401fa7
push 0x410ca0
call edi
push str._ERR_
push 0xc
call fcn.00402800
push str.invalid__pc_sk__key__r_n
push 4
call fcn.00402800
push 0x1c8
push str.file_decrypt_callback
push str.D:1_rwdec_srcdec.c
push str._______S:_S:_lu_r_n
push 4
call fcn.00402800
add esp, 0x24
push 0x410ca0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
jmp 0x401fc6
mov ebx, 0x410ca0
push ebx
call edi
push str._ERR_
push 0xc
call fcn.00402800
push str.invalid__master_sk__key__r_n
push 4
call fcn.00402800
push 0x1a2
push str.file_decrypt_callback
push str.D:1_rwdec_srcdec.c
push str._______S:_S:_lu_r_n
push 4
call fcn.00402800
add esp, 0x24
push ebx
call esi
mov eax, dword [ebp - 4]
push eax
call fcn.00402962
pop ecx
jmp 0x4020cc
push dword [ebp - 0x5c]
lea eax, [ebp - 0x54]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
push eax
push dword [ebp - 4]
call fcn.00401b4e
add esp, 0x18
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
test esi, esi
je 0x402048
mov ecx, eax
or ecx, edx
je 0x402004
mov ebx, 0x410ca0
push ebx
call edi
push str._DBG_
push 7
call fcn.00402800
push esi
push str.__delete:_s_r_n
push 8
call fcn.00402800
add esp, 0x14
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x402041
push 0x410ca0
call edi
push str._DBG_
push 7
call fcn.00402800
push ebx
push str._restore:__s_r_n
push 8
call fcn.00402800
add esp, 0x14
push 0x410ca0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push esi
call fcn.00402962
pop ecx
push dword [ebp - 4]
call fcn.00402962
mov esi, dword [ebp - 8]
mov eax, esi
mov edi, dword [ebp - 0xc]
or eax, edi
pop ecx
je 0x402081
mov eax, dword [0x410aa8]
push 0
inc eax
push eax
push 0x9c41
push dword [ebp + 8]
mov dword [0x410aa8], eax
call dword [sym.imp.USER32.dll_SetDlgItemInt]
jmp 0x402081
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
mov eax, esi
mov edx, edi
jmp 0x4020d0
push 0x410ca0
call edi
push str._ERR_
push 0xc
call fcn.00402800
push ebx
push str.read__struct__DEC_DATA_:__s_r_n
push 4
call fcn.00402800
push 0x1e8
push str.file_decrypt_callback
push str.D:1_rwdec_srcdec.c
push str._______S:_S:_lu_r_n
push 4
call fcn.00402800
add esp, 0x28
push 0x410ca0
call esi
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret