Function at 0x1003c751
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3178
call fcn.1004e6c7
mov eax, dword [0x1001e268]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
lea esi, [ebx + 0xb0]
mov eax, dword [esi]
push 0x10002d40
push esi
mov dword [ebp - 0x3178], ebx
call dword [eax + 0x28]
push dword [ebx + 4]
lea ecx, [ebp - 0x3168]
call fcn.10042125
add edi, 0xa
test dword [ebp + 0xc], 0x80000000
movzx eax, word [edi]
push eax
je 0x1003c854
and dword [ebp - 0x3170], 0
jmp 0x1003c7c3
inc dword [ebp - 0x3170]
mov eax, dword [ebp - 0x3170]
movzx eax, word [edi + eax*2]
push eax
call fcn.100386d2
test eax, eax
jne 0x1003c7b2
mov ecx, dword [ebp - 0x3170]
lea edi, [edi + ecx*2]
movzx eax, word [edi]
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x1003c7ea
cmp word [edi + 2], 0x3a
je 0x1003c81c
cmp ecx, 3
je 0x1003c81c
cmp ecx, 2
jae 0x1003c807
push 0
mov eax, 0x10003170
push eax
push 0x396c6471
push eax
call fcn.1002f5e2
push 0x1001b8a4
lea eax, [ebp - 0x3160]
push eax
call fcn.10041dce
test eax, eax
je 0x1003c82d
push edi
lea eax, [ebp - 0x3160]
push eax
call fcn.10041ea0
test eax, eax
jne 0x1003c8a1
lea ecx, [ebp - 0x3168]
call fcn.100421f0
mov eax, 0x8007000e
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1004da72
leave
ret 8
inc edi
inc edi
movzx eax, word [edi]
push eax
call fcn.100386d2
test eax, eax
jne 0x1003c84e
movzx eax, word [edi]
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x1003c897
cmp word [edi + 2], 0x3a
jne 0x1003c897
push edi
lea eax, [ebp - 0x3160]
push eax
call fcn.10041dce
test eax, eax
jne 0x1003c8a1
mov esi, 0x8007000e
lea ecx, [ebp - 0x3168]
call fcn.100421f0
mov eax, esi
jmp 0x1003c83d
push 0x1001b89c
jmp 0x1003c80c
push 0
push 4
push 0x23
lea eax, [ebp - 0x3160]
push eax
mov eax, dword [ebp - 0x3160]
call dword [eax + 0x94]
cmp eax, 0xffffffff
je 0x1003c8cc
push eax
lea eax, [ebp - 0x3160]
push eax
call fcn.100419c3
and dword [ebp - 0x316c], 0
test dword [ebp + 0xc], 0x80000000
je 0x1003c8e6
mov dword [ebp - 0x316c], 0x20
lea eax, [ebp - 0x3160]
push eax
mov eax, dword [ebp - 0x3160]
call dword [eax + 0x10]
lea edi, [ebx + 0xa8]
push edi
push dword [ebp - 0x316c]
mov dword [ebp - 0x3174], eax
lea eax, [ebp - 0x3160]
push eax
call fcn.1004161c
push eax
push dword [ebp - 0x3174]
mov ecx, ebx
call fcn.1003911f
mov dword [ebp - 0x3170], eax
test eax, eax
jge 0x1003c934
mov esi, eax
jmp 0x1003c888
push 0
push 0x5c
lea eax, [edi + 8]
mov ecx, dword [eax]
push 0x2f
push eax
call dword [ecx + 0xac]
test byte [ebp + 0xc], 4
je 0x1003ca60
lea eax, [edi + 8]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x18]
cmp ax, 0x3a
jne 0x1003ca60
lea eax, [edi + 8]
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x18]
movzx eax, ax
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x1003ca60
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
cmp eax, 0x824
ja 0x1003c883
lea eax, [eax + eax + 2]
lea ecx, [edi + 8]
push eax
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
push eax
lea eax, [ebp - 0x30e8]
push eax
call sub.MSVCR90.dll_memcpy
mov eax, dword [ebx]
add esp, 0xc
push 0x825
lea ecx, [ebp - 0x30e8]
push ecx
mov ecx, ebx
call dword [eax + 8]
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x1003c92d
cmp word [ebp - 0x30e8], 0
je 0x1003ca60
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push 4
push eax
lea eax, [ebp - 0x30e8]
push eax
call fcn.10036174
test eax, eax
jne 0x1003ca60
lea eax, [ebp - 0x30e8]
push eax
call fcn.1001fd8f
cmp eax, 0x104
jg 0x1003ca60
mov ecx, dword [esi]
push eax
lea eax, [ebp - 0x30e8]
push eax
push esi
call dword [ecx + 0x2c]
test eax, eax
je 0x1003c883
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push dword [ebp + 0xc]
mov dword [ebp - 0x316c], eax
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
push eax
push dword [ebp - 0x316c]
mov ecx, ebx
call fcn.1003c4ef
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x1003c92d
mov ecx, ebx
call fcn.10039701
test byte [ebp + 0xc], 8
je 0x1003cbd7
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push 0x824
lea ecx, [ebp - 0x209c]
push ecx
push eax
call fcn.10036cd8
mov ebx, eax
test ebx, ebx
jne 0x1003cb59
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1003cbd7
mov ebx, dword [esi]
push esi
call dword [ebx + 0x1c]
push eax
push esi
call dword [ebx + 0xcc]
mov dword [ebp - 0x3174], eax
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
push 0x5c
push eax
push dword [ebp - 0x3174]
call fcn.10030989
mov dword [ebp - 0x316c], eax
test eax, eax
je 0x1003cbd7
xor ecx, ecx
mov word [eax], cx
push 0x824
lea eax, [ebp - 0x209c]
push eax
push dword [ebp - 0x3174]
call fcn.10036cd8
mov ebx, eax
mov eax, dword [ebp - 0x316c]
push 0x5c
pop ecx
mov word [eax], cx
lea ecx, [ebx - 1]
cmp ecx, 0x823
ja 0x1003cb50
sub eax, dword [ebp - 0x3174]
sar eax, 1
cmp ebx, eax
jbe 0x1003cb28
push 0
mov eax, 0x10003170
push eax
push 0x6462646c
push eax
call fcn.1002f5e2
mov eax, 0x825
sub eax, ebx
push eax
lea eax, [ebp + ebx*2 - 0x209c]
push eax
push dword [ebp - 0x316c]
call fcn.10031d01
push dword [ebp - 0x316c]
call fcn.1001fd8f
add ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0xd0]
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x1003cbd7
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push 4
push eax
lea eax, [ebp - 0x209c]
push eax
call fcn.10036174
test eax, eax
jne 0x1003cbd7
cmp ebx, 0x104
ja 0x1003cbd7
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x209c]
push ecx
push esi
call dword [eax + 0x2c]
test eax, eax
je 0x1003c883
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push dword [ebp + 0xc]
mov ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
mov ecx, dword [ebp - 0x3178]
push eax
push ebx
call fcn.1003c4ef
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x1003c92d
mov ecx, dword [ebp - 0x3178]
call fcn.10039701
test byte [ebp + 0xc], 0x10
je 0x1003cd78
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
mov ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
push eax
push ebx
call fcn.10038b81
test eax, eax
je 0x1003cd78
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push 0x824
lea ecx, [ebp - 0x1050]
push ecx
push eax
call fcn.10036ce2
mov ebx, eax
test ebx, ebx
jne 0x1003ccf8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1003cd78
mov eax, dword [esi]
push esi
mov dword [ebp - 0x316c], eax
call dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 0x316c]
push esi
call dword [eax + 0xcc]
mov dword [ebp - 0x316c], eax
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
push 0x5c
push eax
push dword [ebp - 0x316c]
call fcn.10030989
mov dword [ebp - 0x3174], eax
test eax, eax
je 0x1003ccef
xor ecx, ecx
mov word [eax], cx
push 0x824
lea eax, [ebp - 0x1050]
push eax
push dword [ebp - 0x316c]
call fcn.10036ce2
mov ecx, dword [ebp - 0x3174]
mov ebx, eax
push 0x5c
pop eax
mov word [ecx], ax
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x1003ccef
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
mov ecx, dword [ebp - 0x3174]
sub ecx, dword [ebp - 0x316c]
sar ecx, 1
sub eax, ecx
lea ecx, [eax + ebx]
mov dword [ebp - 0x316c], ecx
cmp ecx, 0x824
ja 0x1003cce9
lea eax, [eax + eax + 2]
push eax
push dword [ebp - 0x3174]
lea eax, [ebp + ebx*2 - 0x1050]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
mov ebx, dword [ebp - 0x316c]
mov eax, dword [esi]
push esi
call dword [eax + 0xd0]
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x1003cd78
lea eax, [edi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push 4
push eax
lea eax, [ebp - 0x1050]
push eax
call fcn.10036174
test eax, eax
jne 0x1003cd78
cmp ebx, 0x104
ja 0x1003cd78
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x1050]
push ecx
push esi
call dword [eax + 0x2c]
test eax, eax
je 0x1003c883
add edi, 8
mov eax, dword [edi]
push edi
call dword [eax + 0x10]
push dword [ebp + 0xc]
mov edi, eax
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
mov ecx, dword [ebp - 0x3178]
push eax
push edi
call fcn.1003c4ef
mov esi, eax
mov dword [ebp - 0x3170], esi
test esi, esi
jl 0x1003c888
mov ecx, dword [ebp - 0x3178]
call fcn.10039701
lea ecx, [ebp - 0x3168]
call fcn.100421f0
mov eax, dword [ebp - 0x3170]
jmp 0x1003c83d