Function at 0x1003c774
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3178
call fcn.1004e6b2
mov eax, dword [0x1001e278]
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 0x10002d70
push esi
mov dword [ebp - 0x3178], ebx
call dword [eax + 0x28]
push dword [ebx + 4]
lea ecx, [ebp - 0x3168]
call fcn.10042146
add edi, 0xa
test dword [ebp + 0xc], 0x80000000
movzx eax, word [edi]
push eax
je 0x1003c877
and dword [ebp - 0x3170], 0
jmp 0x1003c7e6
inc dword [ebp - 0x3170]
mov eax, dword [ebp - 0x3170]
movzx eax, word [edi + eax*2]
push eax
call fcn.100386c2
test eax, eax
jne 0x1003c7d5
mov ecx, dword [ebp - 0x3170]
lea edi, [edi + ecx*2]
movzx eax, word [edi]
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x1003c80d
cmp word [edi + 2], 0x3a
je 0x1003c83f
cmp ecx, 3
je 0x1003c83f
cmp ecx, 2
jae 0x1003c82a
push 0
mov eax, 0x100031a0
push eax
push 0x396c6471
push eax
call fcn.1002f711
push 0x1001b884
lea eax, [ebp - 0x3160]
push eax
call fcn.10041def
test eax, eax
je 0x1003c850
push edi
lea eax, [ebp - 0x3160]
push eax
call fcn.10041ec1
test eax, eax
jne 0x1003c8c4
lea ecx, [ebp - 0x3168]
call fcn.100421de
mov eax, 0x8007000e
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1004da5d
leave
ret 8
inc edi
inc edi
movzx eax, word [edi]
push eax
call fcn.100386c2
test eax, eax
jne 0x1003c871
movzx eax, word [edi]
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x1003c8ba
cmp word [edi + 2], 0x3a
jne 0x1003c8ba
push edi
lea eax, [ebp - 0x3160]
push eax
call fcn.10041def
test eax, eax
jne 0x1003c8c4
mov esi, 0x8007000e
lea ecx, [ebp - 0x3168]
call fcn.100421de
mov eax, esi
jmp 0x1003c860
push 0x1001b87c
jmp 0x1003c82f
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 0x1003c8ef
push eax
lea eax, [ebp - 0x3160]
push eax
call fcn.100419e4
and dword [ebp - 0x316c], 0
test dword [ebp + 0xc], 0x80000000
je 0x1003c909
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.1004163d
push eax
push dword [ebp - 0x3174]
mov ecx, ebx
call fcn.10039142
mov dword [ebp - 0x3170], eax
test eax, eax
jge 0x1003c957
mov esi, eax
jmp 0x1003c8ab
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 0x1003ca83
lea eax, [edi + 8]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x18]
cmp ax, 0x3a
jne 0x1003ca83
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 0x1003ca83
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
cmp eax, 0x824
ja 0x1003c8a6
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 0x1003c950
cmp word [ebp - 0x30e8], 0
je 0x1003ca83
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.10036164
test eax, eax
jne 0x1003ca83
lea eax, [ebp - 0x30e8]
push eax
call fcn.1001fdb2
cmp eax, 0x104
jg 0x1003ca83
mov ecx, dword [esi]
push eax
lea eax, [ebp - 0x30e8]
push eax
push esi
call dword [ecx + 0x2c]
test eax, eax
je 0x1003c8a6
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.1003c512
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x1003c950
mov ecx, ebx
call fcn.10039724
test byte [ebp + 0xc], 8
je 0x1003cbfa
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.10036cc8
mov ebx, eax
test ebx, ebx
jne 0x1003cb7c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1003cbfa
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.10030970
mov dword [ebp - 0x316c], eax
test eax, eax
je 0x1003cbfa
xor ecx, ecx
mov word [eax], cx
push 0x824
lea eax, [ebp - 0x209c]
push eax
push dword [ebp - 0x3174]
call fcn.10036cc8
mov ebx, eax
mov eax, dword [ebp - 0x316c]
push 0x5c
pop ecx
mov word [eax], cx
lea ecx, [ebx - 1]
cmp ecx, 0x823
ja 0x1003cb73
sub eax, dword [ebp - 0x3174]
sar eax, 1
cmp ebx, eax
jbe 0x1003cb4b
push 0
mov eax, 0x100031a0
push eax
push 0x6462646c
push eax
call fcn.1002f711
mov eax, 0x825
sub eax, ebx
push eax
lea eax, [ebp + ebx*2 - 0x209c]
push eax
push dword [ebp - 0x316c]
call fcn.10031ce9
push dword [ebp - 0x316c]
call fcn.1001fdb2
add ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0xd0]
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x1003cbfa
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.10036164
test eax, eax
jne 0x1003cbfa
cmp ebx, 0x104
ja 0x1003cbfa
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x209c]
push ecx
push esi
call dword [eax + 0x2c]
test eax, eax
je 0x1003c8a6
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.1003c512
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x1003c950
mov ecx, dword [ebp - 0x3178]
call fcn.10039724
test byte [ebp + 0xc], 0x10
je 0x1003cd9b
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.10038ba4
test eax, eax
je 0x1003cd9b
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.10036cd2
mov ebx, eax
test ebx, ebx
jne 0x1003cd1b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x1003cd9b
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.10030970
mov dword [ebp - 0x3174], eax
test eax, eax
je 0x1003cd12
xor ecx, ecx
mov word [eax], cx
push 0x824
lea eax, [ebp - 0x1050]
push eax
push dword [ebp - 0x316c]
call fcn.10036cd2
mov ecx, dword [ebp - 0x3174]
mov ebx, eax
push 0x5c
pop eax
mov word [ecx], ax
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x1003cd12
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 0x1003cd0c
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 0x1003cd9b
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.10036164
test eax, eax
jne 0x1003cd9b
cmp ebx, 0x104
ja 0x1003cd9b
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x1050]
push ecx
push esi
call dword [eax + 0x2c]
test eax, eax
je 0x1003c8a6
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.1003c512
mov esi, eax
mov dword [ebp - 0x3170], esi
test esi, esi
jl 0x1003c8ab
mov ecx, dword [ebp - 0x3178]
call fcn.10039724
lea ecx, [ebp - 0x3168]
call fcn.100421de
mov eax, dword [ebp - 0x3170]
jmp 0x1003c860