Function at 0x405260
Capabilities:
Copy file
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x42de97
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x650
push ebx
mov ebx, dword [esp + 0x670]
push ebp
push esi
mov ebp, ecx
push edi
push 0x43fc78
mov ecx, ebx
call fcn.00422b96
push 0x43fc78
lea ecx, [esp + 0x1c]
call fcn.00422a7b
xor edx, edx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x14d]
mov byte [esp + 0x14c], dl
mov byte [esp + 0x48], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x49]
mov word [esp + 0x458], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x45a]
mov word [esp + 0x250], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x252]
mov dword [esp + 0x668], edx
mov edx, dword [esp + 0x678]
lea esi, [esp + 0x14c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, dword [edx]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x14], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 1
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
push ecx
mov ecx, edx
call fcn.00420672
mov eax, dword [eax]
push 0x43b0d0
push eax
call fcn.00412c4d
add esp, 8
lea ecx, [esp + 0x14]
test eax, eax
setne byte [esp + 0x13]
call fcn.00422a0d
mov al, byte [esp + 0x13]
test al, al
je 0x4053a7
mov edi, 0x43b0d0
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x43b468
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x14c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x48]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x43b464
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, dword [ebp + 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + 0x674]
lea edi, [esp + 0x28]
mov byte [esp + 0x48], cl
mov ecx, 7
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [esp + 0x28], edx
lea edx, [esp + 0x28]
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x48]
push edx
mov dword [esp + 0x30], 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov word [esp + 0x3c], 0x614
call dword [sym.imp.SHELL32.dll_SHFileOperationA]
cmp eax, 0x7d
jg 0x40559f
je 0x405598
cmp eax, 0x7c
ja case.0x40546a.4
xor ecx, ecx
mov cl, byte [eax + 0x40567c]
jmp dword [ecx*4 + 0x405668]
mov eax, dword [esp + 0x680]
test eax, eax
jne 0x40549a
lea ecx, [esp + 0x18]
mov dword [esp + 0x668], 0xffffffff
call fcn.00422a0d
mov eax, 1
jmp 0x40564b
mov esi, dword [esp + 0x670]
mov edx, dword [ebp + 0x1c]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0xfffffffffffffffe
push esi
push 0x5ff
push edx
mov byte [esp + 0x5a], 0
call edi
push 0x43fc78
lea ecx, [esp + 0x24]
call fcn.00422a7b
push 0x43b454
push eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x670], 1
push eax
call fcn.00422ca2
push eax
lea ecx, [ebp + esi*4 + 0x47c]
mov byte [esp + 0x66c], 2
call fcn.00422b46
lea ecx, [esp + 0x14]
mov byte [esp + 0x668], 1
call fcn.00422a0d
lea ecx, [esp + 0x20]
mov byte [esp + 0x668], 0
call fcn.00422a0d
mov ecx, dword [ebp + 0x1c]
push 0xffffffffffffffff
push esi
push 0x5ff
push ecx
call edi
mov edx, dword [esp + 0x678]
lea ecx, [esp + 0x458]
push 0x104
push ecx
mov eax, dword [edx]
mov ecx, ebp
push eax
call fcn.00406180
lea edx, [esp + 0x250]
push 0x104
lea eax, [esp + 0x4c]
push edx
push eax
mov ecx, ebp
call fcn.00406180
lea ecx, [esp + 0x250]
push ebx
lea edx, [esp + 0x45c]
push ecx
push edx
mov ecx, ebp
call fcn.00405d90
test eax, eax
jne 0x40547c
push 0x43b444
jmp 0x4055da
push 0x43b42c
jmp 0x4055da
push 0x43b41c
jmp 0x4055da
push 0x43b408
jmp 0x4055da
push 0x43b3f0
jmp 0x4055da
cmp eax, 0x85
jg 0x4055c7
je 0x4055c0
sub eax, 0x7e
je 0x4055b9
sub eax, 2
jne case.0x40546a.4
push 0x43b3e0
jmp 0x4055da
push 0x43b3d0
jmp 0x4055da
push 0x43b3c0
jmp 0x4055da
cmp eax, 0x402
je 0x4055d5
push 0x43b3b0
jmp 0x4055da
push 0x43b3a0
mov ecx, ebx
call fcn.00422b96
push 0x43fc78
lea ecx, [esp + 0x20]
call fcn.00422a7b
push ebx
push eax
lea eax, [esp + 0x2c]
mov byte [esp + 0x670], 3
push eax
call fcn.00422c3c
push eax
mov ecx, ebx
mov byte [esp + 0x66c], 4
call fcn.00422b46
lea ecx, [esp + 0x24]
mov byte [esp + 0x668], 3
call fcn.00422a0d
lea ecx, [esp + 0x1c]
mov byte [esp + 0x668], 0
call fcn.00422a0d
lea ecx, [esp + 0x18]
mov dword [esp + 0x668], 0xffffffff
call fcn.00422a0d
xor eax, eax
mov ecx, dword [esp + 0x660]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x65c
ret 0x14