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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x46c
mov eax, dword [0x60ef40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
and eax, 0x80
je 0x520a45
mov dword [ebp - 0x454], 0
lea ecx, [ebp - 0x454]
push ecx
push closesocket
mov edx, dword [ebp + 8]
push edx
call fcn.005218a0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x454]
mov edx, dword [ebp - 0x440]
lea eax, [edx + ecx*2 - 2]
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x440]
movzx edx, word [ecx - 4]
mov dword [ebp - 0x460], edx
mov eax, dword [ebp - 0x440]
sub eax, 2
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x460], 0x5c
je 0x5209e9
jmp 0x5209bf
push 0x208
push 0
lea ecx, [ebp - 0x22c]
push ecx
call fcn.00537090
add esp, 0xc
lea edx, [ebp - 0x22c]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, dword [ebp - 0x440]
push eax
push 0x104
lea ecx, [ebp - 0x22c]
push ecx
call fcn.005217e0
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 0x520cc0
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.0055e3b0
add eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0xc]
and ecx, 0xffff
movzx edx, cx
add eax, edx
mov dword [ebp - 0x44c], eax
mov dword [ebp - 0x46c], 0
xor eax, eax
mov dword [ebp - 0x468], eax
lea ecx, [ebp - 0x46c]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0x44c]
add edx, dword [ebp - 0x46c]
mov dword [ebp - 0x44c], edx
mov eax, dword [ebp - 0x44c]
push eax
call fcn.0055e3f0
add esp, 4
mov dword [ebp - 0x444], 0
jmp 0x520ae3
mov ecx, dword [ebp - 0x444]
add ecx, 1
mov dword [ebp - 0x444], ecx
cmp dword [ebp - 0x444], 0xa
je 0x520b93
call fcn.0055e3b0
cdq
mov ecx, 3
idiv ecx
mov dword [ebp - 0x438], edx
cmp dword [ebp - 0x438], 0
jne 0x520b35
call fcn.0055e3b0
cdq
mov ecx, 0xa
idiv ecx
mov dword [ebp - 0x438], edx
mov edx, dword [ebp - 0x438]
add edx, 0x30
mov eax, dword [ebp - 0x444]
mov word [ebp + eax*2 - 0x24], dx
jmp 0x520b8e
cmp dword [ebp - 0x438], 1
jne 0x520b67
call fcn.0055e3b0
cdq
mov ecx, 0x1a
idiv ecx
mov dword [ebp - 0x438], edx
mov edx, dword [ebp - 0x438]
add edx, 0x41
mov eax, dword [ebp - 0x444]
mov word [ebp + eax*2 - 0x24], dx
jmp 0x520b8e
call fcn.0055e3b0
cdq
mov ecx, 0x1a
idiv ecx
mov dword [ebp - 0x438], edx
mov edx, dword [ebp - 0x438]
add edx, 0x61
mov eax, dword [ebp - 0x444]
mov word [ebp + eax*2 - 0x24], dx
jmp 0x520ad4
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 - 0x458], edx
cmp dword [ebp - 0x458], 0x1e
jae 0x520bf4
jmp 0x520bf9
call fcn.00535450
xor eax, eax
mov ecx, dword [ebp - 0x458]
mov word [ebp + ecx - 0x24], ax
push 0x208
push 0
lea edx, [ebp - 0x434]
push edx
call fcn.00537090
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0x104
lea ecx, [ebp - 0x434]
push ecx
call fcn.00521840
mov edx, dword [ebp + 8]
mov dword [ebp - 0x448], edx
mov dword [ebp - 0x45c], 0
lea eax, [ebp - 0x45c]
push eax
push closesocket
mov ecx, dword [ebp + 8]
push ecx
call fcn.005218a0
mov edx, dword [ebp - 0x45c]
mov eax, dword [ebp - 0x448]
lea ecx, [eax + edx*2]
mov dword [ebp - 0x448], ecx
mov edx, dword [ebp - 0x448]
movzx eax, word [edx - 4]
mov dword [ebp - 0x464], eax
mov ecx, dword [ebp - 0x448]
sub ecx, 2
mov dword [ebp - 0x448], ecx
cmp dword [ebp - 0x464], 0x5c
je 0x520c98
jmp 0x520c6e
push 0x1e
lea edx, [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x448]
push eax
call fcn.00536b10
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x434]
push edx
call fcn.00566fe0
add esp, 8
mov dword [ebp - 0x43c], 0
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
je 0x520cf0
cmp dword [ebp - 0x450], 1
je 0x520d18
cmp dword [ebp - 0x450], 2
je 0x520d40
jmp 0x520d66
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00521f00
add esp, 0x18
mov dword [ebp - 0x43c], eax
jmp 0x520d66
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00521a40
add esp, 0x18
mov dword [ebp - 0x43c], eax
jmp 0x520d66
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp + 0x20]
push edx
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.005221c0
add esp, 0x18
mov dword [ebp - 0x43c], eax
cmp dword [ebp - 0x43c], 0
je 0x520d77
mov eax, dword [ebp - 0x43c]
jmp 0x520db2
mov ecx, dword [ebp + 0x20]
cmp dword [ecx], 0
jne 0x520d86
mov eax, 0x1d
jmp 0x520db2
cmp dword [ebp + 0x10], 2
je 0x520dac
mov edx, dword [ebp + 0x1c]
push edx
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00521380
add esp, 0x10
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x43c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00534c20
mov esp, ebp
pop ebp
ret