Function at 0x37f9555d
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3178
call fcn.37fad71e
mov eax, dword [0x37f7d24c]
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 0x37f61700
push esi
mov dword [ebp - 0x3178], ebx
call dword [eax + 0x28]
push dword [ebx + 4]
lea ecx, [ebp - 0x3168]
call fcn.37f9f169
add edi, 0xa
test dword [ebp + 0xc], 0x80000000
movzx eax, word [edi]
push eax
je 0x37f95660
and dword [ebp - 0x3170], 0
jmp 0x37f955cf
inc dword [ebp - 0x3170]
mov eax, dword [ebp - 0x3170]
movzx eax, word [edi + eax*2]
push eax
call fcn.37f9142c
test eax, eax
jne 0x37f955be
mov ecx, dword [ebp - 0x3170]
lea edi, [edi + ecx*2]
movzx eax, word [edi]
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x37f955f6
cmp word [edi + 2], 0x3a
je 0x37f95628
cmp ecx, 3
je 0x37f95628
cmp ecx, 2
jae 0x37f95613
push 0
mov eax, 0x37f61df4
push eax
push 0x396c6471
push eax
call fcn.37f8cdaa
push 0x37f6d4b4
lea eax, [ebp - 0x3160]
push eax
call fcn.37f9ee12
test eax, eax
je 0x37f95639
push edi
lea eax, [ebp - 0x3160]
push eax
call fcn.37f9eee4
test eax, eax
jne 0x37f956ad
lea ecx, [ebp - 0x3168]
call fcn.37f9f201
mov eax, 0x8007000e
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.37facac9
leave
ret 8
inc edi
inc edi
movzx eax, word [edi]
push eax
call fcn.37f9142c
test eax, eax
jne 0x37f9565a
movzx eax, word [edi]
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x19
ja 0x37f956a3
cmp word [edi + 2], 0x3a
jne 0x37f956a3
push edi
lea eax, [ebp - 0x3160]
push eax
call fcn.37f9ee12
test eax, eax
jne 0x37f956ad
mov esi, 0x8007000e
lea ecx, [ebp - 0x3168]
call fcn.37f9f201
mov eax, esi
jmp 0x37f95649
push 0x37f6d4ac
jmp 0x37f95618
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 0x37f956d8
push eax
lea eax, [ebp - 0x3160]
push eax
call fcn.37f9ea07
and dword [ebp - 0x316c], 0
test dword [ebp + 0xc], 0x80000000
je 0x37f956f2
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.37f9e660
push eax
push dword [ebp - 0x3174]
mov ecx, ebx
call fcn.37f91ec7
mov dword [ebp - 0x3170], eax
test eax, eax
jge 0x37f95740
mov esi, eax
jmp 0x37f95694
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 0x37f9586c
lea eax, [edi + 8]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x18]
cmp ax, 0x3a
jne 0x37f9586c
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 0x37f9586c
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
cmp eax, 0x824
ja 0x37f9568f
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 0x37f95739
cmp word [ebp - 0x30e8], 0
je 0x37f9586c
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.37f9dbe4
test eax, eax
jne 0x37f9586c
lea eax, [ebp - 0x30e8]
push eax
call fcn.37f91359
cmp eax, 0x104
jg 0x37f9586c
mov ecx, dword [esi]
push eax
lea eax, [ebp - 0x30e8]
push eax
push esi
call dword [ecx + 0x2c]
test eax, eax
je 0x37f9568f
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.37f952fb
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x37f95739
mov ecx, ebx
call fcn.37f9250d
test byte [ebp + 0xc], 8
je 0x37f959e3
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.37f97ffa
mov ebx, eax
test ebx, ebx
jne 0x37f95965
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x37f959e3
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.37f98393
mov dword [ebp - 0x316c], eax
test eax, eax
je 0x37f959e3
xor ecx, ecx
mov word [eax], cx
push 0x824
lea eax, [ebp - 0x209c]
push eax
push dword [ebp - 0x3174]
call fcn.37f97ffa
mov ebx, eax
mov eax, dword [ebp - 0x316c]
push 0x5c
pop ecx
mov word [eax], cx
lea ecx, [ebx - 1]
cmp ecx, 0x823
ja 0x37f9595c
sub eax, dword [ebp - 0x3174]
sar eax, 1
cmp ebx, eax
jbe 0x37f95934
push 0
mov eax, 0x37f61df4
push eax
push 0x6462646c
push eax
call fcn.37f8cdaa
mov eax, 0x825
sub eax, ebx
push eax
lea eax, [ebp + ebx*2 - 0x209c]
push eax
push dword [ebp - 0x316c]
call fcn.37f9137c
push dword [ebp - 0x316c]
call fcn.37f91359
add ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0xd0]
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x37f959e3
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.37f9dbe4
test eax, eax
jne 0x37f959e3
cmp ebx, 0x104
ja 0x37f959e3
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x209c]
push ecx
push esi
call dword [eax + 0x2c]
test eax, eax
je 0x37f9568f
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.37f952fb
mov dword [ebp - 0x3170], eax
test eax, eax
jl 0x37f95739
mov ecx, dword [ebp - 0x3178]
call fcn.37f9250d
test byte [ebp + 0xc], 0x10
je 0x37f95b84
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.37f91929
test eax, eax
je 0x37f95b84
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.37f98004
mov ebx, eax
test ebx, ebx
jne 0x37f95b04
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x37f95b84
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.37f98393
mov dword [ebp - 0x3174], eax
test eax, eax
je 0x37f95afb
xor ecx, ecx
mov word [eax], cx
push 0x824
lea eax, [ebp - 0x1050]
push eax
push dword [ebp - 0x316c]
call fcn.37f98004
mov ecx, dword [ebp - 0x3174]
mov ebx, eax
push 0x5c
pop eax
mov word [ecx], ax
lea eax, [ebx - 1]
cmp eax, 0x823
ja 0x37f95afb
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 0x37f95af5
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 0x37f95b84
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.37f9dbe4
test eax, eax
jne 0x37f95b84
cmp ebx, 0x104
ja 0x37f95b84
mov eax, dword [esi]
push ebx
lea ecx, [ebp - 0x1050]
push ecx
push esi
call dword [eax + 0x2c]
test eax, eax
je 0x37f9568f
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.37f952fb
mov esi, eax
mov dword [ebp - 0x3170], esi
test esi, esi
jl 0x37f95694
mov ecx, dword [ebp - 0x3178]
call fcn.37f9250d
lea ecx, [ebp - 0x3168]
call fcn.37f9f201
mov eax, dword [ebp - 0x3170]
jmp 0x37f95649