Function at 0x1000354d
Capabilities:
Check if file exists

Disassembly:
push 0x26c
mov eax, 0x10040133
call fcn.1001a8b2
mov edi, ecx
mov dword [ebp - 0x1c], edi
xor esi, esi
cmp dword [ebp + 8], esi
je 0x10003798
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10003798
lea ecx, [ebp - 0x14]
call fcn.10001000
push esi
push esi
push 1
push dword [ebp + 8]
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], esi
call fcn.10001147
lea ecx, [ebp - 0x14]
test eax, eax
je 0x1000378f
call fcn.10001006
lea ecx, [ebp - 0x14]
mov esi, eax
call fcn.10001009
mov ebx, eax
test esi, esi
je 0x1000378c
test ebx, ebx
je 0x1000378c
cmp dword [esi + 0xc], 0x3e8
jne 0x1000378c
cmp dword [esi + 0x14], 0x20
jb 0x1000378c
cmp dword [ebx], 0x20
jb 0x1000378c
mov esi, dword [ebx + 0x1c]
imul esi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
imul eax, dword [ebx + 0x10]
add esi, eax
mov eax, dword [ebx + 0xc]
imul eax, dword [ebx + 8]
add esi, eax
lea ecx, [ebp - 0x14]
cmp esi, dword [ebx + 4]
jne 0x1000378f
call fcn.10001014
mov ecx, dword [ebx]
add ecx, esi
cmp eax, ecx
jb 0x1000378c
cmp dword [ebx + 8], 0x258
jb 0x1000378c
cmp dword [ebx + 0x10], 0x14
jb 0x1000378c
cmp dword [ebx + 0x18], 0x394
jb 0x1000378c
lea eax, [edi + 0x60]
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, edi
call fcn.1000297f
mov esi, dword [ebx]
push dword [ebx + 0xc]
add esi, ebx
lea ecx, [edi + 0x10]
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 2
call fcn.1000348e
and dword [ebp + 8], 0
mov eax, dword [ebp + 8]
cmp eax, dword [ebx + 0xc]
jae 0x100036fa
lea eax, [esi + 0x4c]
push 0x100434fc
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x10003693
mov dword [edi + 4], 1
jmp 0x100036ad
push 0x100434c8
lea eax, [esi + 0x4c]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCmpIW]
test eax, eax
jne 0x100036ad
mov dword [edi + 8], 1
push dword [ebp + 8]
mov ecx, 0x96
lea edi, [ebp - 0x278]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x1c]
add ecx, 0x10
call fcn.10001330
mov edx, dword [ebp - 0x1c]
mov edi, eax
mov eax, dword [ebp - 0x18]
mov ecx, 0x96
lea esi, [ebp - 0x278]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 4]
cmp ecx, dword [edx + 0xc]
jbe 0x100036e8
mov dword [edx + 0xc], ecx
add eax, dword [ebx + 8]
inc dword [ebp + 8]
mov dword [ebp - 0x18], eax
mov esi, eax
mov edi, edx
jmp 0x1000366b
push dword [ebx + 0x14]
lea ecx, [edi + 0x28]
call fcn.100034d5
and dword [ebp + 8], 0
mov eax, dword [ebp + 8]
cmp eax, dword [ebx + 0x14]
jae 0x10003732
push eax
lea ecx, [edi + 0x28]
call fcn.1000135d
push 5
mov edi, eax
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x10]
add dword [ebp - 0x18], eax
inc dword [ebp + 8]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
jmp 0x10003709
push dword [ebx + 0x1c]
lea ecx, [edi + 0x40]
mov dword [ebp - 0x1c], ecx
call fcn.10003506
and dword [ebp + 8], 0
mov eax, dword [ebp + 8]
cmp eax, dword [ebx + 0x1c]
jae 0x10003772
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.10001385
mov edi, eax
mov ecx, 0xe5
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x18]
add dword [ebp - 0x18], eax
inc dword [ebp + 8]
mov esi, dword [ebp - 0x18]
jmp 0x10003744
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.10001137
xor eax, eax
inc eax
jmp 0x1000379a
lea ecx, [ebp - 0x14]
or dword [ebp - 4], 0xffffffff
call fcn.10001137
xor eax, eax
call fcn.1001a957
ret 4