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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
lea rcx, [0x004ac160]
call fcn.00412ff0
lea rcx, [0x004ac140]
mov rbx, rax
call fcn.00412ff0
cmp byte [rbx], 0
mov r8, rax
lea rdx, [rax + 0xa]
jne 0x4034b1
lea rdi, [rsp + 0xf0]
mov ecx, 6
mov qword [rax], 0
lea rsi, [0x004b0450]
mov word [rax + 8], 0
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rdi, [rsp + 0x110]
mov ecx, 6
lea rsi, [rsp + 0xf0]
rep movsd dword [rdi], dword [rsi]
mov ecx, 3
mov rdi, rdx
rep stosd dword [rdi], eax
lea r9, [rsp + 0x110]
mov eax, 0xa
mov cl, byte [r9 + rax]
mov byte [r8 + rax], cl
inc rax
cmp rax, 0x16
jne 0x40349d
mov byte [rbx], 1
cmp byte [r8 + 9], 0
mov rcx, rdx
mov r10b, 0x95
jne 0x403517
mov eax, dword [r8 + 4]
mov r9d, dword [r8]
lea r11d, [rax + 1]
cmp r11d, r9d
jne 0x4034d2
inc eax
jmp 0x403504
lea r11d, [rax + 2]
cmp r11d, r9d
jne 0x4034e0
add eax, 2
jmp 0x403504
cmp eax, r9d
jne 0x4034ea
xor byte [rcx], r10b
jmp 0x40350b
lea r11d, [rax + 4]
cmp r9d, r11d
jne 0x4034f8
add eax, 3
jmp 0x403504
lea r11d, [rax + 5]
cmp r9d, r11d
jne 0x40350b
add eax, 4
xor byte [rcx], al
inc dword [r8]
jmp 0x4034be
inc r10d
inc rcx
cmp r10b, 0xa1
jne 0x4034be
lea rbx, [rsp + 0x110]
mov byte [r8 + 9], 1
mov rcx, rbx
call fcn.004023f2
lea rax, [rsp + 0x50]
mov rdx, rbx
mov rcx, rax
mov qword [rsp + 0x20], rax
call fcn.004024db
mov rcx, rbx
call fcn.00495540
lea rcx, [0x004ac1a0]
call fcn.00412ff0
lea rcx, [0x004ac180]
mov rbp, rax
call fcn.00412ff0
cmp byte [rbp], 0
mov r8, rax
lea rdx, [rax + 0xa]
jne 0x4035cb
lea rdi, [rsp + 0xf0]
mov ecx, 6
mov qword [rax], 0
lea rsi, [0x004b0430]
mov word [rax + 8], 0
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rsi, [rsp + 0xf0]
mov ecx, 6
mov rdi, rbx
rep movsd dword [rdi], dword [rsi]
mov ecx, 3
mov rdi, rdx
rep stosd dword [rdi], eax
mov eax, 0xa
mov cl, byte [rbx + rax]
mov byte [r8 + rax], cl
inc rax
cmp rax, 0x16
jne 0x4035b7
mov byte [rbp], 1
cmp byte [r8 + 9], 0
mov rcx, rdx
mov r10b, 0x96
jne 0x403631
mov eax, dword [r8 + 4]
mov r9d, dword [r8]
lea r11d, [rax + 1]
cmp r9d, r11d
jne 0x4035ec
inc eax
jmp 0x40361e
lea r11d, [rax + 2]
cmp r9d, r11d
jne 0x4035fa
add eax, 2
jmp 0x40361e
cmp r9d, eax
jne 0x403604
xor byte [rcx], r10b
jmp 0x403625
lea r11d, [rax + 4]
cmp r9d, r11d
jne 0x403612
add eax, 3
jmp 0x40361e
lea r11d, [rax + 5]
cmp r9d, r11d
jne 0x403625
add eax, 4
xor byte [rcx], al
inc dword [r8]
jmp 0x4035d8
inc r10d
inc rcx
cmp r10b, 0xa2
jne 0x4035d8
mov byte [r8 + 9], 1
mov rcx, rbx
call fcn.004023f2
lea r14, [rsp + 0x70]
mov rdx, rbx
mov rcx, r14
call fcn.004024db
mov rcx, rbx
call fcn.00495540
lea rcx, [0x004ac220]
call fcn.00412ff0
lea rcx, [0x004ac200]
mov r12, rax
call fcn.00412ff0
cmp byte [r12], 0
mov r8, rax
lea rbp, [rax + 0xa]
jne 0x4036da
lea rdi, [rsp + 0xf0]
mov ecx, 7
mov qword [rax], 0
lea rsi, [0x004b03f0]
mov word [rax + 8], 0
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rsi, [rsp + 0xf0]
mov ecx, 7
mov rdi, rbx
rep movsd dword [rdi], dword [rsi]
mov ecx, 0xf
mov rdi, rbp
rep stosb byte [rdi], al
mov eax, 0xa
mov dl, byte [rbx + rax]
mov byte [r8 + rax], dl
inc rax
cmp rax, 0x19
jne 0x4036c5
mov byte [r12], 1
cmp byte [r8 + 9], 0
mov rdx, rbp
mov r9b, 0x96
jne 0x40373f
mov eax, dword [r8 + 4]
mov ecx, dword [r8]
lea r10d, [rax + 1]
cmp ecx, r10d
jne 0x4036fb
inc eax
jmp 0x40372c
lea r10d, [rax + 2]
cmp ecx, r10d
jne 0x403709
add eax, 2
jmp 0x40372c
cmp ecx, eax
jne 0x403712
xor byte [rdx], r9b
jmp 0x403733
lea r10d, [rax + 4]
cmp ecx, r10d
jne 0x403720
add eax, 3
jmp 0x40372c
lea r10d, [rax + 5]
cmp ecx, r10d
jne 0x403733
add eax, 4
xor byte [rdx], al
inc dword [r8]
jmp 0x4036e7
inc r9d
inc rdx
cmp r9b, 0xa5
jne 0x4036e7
mov byte [r8 + 9], 1
lea rcx, [0x004ac1e0]
call fcn.00412ff0
lea rcx, [0x004ac1c0]
mov r12, rax
call fcn.00412ff0
cmp byte [r12], 0
mov rdx, rax
lea r8, [rax + 0xa]
jne 0x4037c7
lea rdi, [rsp + 0xf0]
mov ecx, 6
mov qword [rax], 0
lea rsi, [0x004b0410]
mov word [rax + 8], 0
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rsi, [rsp + 0xf0]
mov ecx, 6
mov rdi, rbx
rep movsd dword [rdi], dword [rsi]
mov ecx, 0xe
mov rdi, r8
rep stosb byte [rdi], al
mov eax, 0xa
mov cl, byte [rbx + rax]
mov byte [rdx + rax], cl
inc rax
cmp rax, 0x18
jne 0x4037b3
mov byte [r12], 1
cmp byte [rdx + 9], 0
mov rcx, r8
mov r10b, 0x96
jne 0x40382a
mov eax, dword [rdx + 4]
mov r9d, dword [rdx]
lea r11d, [rax + 1]
cmp r9d, r11d
jne 0x4037e6
inc eax
jmp 0x403818
lea r11d, [rax + 2]
cmp r9d, r11d
jne 0x4037f4
add eax, 2
jmp 0x403818
cmp r9d, eax
jne 0x4037fe
xor byte [rcx], r10b
jmp 0x40381e
lea r11d, [rax + 4]
cmp r9d, r11d
jne 0x40380c
add eax, 3
jmp 0x403818
lea r11d, [rax + 5]
cmp r9d, r11d
jne 0x40381e
add eax, 4
xor byte [rcx], al
inc dword [rdx]
jmp 0x4037d3
inc r10d
inc rcx
cmp r10b, 0xa4
jne 0x4037d3
mov byte [rdx + 9], 1
mov rdx, qword [rsp + 0x20]
mov rcx, rbx
call fcn.004a6a80
mov rdx, rbp
mov rcx, rbx
call fcn.00495fe0
lea rbp, [rsp + 0x90]
mov rdx, rax
mov rcx, rbp
call fcn.00497910
mov rcx, rbx
call fcn.00495540
lea rcx, [0x004ac2a0]
call fcn.00412ff0
lea rcx, [0x004ac280]
mov rsi, rax
call fcn.00412ff0
cmp byte [rsi], 0
jne 0x4038d3
mov rdx, qword [0x004b03c8]
mov qword [rax], 0
mov rcx, qword [0x004b03c0]
mov word [rax + 8], 0
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0xf8], rdx
mov edx, dword [rsp + 0x11a]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0x110], rcx
mov dword [rax + 0xa], edx
mov dl, byte [rsp + 0x11e]
mov byte [rax + 0xe], dl
mov byte [rsi], 1
cmp byte [rax + 9], 0
lea r12, [rax + 0xa]
mov r9b, 0x97
mov rcx, r12
jne 0x40393a
mov edx, dword [rax + 4]
mov r8d, dword [rax]
lea r10d, [rdx + 1]
cmp r8d, r10d
jne 0x4038f6
inc edx
jmp 0x403928
lea r10d, [rdx + 2]
cmp r8d, r10d
jne 0x403904
add edx, 2
jmp 0x403928
cmp r8d, edx
jne 0x40390e
xor byte [rcx], r9b
jmp 0x40392e
lea r10d, [rdx + 4]
cmp r8d, r10d
jne 0x40391c
add edx, 3
jmp 0x403928
lea r10d, [rdx + 5]
cmp r8d, r10d
jne 0x40392e
add edx, 4
xor byte [rcx], dl
inc dword [rax]
jmp 0x4038e3
inc r9d
inc rcx
cmp r9b, 0x9c
jne 0x4038e3
lea rcx, [0x004ac260]
mov byte [rax + 9], 1
call fcn.00412ff0
lea rcx, [0x004ac240]
mov r13, rax
call fcn.00412ff0
cmp byte [r13], 0
mov r8, rax
lea rdx, [rax + 0xa]
jne 0x4039c2
lea rdi, [rsp + 0xf0]
mov ecx, 6
mov qword [rax], 0
lea rsi, [0x004b03d0]
mov word [rax + 8], 0
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rsi, [rsp + 0xf0]
mov ecx, 6
mov rdi, rbx
rep movsd dword [rdi], dword [rsi]
mov ecx, 0xd
mov rdi, rdx
rep stosb byte [rdi], al
mov eax, 0xa
mov cl, byte [rbx + rax]
mov byte [r8 + rax], cl
inc rax
cmp rax, 0x17
jne 0x4039ad
mov byte [r13], 1
cmp byte [r8 + 9], 0
mov rcx, rdx
mov r10b, 0x97
jne 0x403a28
mov eax, dword [r8 + 4]
mov r9d, dword [r8]
lea r11d, [rax + 1]
cmp r9d, r11d
jne 0x4039e3
inc eax
jmp 0x403a15
lea r11d, [rax + 2]
cmp r9d, r11d
jne 0x4039f1
add eax, 2
jmp 0x403a15
cmp r9d, eax
jne 0x4039fb
xor byte [rcx], r10b
jmp 0x403a1c
lea r11d, [rax + 4]
cmp r9d, r11d
jne 0x403a09
add eax, 3
jmp 0x403a15
lea r11d, [rax + 5]
cmp r9d, r11d
jne 0x403a1c
add eax, 4
xor byte [rcx], al
inc dword [r8]
jmp 0x4039cf
inc r10d
inc rcx
cmp r10b, 0xa4
jne 0x4039cf
mov byte [r8 + 9], 1
mov rcx, rbx
call fcn.004023f2
mov rdx, r12
mov rcx, rbx
call fcn.00495fe0
lea r12, [rsp + 0xb0]
mov rdx, rax
mov rcx, r12
call fcn.00497910
mov rcx, rbx
call fcn.00495540
lea r8, [0x004b00c8]
mov rdx, rbp
mov rcx, rbx
call fcn.004a6a80
mov rdx, r12
mov rcx, rbx
call fcn.00496060
lea r13, [rsp + 0xd0]
mov rdx, rax
lea r15, [rsp + 0xf0]
mov rcx, r13
call fcn.00497910
mov rcx, rbx
call fcn.00495540
mov rcx, r15
call fcn.0040245f
xor edx, edx
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x403ac7
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x403ada
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403c53
jmp 0x403ab7
xor r8d, r8d
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x403c53
mov edx, 6
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov rcx, rbp
call fcn.0040298c
lea rcx, [0x004ac2e0]
call fcn.00412ff0
lea rcx, [0x004ac2c0]
mov qword [rsp + 0x28], rax
call fcn.00412ff0
mov r9, qword [rsp + 0x28]
lea rdx, [rax + 0xa]
mov r8, rax
cmp byte [r9], 0
jne 0x403b99
lea rdi, [rsp + 0x34]
mov ecx, 7
mov qword [rax], 0
lea rsi, [0x004b03a0]
mov word [rax + 8], 0
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rsi, [rsp + 0x34]
mov ecx, 7
mov rdi, rbx
rep movsd dword [rdi], dword [rsi]
mov ecx, 0xf
mov rdi, rdx
rep stosb byte [rdi], al
mov eax, 0xa
mov cl, byte [rbx + rax]
mov byte [r8 + rax], cl
inc rax
cmp rax, 0x19
jne 0x403b85
mov byte [r9], 1
cmp byte [r8 + 9], 0
mov r9, rdx
mov r10b, 0x98
jne 0x403bfc
mov eax, dword [r8 + 4]
mov r11d, dword [r8]
lea ecx, [rax + 1]
cmp r11d, ecx
jne 0x403bb9
inc eax
jmp 0x403be8
lea ecx, [rax + 2]
cmp r11d, ecx
jne 0x403bc6
add eax, 2
jmp 0x403be8
cmp r11d, eax
jne 0x403bd0
xor byte [r9], r10b
jmp 0x403bf0
lea ecx, [rax + 4]
cmp r11d, ecx
jne 0x403bdd
add eax, 3
jmp 0x403be8
lea ecx, [rax + 5]
cmp r11d, ecx
jne 0x403bf0
add eax, 4
xor byte [r9], al
inc dword [r8]
jmp 0x403ba6
inc r10d
inc r9
cmp r10b, 0xa7
jne 0x403ba6
mov byte [r8 + 9], 1
mov rcx, rbx
call fcn.004023f2
lea rsi, [rsp + 0x110]
mov rdx, r13
mov rcx, rbx
call fcn.00402c5b
mov rcx, rsi
call fcn.00495540
mov rcx, r15
call fcn.00495540
mov rcx, r13
call fcn.00495540
mov rcx, r12
call fcn.00495540
mov rcx, rbp
call fcn.00495540
mov rcx, r14
call fcn.00495540
lea rcx, [rsp + 0x50]
jmp 0x403c80
mov rcx, r15
call fcn.00495540
mov rcx, r13
call fcn.00495540
mov rcx, r12
call fcn.00495540
mov rcx, rbp
call fcn.00495540
mov rcx, r14
call fcn.00495540
mov rcx, qword [rsp + 0x20]
call fcn.00495540
nop
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret