Function at 0x10012dd0
Capabilities:
Copy file
Get common file path
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x46c
mov eax, dword [0x1008f0c0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov eax, dword [ebp + 0x18]
and eax, 0x80
je 0x10012eb7
mov dword [ebp - 0x440], 0
lea ecx, [ebp - 0x440]
push ecx
push 0x7fffffff
mov edx, dword [ebp + 8]
push edx
call fcn.10012700
mov eax, dword [ebp + 8]
mov dword [ebp - 0x450], eax
mov ecx, dword [ebp - 0x440]
mov edx, dword [ebp - 0x450]
lea eax, [edx + ecx*2 - 2]
mov dword [ebp - 0x450], eax
mov ecx, dword [ebp - 0x450]
movzx edx, word [ecx - 4]
mov dword [ebp - 0x468], edx
mov eax, dword [ebp - 0x450]
sub eax, 2
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x468], 0x5c
je 0x10012e5b
jmp 0x10012e31
push 0x208
push 0
lea ecx, [ebp - 0x22c]
push ecx
call fcn.10026310
add esp, 0xc
lea edx, [ebp - 0x22c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, dword [ebp - 0x450]
push eax
push 0x104
lea ecx, [ebp - 0x22c]
push ecx
call fcn.10012620
push 0
lea edx, [ebp - 0x22c]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [ebp - 0x22c]
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 0x18]
and edx, 0x40
je 0x1001312f
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov word [ebp - 8], ax
call fcn.10040b50
add eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
and ecx, 0xffff
movzx edx, cx
add eax, edx
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x43c], 0
xor eax, eax
mov dword [ebp - 0x438], eax
lea ecx, [ebp - 0x43c]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0x45c]
add edx, dword [ebp - 0x43c]
mov dword [ebp - 0x45c], edx
mov eax, dword [ebp - 0x45c]
push eax
call fcn.10040b90
add esp, 4
mov dword [ebp - 0x454], 0
jmp 0x10012f55
mov ecx, dword [ebp - 0x454]
add ecx, 1
mov dword [ebp - 0x454], ecx
cmp dword [ebp - 0x454], 0xa
je 0x10013005
call fcn.10040b50
cdq
mov ecx, 3
idiv ecx
mov dword [ebp - 0x448], edx
cmp dword [ebp - 0x448], 0
jne 0x10012fa7
call fcn.10040b50
cdq
mov ecx, 0xa
idiv ecx
mov dword [ebp - 0x448], edx
mov edx, dword [ebp - 0x448]
add edx, 0x30
mov eax, dword [ebp - 0x454]
mov word [ebp + eax*2 - 0x24], dx
jmp 0x10013000
cmp dword [ebp - 0x448], 1
jne 0x10012fd9
call fcn.10040b50
cdq
mov ecx, 0x1a
idiv ecx
mov dword [ebp - 0x448], edx
mov edx, dword [ebp - 0x448]
add edx, 0x41
mov eax, dword [ebp - 0x454]
mov word [ebp + eax*2 - 0x24], dx
jmp 0x10013000
call fcn.10040b50
cdq
mov ecx, 0x1a
idiv ecx
mov dword [ebp - 0x448], edx
mov edx, dword [ebp - 0x448]
add edx, 0x61
mov eax, dword [ebp - 0x454]
mov word [ebp + eax*2 - 0x24], dx
jmp 0x10012f46
mov ecx, 2
imul edx, ecx, 0xa
mov eax, 0x2e
mov word [ebp + edx - 0x24], ax
mov ecx, 2
imul edx, ecx, 0xb
mov eax, 0x64
mov word [ebp + edx - 0x24], ax
mov ecx, 2
imul edx, ecx, 0xc
mov eax, 0x6c
mov word [ebp + edx - 0x24], ax
mov ecx, 2
imul edx, ecx, 0xd
mov eax, 0x6c
mov word [ebp + edx - 0x24], ax
mov ecx, 2
imul edx, ecx, 0xe
mov dword [ebp - 0x464], edx
cmp dword [ebp - 0x464], 0x1e
jae 0x10013066
jmp 0x1001306b
call fcn.10023cf0
xor eax, eax
mov ecx, dword [ebp - 0x464]
mov word [ebp + ecx - 0x24], ax
push 0x208
push 0
lea edx, [ebp - 0x434]
push edx
call fcn.10026310
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x104
lea ecx, [ebp - 0x434]
push ecx
call fcn.100125c0
mov edx, dword [ebp + 8]
mov dword [ebp - 0x458], edx
mov dword [ebp - 0x444], 0
lea eax, [ebp - 0x444]
push eax
push 0x7fffffff
mov ecx, dword [ebp + 8]
push ecx
call fcn.10012700
mov edx, dword [ebp - 0x444]
mov eax, dword [ebp - 0x458]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x458], ecx
mov edx, dword [ebp - 0x458]
movzx eax, word [edx - 4]
mov dword [ebp - 0x46c], eax
mov ecx, dword [ebp - 0x458]
sub ecx, 2
mov dword [ebp - 0x458], ecx
cmp dword [ebp - 0x46c], 0x5c
je 0x1001310a
jmp 0x100130e0
mov ecx, 7
lea esi, [ebp - 0x24]
mov edi, dword [ebp - 0x458]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x434]
push eax
call fcn.10040bb0
add esp, 8
mov dword [ebp - 0x44c], 0
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x460], ecx
cmp dword [ebp - 0x460], 0
je 0x1001315f
cmp dword [ebp - 0x460], 1
je 0x10013187
cmp dword [ebp - 0x460], 2
je 0x100131af
jmp 0x100131d5
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.10014010
add esp, 0x18
mov dword [ebp - 0x44c], eax
jmp 0x100131d5
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.10013d20
add esp, 0x18
mov dword [ebp - 0x44c], eax
jmp 0x100131d5
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x20]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.100148e0
add esp, 0x18
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
je 0x100131e6
mov eax, dword [ebp - 0x44c]
jmp 0x10013221
mov edx, dword [ebp + 0x20]
cmp dword [edx], 0
jne 0x100131f5
mov eax, 0x1d
jmp 0x10013221
cmp dword [ebp + 0x10], 2
je 0x1001321b
mov eax, dword [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.100137e0
add esp, 0x10
mov dword [ebp - 0x44c], eax
mov eax, dword [ebp - 0x44c]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10023850
mov esp, ebp
pop ebp
ret