Function at 0x5100a0
Capabilities:
Check if file exists
Copy file
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x6596e7
mov eax, dword fs:[0]
push eax
mov eax, 0x13c4
call fcn.006222c0
mov eax, dword [0x758898]
xor eax, esp
mov dword [esp + 0x13c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x758898]
xor eax, esp
push eax
lea eax, [esp + 0x13d8]
mov dword fs:[0], eax
mov ebp, ecx
lea ecx, [esp + 0x14]
call fcn.004024f0
xor ebx, ebx
mov dword [esp + 0x13e0], ebx
xor eax, eax
jmp 0x510100
movzx ecx, word [eax + 0x6a3ca8]
mov word [esp + eax + 0xbac], cx
add eax, 2
cmp cx, bx
jne 0x510100
mov eax, dword [0x75efa0]
push eax
lea ecx, [esp + 0x18]
push str._s__.wav_.wav
push ecx
call fcn.00402f60
mov edx, dword [esp + 0x20]
add esp, 0xc
push ebp
push edx
push 0x1000
push ebx
lea eax, [esp + 0xbbc]
push eax
push 1
lea ecx, [esp + 0x54]
call fcn.00424a40
mov byte [esp + 0x13e0], 1
lea ecx, [esp + 0x3c]
call fcn.00424300
mov ecx, dword [ebp + 0x20]
push 1
push ebx
push ecx
mov esi, eax
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp esi, 1
je 0x51019d
mov byte [esp + 0x13e0], bl
mov dword [esp + 0x3c], vtable.MyCFileDialogA.0
mov dword [esp + 0x13e0], 0xffffffff
lea ecx, [esp + 0x14]
call fcn.00402560
xor al, al
jmp 0x510493
lea ecx, [esp + 0x3c]
call fcn.00424380
xor edx, edx
push eax
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebx
mov word [esp + 0x38], dx
call fcn.004017e0
mov byte [esp + 0x13e0], 2
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x5101d3
lea eax, [esp + 0x34]
push 0x100
lea ecx, [esp + 0x11d8]
push ecx
push 0x100
lea edx, [esp + 0xfe0]
push edx
push 0x100
lea ecx, [esp + 0xde8]
push ecx
push 3
lea edx, [esp + 0xbc0]
push edx
push eax
call fcn.00623b27
xor eax, eax
add esp, 0x24
mov dword [esp + 0x24], ebx
mov dword [esp + 0x2c], ebx
mov word [esp + 0x28], ax
mov byte [esp + 0x13e0], 3
push ebx
lea ecx, [esp + 0x11d8]
push ecx
lea edx, [esp + 0xfdc]
push edx
push 0x678de0
lea ecx, [esp + 0x34]
call fcn.00402310
cmp dword [0x75dbac], ebx
je 0x510271
mov eax, dword [0x75dc38]
cmp eax, ebx
jne 0x510259
mov eax, 0x75dc3c
push eax
lea eax, [esp + 0xbd0]
push str._sSounds_
push eax
call fcn.0040fd00
add esp, 0xc
jmp 0x5102ef
push 0x104
lea ecx, [esp + 0xbd0]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x100
lea edx, [esp + 0x11d8]
push edx
push 0x100
lea eax, [esp + 0xfe0]
push eax
push 0x100
lea ecx, [esp + 0xde8]
push ecx
push 3
lea edx, [esp + 0xbc0]
push edx
lea eax, [esp + 0xbec]
push eax
call fcn.00623b27
lea ecx, [esp + 0xdf8]
push ecx
lea edx, [esp + 0xbcc]
push edx
lea eax, [esp + 0xbf8]
push str._s_sSounds_
push eax
call fcn.0040fd00
add esp, 0x34
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ecx, [esp + 0xbcc]
push ecx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xffffffff
jne 0x510321
call edi
cmp eax, 2
jne 0x510321
lea edx, [esp + 0xbcc]
push edx
call fcn.006253cc
add esp, 4
xor eax, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
mov word [esp + 0x1c], ax
mov byte [esp + 0x13e0], 4
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x510344
lea eax, [esp + 0x28]
push ebx
push eax
lea ecx, [esp + 0xbd4]
push ecx
push 0x678de0
lea ecx, [esp + 0x28]
call fcn.00402310
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x510368
lea eax, [esp + 0x1c]
push eax
call esi
or esi, 0xffffffff
cmp eax, esi
jne 0x510419
call edi
cmp eax, 2
jne 0x510419
mov eax, dword [esp + 0x18]
mov ecx, eax
cmp eax, ebx
jne 0x51038f
lea ecx, [esp + 0x1c]
mov eax, dword [esp + 0x30]
cmp eax, ebx
jne 0x51039b
lea eax, [esp + 0x34]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x510419
mov edx, dword [0x75ecc4]
mov eax, dword [0x75ece0]
mov ecx, dword [ebp + 0x20]
push 0x40
push edx
push eax
push ecx
call fcn.00473680
add esp, 0x10
mov byte [esp + 0x13e0], 3
lea ecx, [esp + 0x18]
call fcn.00401210
mov byte [esp + 0x13e0], 2
lea ecx, [esp + 0x24]
call fcn.00401210
mov byte [esp + 0x13e0], 1
lea ecx, [esp + 0x30]
call fcn.00401210
mov byte [esp + 0x13e0], bl
mov dword [esp + 0x3c], vtable.MyCFileDialogA.0
mov dword [esp + 0x13e0], esi
lea ecx, [esp + 0x14]
call fcn.00402560
xor al, al
jmp 0x510493
mov eax, dword [esp + 0x24]
cmp eax, ebx
jne 0x510425
lea eax, [esp + 0x28]
mov edx, dword [esp + 0x13e8]
push eax
mov eax, dword [ebp + 0xac]
push edx
push 1
push eax
call fcn.0040ced0
add esp, 0x10
mov byte [esp + 0x13e0], 3
lea ecx, [esp + 0x18]
call fcn.00401210
mov byte [esp + 0x13e0], 2
lea ecx, [esp + 0x24]
call fcn.00401210
mov byte [esp + 0x13e0], 1
lea ecx, [esp + 0x30]
call fcn.00401210
mov byte [esp + 0x13e0], bl
mov dword [esp + 0x3c], vtable.MyCFileDialogA.0
mov dword [esp + 0x13e0], esi
lea ecx, [esp + 0x14]
call fcn.00402560
mov al, 1
mov ecx, dword [esp + 0x13d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x13c0]
xor ecx, esp
call fcn.00620b8d
add esp, 0x13d0
ret 4