Function at 0x40359a
Capabilities:
Copy file
Create directory
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xdc
mov dword [esp], 0x4db684
call fcn.00419690
mov dword [esp], 0x4db674
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov edx, eax
lea eax, [eax + 0xa]
mov dword [ebp - 0xcc], eax
jne 0x4035eb
xor ecx, ecx
mov esi, 0x537942
mov edi, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x403642
lea ecx, [edx + 0xa]
mov esi, 0xffffff8a
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp edi, ebx
jne 0x403608
inc eax
jmp 0x403634
lea edi, [eax + 2]
cmp edi, ebx
jne 0x403614
add eax, 2
jmp 0x403634
cmp eax, ebx
jne 0x40361e
mov eax, esi
xor byte [ecx], al
jmp 0x40363a
lea edi, [eax + 4]
cmp ebx, edi
jne 0x40362a
add eax, 3
jmp 0x403634
lea edi, [eax + 5]
cmp ebx, edi
jne 0x40363a
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x4035f9
inc esi
inc ecx
mov eax, esi
cmp al, 0x96
jne 0x4035f9
mov eax, dword [ebp - 0xcc]
mov byte [edx + 9], 1
lea ecx, [ebp - 0x30]
lea esi, [ebp - 0x30]
mov dword [esp], eax
call fcn.00401616
push eax
lea eax, [ebp - 0xc0]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00401f03
mov ecx, esi
call fcn.004b03d0
mov dword [esp], 0x4db6a4
call fcn.00419690
mov dword [esp], 0x4db694
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov edx, eax
jne 0x4036b3
xor eax, eax
mov esi, 0x53792a
mov ecx, 3
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea eax, [edx + 0xa]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x40370a
lea ecx, [edx + 0xa]
mov esi, 0xffffff8b
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x4036d0
inc eax
jmp 0x4036fc
lea edi, [eax + 2]
cmp ebx, edi
jne 0x4036dc
add eax, 2
jmp 0x4036fc
cmp ebx, eax
jne 0x4036e6
mov eax, esi
xor byte [ecx], al
jmp 0x403702
lea edi, [eax + 4]
cmp ebx, edi
jne 0x4036f2
add eax, 3
jmp 0x4036fc
lea edi, [eax + 5]
cmp ebx, edi
jne 0x403702
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x4036c1
inc esi
inc ecx
mov eax, esi
cmp al, 0x97
jne 0x4036c1
mov byte [edx + 9], 1
add edx, 0xa
lea ecx, [ebp - 0x30]
mov dword [esp], edx
call fcn.00401616
push eax
lea esi, [ebp - 0x30]
lea eax, [ebp - 0xa8]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00401f03
mov ecx, esi
call fcn.004b03d0
mov dword [esp], 0x4db6e4
call fcn.00419690
mov dword [esp], 0x4db6d4
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov edx, eax
jne 0x403779
xor edi, edi
lea eax, [eax + 0xa]
mov esi, 0x5378fe
mov ecx, 0xa
mov dword [eax - 0xa], edi
mov dword [eax - 6], edi
mov dword [eax - 2], edi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x4037d0
lea ecx, [edx + 0xa]
mov esi, 0xffffff8b
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x403796
inc eax
jmp 0x4037c2
lea edi, [eax + 2]
cmp ebx, edi
jne 0x4037a2
add eax, 2
jmp 0x4037c2
cmp ebx, eax
jne 0x4037ac
mov eax, esi
xor byte [ecx], al
jmp 0x4037c8
lea edi, [eax + 4]
cmp ebx, edi
jne 0x4037b8
add eax, 3
jmp 0x4037c2
lea edi, [eax + 5]
cmp ebx, edi
jne 0x4037c8
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x403787
inc esi
inc ecx
mov eax, esi
cmp al, 0x95
jne 0x403787
lea eax, [edx + 0xa]
mov byte [edx + 9], 1
mov dword [ebp - 0xcc], eax
mov dword [esp], 0x4db6c4
call fcn.00419690
mov dword [esp], 0x4db6b4
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov edx, eax
jne 0x40381d
xor esi, esi
lea eax, [eax + 0xa]
mov ecx, 0xe
mov dword [eax - 0xa], esi
mov dword [eax - 6], esi
mov dword [eax - 2], esi
mov esi, 0x537912
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x403874
lea ecx, [edx + 0xa]
mov esi, 0xffffff8b
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x40383a
inc eax
jmp 0x403866
lea edi, [eax + 2]
cmp ebx, edi
jne 0x403846
add eax, 2
jmp 0x403866
cmp ebx, eax
jne 0x403850
mov eax, esi
xor byte [ecx], al
jmp 0x40386c
lea edi, [eax + 4]
cmp ebx, edi
jne 0x40385c
add eax, 3
jmp 0x403866
lea edi, [eax + 5]
cmp ebx, edi
jne 0x40386c
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x40382b
inc esi
inc ecx
mov eax, esi
cmp al, 0x99
jne 0x40382b
mov byte [edx + 9], 1
lea esi, [ebp - 0x30]
add edx, 0xa
lea eax, [ebp - 0xc0]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.004ced10
mov eax, dword [ebp - 0xcc]
mov ecx, esi
mov dword [esp], eax
call fcn.004b1830
push edx
lea ecx, [ebp - 0x90]
mov dword [esp], eax
call fcn.004b3660
push ecx
mov ecx, esi
call fcn.004b03d0
mov dword [esp], 0x4db724
call fcn.00419690
mov dword [esp], 0x4db714
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov ecx, eax
lea edx, [eax + 0xa]
jne 0x4038f7
xor edi, edi
mov dword [eax + 8], edi
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 0xa], 0xeaf6e8a2
mov byte [edx + 4], 0x90
mov byte [ebx], 1
cmp byte [ecx + 9], 0
mov esi, 0xffffff8c
jne 0x40394b
mov eax, dword [ecx + 4]
mov ebx, dword [ecx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x403911
inc eax
jmp 0x40393d
lea edi, [eax + 2]
cmp ebx, edi
jne 0x40391d
add eax, 2
jmp 0x40393d
cmp ebx, eax
jne 0x403927
mov eax, esi
xor byte [edx], al
jmp 0x403943
lea edi, [eax + 4]
cmp ebx, edi
jne 0x403933
add eax, 3
jmp 0x40393d
lea edi, [eax + 5]
cmp ebx, edi
jne 0x403943
add eax, 4
xor byte [edx], al
inc dword [ecx]
jmp 0x403902
inc esi
inc edx
mov eax, esi
cmp al, 0x91
jne 0x403902
lea eax, [ecx + 0xa]
mov byte [ecx + 9], 1
mov dword [ebp - 0xcc], eax
mov dword [esp], 0x4db704
call fcn.00419690
mov dword [esp], 0x4db6f4
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov edx, eax
jne 0x403998
xor esi, esi
lea eax, [eax + 0xa]
mov ecx, 0xa
mov dword [eax - 0xa], esi
mov dword [eax - 6], esi
mov dword [eax - 2], esi
mov esi, 0x5378ea
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x4039ef
lea ecx, [edx + 0xa]
mov esi, 0xffffff8c
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x4039b5
inc eax
jmp 0x4039e1
lea edi, [eax + 2]
cmp ebx, edi
jne 0x4039c1
add eax, 2
jmp 0x4039e1
cmp ebx, eax
jne 0x4039cb
mov eax, esi
xor byte [ecx], al
jmp 0x4039e7
lea edi, [eax + 4]
cmp ebx, edi
jne 0x4039d7
add eax, 3
jmp 0x4039e1
lea edi, [eax + 5]
cmp ebx, edi
jne 0x4039e7
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x4039a6
inc esi
inc ecx
mov eax, esi
cmp al, 0x96
jne 0x4039a6
mov byte [edx + 9], 1
add edx, 0xa
lea esi, [ebp - 0x30]
mov dword [esp], edx
mov ecx, esi
call fcn.00401616
push ebx
mov eax, dword [ebp - 0xcc]
mov ecx, esi
mov dword [esp], eax
call fcn.004b1830
push edx
lea ecx, [ebp - 0x78]
lea ebx, [ebp - 0x90]
mov dword [esp], eax
call fcn.004b3660
push ecx
mov ecx, esi
call fcn.004b03d0
mov dword [esp + 8], 0x4de144
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.004ced10
lea eax, [ebp - 0x78]
mov ecx, esi
mov dword [esp], eax
call fcn.004b19b0
push edi
lea ecx, [ebp - 0x60]
mov dword [esp], eax
call fcn.004b3660
mov ecx, esi
push eax
call fcn.004b03d0
lea eax, [ebp - 0x48]
mov dword [esp], eax
call fcn.00401fec
xor ecx, ecx
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push edx
push edx
test eax, eax
je 0x403ab1
mov eax, dword [ebp - 0x60]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
xor eax, eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
jmp 0x403ac4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403bd2
jmp 0x403a89
sub esp, 0xc
test eax, eax
je 0x403bd2
mov dword [esp + 4], 6
mov eax, dword [ebp - 0x90]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push esi
push esi
mov dword [esp], ebx
call fcn.00403416
mov dword [esp], 0x4db744
call fcn.00419690
mov dword [esp], 0x4db734
mov ebx, eax
call fcn.00419690
cmp byte [ebx], 0
mov edx, eax
jne 0x403b30
xor ecx, ecx
lea eax, [eax + 0xa]
mov esi, 0x5378d6
mov dword [eax - 0xa], ecx
mov dword [eax - 6], ecx
mov dword [eax - 2], ecx
mov ecx, 0xa
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x403b87
lea ecx, [edx + 0xa]
mov esi, 0xffffff8d
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x403b4d
inc eax
jmp 0x403b79
lea edi, [eax + 2]
cmp ebx, edi
jne 0x403b59
add eax, 2
jmp 0x403b79
cmp ebx, eax
jne 0x403b63
mov eax, esi
xor byte [ecx], al
jmp 0x403b7f
lea edi, [eax + 4]
cmp ebx, edi
jne 0x403b6f
add eax, 3
jmp 0x403b79
lea edi, [eax + 5]
cmp ebx, edi
jne 0x403b7f
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x403b3e
inc esi
inc ecx
mov eax, esi
cmp al, 0x97
jne 0x403b3e
mov byte [edx + 9], 1
add edx, 0xa
lea esi, [ebp - 0x30]
mov dword [esp], edx
mov ecx, esi
call fcn.00401616
push eax
lea eax, [ebp - 0x60]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.00402d74
mov ecx, esi
call fcn.004b03d0
lea ecx, [ebp - 0x48]
call fcn.004b03d0
lea ecx, [ebp - 0x60]
call fcn.004b03d0
lea ecx, [ebp - 0x78]
call fcn.004b03d0
lea ecx, [ebp - 0x90]
jmp 0x403bec
lea ecx, [ebp - 0x48]
call fcn.004b03d0
lea ecx, [ebp - 0x60]
call fcn.004b03d0
lea ecx, [ebp - 0x78]
call fcn.004b03d0
mov ecx, ebx
call fcn.004b03d0
lea ecx, [ebp - 0xa8]
call fcn.004b03d0
lea ecx, [ebp - 0xc0]
call fcn.004b03d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret