Function at 0x40fdd7
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x310
mov eax, 0x43c571
call fcn.00418271
mov ebx, ecx
mov dword [ebp - 0x300], ebx
mov ecx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x304], ecx
mov dword [ebp - 4], eax
mov dword [ebp - 0x48], eax
lea edx, [ebp - 0x48]
mov byte [ebp - 4], al
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0xc]
mov byte [ebp - 4], 2
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x48]
and dword [ebp - 0x44], 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
push dword [ebp - 0x44]
lea ecx, [ebp - 0x64]
call fcn.0040d6ee
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
call fcn.0040d941
lea ecx, [ebp - 0x64]
call fcn.00401da8
and dword [ebp - 0x40], 0
lea edx, [ebp - 0x40]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x48]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
push 0xffffffffffffffff
push dword [ebx + 0x64]
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x110]
call fcn.0040f1a2
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xe0]
call fcn.0040e146
lea ecx, [ebp - 0x64]
call fcn.00401f37
xor ecx, ecx
mov dword [ebp - 0x14], ecx
xor eax, eax
lea edi, [ebp - 0x38]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], cl
xor eax, eax
lea edi, [ebp - 0x20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
push str.Cache_Control:_no_store
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xd
call fcn.0040214b
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x80]
mov eax, dword [ebp - 0x1c]
push ecx
cmp eax, dword [ebp - 0x18]
je 0x40fee2
mov ecx, eax
call fcn.00401d13
add dword [ebp - 0x1c], 0x18
jmp 0x40feeb
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b8a
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0xd
call fcn.00401f37
push 0x44511c
lea ecx, [ebp - 0x2fc]
call fcn.0040214b
push 0x4480ac
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xf
call fcn.0040214b
lea eax, [ebp - 0x2fc]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x64]
push eax
lea edx, [ebp - 0xe0]
lea ecx, [ebp - 0x31c]
call fcn.0040e308
mov esi, eax
lea ecx, [ebx + 0x24]
mov byte [ebp - 4], 0x11
push ecx
lea edx, [ebx + 0xc]
lea ecx, [ebp - 0x80]
call fcn.00402bc1
add esp, 0xc
push esi
push eax
push dword [ebp - 0x304]
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x12
call fcn.004148c7
lea ecx, [ebp - 0x80]
call fcn.00401f37
lea ecx, [ebp - 0x31c]
call fcn.00401f37
lea ecx, [ebp - 0x64]
call fcn.00401f37
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x17
call fcn.00401f37
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0xf8]
call fcn.0040d835
lea edx, [ebp - 0x98]
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x31c]
call fcn.0040d835
mov edx, eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x80]
call fcn.0040da50
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x18
call fcn.00401da8
cmp dword [ebp - 0x6c], 7
lea eax, [ebp - 0x80]
cmova eax, dword [ebp - 0x80]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea ecx, [ebp - 0x80]
mov esi, eax
call fcn.00401da8
cmp esi, 0xffffffff
je 0x4105c9
lea edx, [ebp - 0xe0]
lea ecx, [ebp - 0x80]
call fcn.00402e4b
push str.Content_Type:
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x1a
call fcn.0040214b
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x80]
cmp dword [ebp - 0x6c], 0xf
push dword [ebp - 0x70]
cmova ecx, dword [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.00402dbe
push eax
lea ecx, [ebp - 0x2fc]
call fcn.00401d13
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x1c]
push ecx
cmp eax, dword [ebp - 0x18]
je 0x410061
mov ecx, eax
call fcn.00401d13
add dword [ebp - 0x1c], 0x18
jmp 0x41006a
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b8a
lea ecx, [ebp - 0x2fc]
call fcn.00401f37
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x1a
call fcn.00401f37
push str.Accept_Ranges:_bytes
lea ecx, [ebp - 0x2fc]
call fcn.0040214b
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x1c]
push ecx
cmp eax, dword [ebp - 0x18]
je 0x4100b4
mov ecx, eax
call fcn.00401d13
add dword [ebp - 0x1c], 0x18
jmp 0x4100bd
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b8a
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x1a
call fcn.00401f37
cmp dword [ebp - 0x84], 0xf
lea eax, [ebp - 0x98]
lea ecx, [ebp - 0x64]
cmova eax, dword [ebp - 0x98]
push eax
call fcn.0040214b
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x1e
call fcn.0040dcff
mov ebx, eax
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x2e0], ebx
call fcn.00401f37
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x68]
and dword [ebp - 0x68], 0
push eax
push str.Range
mov edx, dword [ecx]
push ecx
call dword [edx + 0x14]
cmp dword [ebp - 0x68], 0
je 0x41049a
and dword [ebp - 0x3c], 0
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x3c]
mov esi, dword [ebp - 0x40]
mov edi, dword [esi]
call fcn.00416dc5
push eax
push str.Range
push esi
call dword [edi + 0xc]
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x2fc]
call fcn.0040d6ee
lea edx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x64]
call fcn.0040d941
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x22
call fcn.00401da8
lea ecx, [ebp - 0x64]
call fcn.0040e2c5
mov edx, ebx
lea ecx, [ebp - 0x64]
call fcn.0040e3b7
mov edi, eax
mov esi, edx
mov dword [ebp - 0x2dc], edi
test edi, edi
jne 0x4101ee
test esi, esi
jne 0x4101ee
push 0x15
pop eax
mov edi, 0x1a0
cmp dword [ebp - 0x24], eax
jb 0x4101ce
cmp dword [ebp - 0x24], 0xf
lea esi, [ebp - 0x38]
push eax
cmova esi, dword [ebp - 0x38]
push str.Range_Not_Satisfiable
push esi
mov dword [ebp - 0x28], eax
call fcn.00419240
add esp, 0xc
mov byte [esi + 0x15], 0
jmp 0x41047a
push str.Range_Not_Satisfiable
mov byte [ebp - 0x2e0], 0
lea ecx, [ebp - 0x38]
push dword [ebp - 0x2e0]
push eax
call fcn.0040efec
jmp 0x41047a
push 0x98
mov ebx, esi
lea eax, [ebp - 0x1a8]
push 0
sub ebx, edi
push eax
inc ebx
call fcn.004197c0
pop ecx
pop ecx
lea ecx, [ebp - 0x1a8]
call fcn.00411640
push dword [ebp - 0x2e0]
mov edx, str.Content_Range:_bytes
mov byte [ebp - 4], 0x23
push esi
push edi
lea ecx, [ebp - 0x1a8]
call fcn.00413ccc
mov ecx, eax
call fcn.00411d1a
mov edx, 0x446ec8
mov ecx, eax
call fcn.00413ccc
mov ecx, eax
call fcn.00411d1a
mov edx, 0x4480ac
mov ecx, eax
call fcn.00413ccc
mov ecx, eax
call fcn.00411d1a
push 0x98
lea eax, [ebp - 0x2d8]
push 0
push eax
call fcn.004197c0
pop ecx
pop ecx
lea ecx, [ebp - 0x2d8]
call fcn.00411640
push ebx
mov edx, str.Content_Length:
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x2d8]
call fcn.00413ccc
mov ecx, eax
call fcn.00411d1a
lea eax, [ebp - 0x2fc]
push eax
lea ecx, [ebp - 0x1a4]
call fcn.00412cca
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x1c]
push ecx
cmp eax, dword [ebp - 0x18]
je 0x4102ca
mov ecx, eax
call fcn.00401d13
add dword [ebp - 0x1c], 0x18
jmp 0x4102d3
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b8a
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x24
call fcn.00401f37
lea eax, [ebp - 0x2fc]
push eax
lea ecx, [ebp - 0x2d4]
call fcn.00412cca
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x2fc]
mov eax, dword [ebp - 0x1c]
push ecx
cmp eax, dword [ebp - 0x18]
je 0x410314
mov ecx, eax
call fcn.00401d13
add dword [ebp - 0x1c], 0x18
jmp 0x41031d
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b8a
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 0x24
call fcn.00401f37
push 0xf
pop eax
mov edi, 0xce
cmp dword [ebp - 0x24], eax
jb 0x410358
push eax
lea esi, [ebp - 0x38]
mov dword [ebp - 0x28], eax
cmova esi, dword [ebp - 0x38]
push str.Partial_Content
push esi
call fcn.00419240
add esp, 0xc
mov byte [esi + 0xf], 0
jmp 0x410373
push str.Partial_Content
mov byte [ebp - 0x2e4], 0
lea ecx, [ebp - 0x38]
push dword [ebp - 0x2e4]
push eax
call fcn.0040efec
cmp ebx, dword [ebp - 0x2e0]
jne 0x4103ce
lea edx, [ebp - 0xf8]
lea ecx, [ebp - 0x31c]
call fcn.0040da50
mov esi, eax
cmp dword [esi + 0x14], 7
jbe 0x410396
mov esi, dword [esi]
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x14]
and dword [ebp - 0x14], 0
test ecx, ecx
je 0x4103ab
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea eax, [ebp - 0x14]
push eax
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileEx]
lea ecx, [ebp - 0x31c]
call fcn.00401da8
jmp 0x410464
mov ecx, dword [ebp - 0x300]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00410854
test eax, eax
jne 0x410438
push 0x15
pop eax
mov edi, 0x1f4
cmp dword [ebp - 0x24], eax
jb 0x41041b
cmp dword [ebp - 0x24], 0xf
lea esi, [ebp - 0x38]
push eax
cmova esi, dword [ebp - 0x38]
push str.Internal_Server_Error
push esi
mov dword [ebp - 0x28], eax
call fcn.00419240
add esp, 0xc
mov byte [esi + 0x15], 0
jmp 0x410464
push str.Internal_Server_Error
mov byte [ebp - 0x2e4], 0
lea ecx, [ebp - 0x38]
push dword [ebp - 0x2e4]
push eax
call fcn.0040efec
jmp 0x410464
add eax, dword [ebp - 0x2dc]
push ebx
push eax
call dword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov byte [ebp - 4], 0x28
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x41045a
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
test esi, esi
je 0x410464
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea ecx, [ebp - 0x2d8]
call fcn.00410803
lea ecx, [ebp - 0x1a8]
call fcn.00410803
lea ecx, [ebp - 0x64]
call fcn.00401f37
cmp dword [ebp - 0x3c], 0
je 0x4105b8
push dword [ebp - 0x3c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x4105b8
push 0x98
lea eax, [ebp - 0x1a8]
push 0
push eax
call fcn.004197c0
pop ecx
pop ecx
lea ecx, [ebp - 0x1a8]
call fcn.00411640
push ebx
mov edx, str.Content_Length:
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x1a8]
call fcn.00413ccc
mov ecx, eax
call fcn.00411d1a
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x1a4]
call fcn.00412cca
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x64]
mov eax, dword [ebp - 0x1c]
push ecx
cmp eax, dword [ebp - 0x18]
je 0x410502
mov ecx, eax
call fcn.00401d13
add dword [ebp - 0x1c], 0x18
jmp 0x41050b
push eax
lea ecx, [ebp - 0x20]
call fcn.00401b8a
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x29
call fcn.00401f37
lea edx, [ebp - 0xf8]
lea ecx, [ebp - 0x31c]
call fcn.0040da50
mov esi, eax
mov byte [ebp - 4], 0x2b
mov eax, dword [ebp - 0x14]
and dword [ebp - 0x14], 0
test eax, eax
je 0x41053f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x29
cmp dword [esi + 0x14], 7
jbe 0x41054b
mov esi, dword [esi]
lea eax, [ebp - 0x14]
push eax
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileEx]
lea ecx, [ebp - 0x31c]
call fcn.00401da8
push 2
pop ecx
mov edi, 0xc8
cmp dword [ebp - 0x24], ecx
jb 0x410592
cmp dword [ebp - 0x24], 0xf
lea eax, [ebp - 0x38]
mov dword [ebp - 0x28], ecx
mov ecx, 0x4b4f
cmova eax, dword [ebp - 0x38]
mov word [eax], cx
mov byte [eax + 2], 0
jmp 0x4105ad
push 0x44706c
mov byte [ebp - 0x2dc], 0
push dword [ebp - 0x2dc]
push ecx
lea ecx, [ebp - 0x38]
call fcn.0040efec
lea ecx, [ebp - 0x1a8]
call fcn.00410803
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x18
call fcn.00401f37
jmp 0x410651
mov esi, str.File_not_found
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4105d3
sub ecx, edx
push ecx
push esi
call dword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov byte [ebp - 4], 0x2c
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4105f8
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
test esi, esi
je 0x410602
mov eax, dword [esi]
push esi
call dword [eax + 8]
push 9
pop eax
mov byte [ebp - 4], 0x18
mov edi, 0x194
cmp dword [ebp - 0x24], eax
jb 0x410636
cmp dword [ebp - 0x24], 0xf
lea esi, [ebp - 0x38]
push eax
cmova esi, dword [ebp - 0x38]
push str.Not_Found
push esi
mov dword [ebp - 0x28], eax
call fcn.00419240
add esp, 0xc
mov byte [esi + 9], 0
jmp 0x410651
push str.Not_Found
mov byte [ebp - 0x2dc], 0
lea ecx, [ebp - 0x38]
push dword [ebp - 0x2dc]
push eax
call fcn.0040efec
push 0x98
lea eax, [ebp - 0x240]
push 0
push eax
call fcn.004197c0
pop ecx
pop ecx
lea ecx, [ebp - 0x240]
call fcn.00411640
mov byte [ebp - 4], 0x2d
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x1c]
cmp esi, ebx
je 0x4106b3
cmp dword [esi + 0x14], 0xf
mov edx, esi
jbe 0x410689
mov edx, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x240]
call fcn.00414c41
lea eax, [esi + 0x18]
mov esi, eax
pop ecx
cmp eax, ebx
je 0x4106b3
mov edx, 0x44707c
lea ecx, [ebp - 0x240]
call fcn.00413ccc
jmp 0x41067f
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0xc8]
call fcn.0040d835
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 0x2e
push eax
lea ecx, [ebp - 0x23c]
call fcn.00412cca
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0xb0]
call fcn.0040d835
lea ecx, [ebp - 0x64]
call fcn.00401f37
cmp dword [ebp - 0xb4], 7
lea edx, [ebp - 0xc8]
mov eax, dword [ebp - 0x300]
lea ecx, [ebp - 0xb0]
cmova edx, dword [ebp - 0xc8]
cmp dword [ebp - 0x9c], 7
mov esi, dword [eax + 0x70]
cmova ecx, dword [ebp - 0xb0]
and dword [ebp - 0x4c], 0
lea ebx, [ebp - 0x4c]
push ebx
push ecx
push edx
push edi
mov byte [ebp - 4], 0x32
push dword [ebp - 0x14]
mov eax, dword [esi]
push esi
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x304]
push dword [ebp - 0x4c]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14]
mov byte [ebp - 4], 0x34
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x410757
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xb0]
call fcn.00401da8
lea ecx, [ebp - 0xc8]
call fcn.00401da8
lea ecx, [ebp - 0x240]
call fcn.00410803
lea ecx, [ebp - 0xf8]
call fcn.00401da8
lea ecx, [ebp - 0x98]
call fcn.00401f37
lea ecx, [ebp - 0x20]
call fcn.00401ddb
lea ecx, [ebp - 0x38]
call fcn.00401f37
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4107af
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xe0]
call fcn.00401f37
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4107cb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x110]
call fcn.00401f37
cmp dword [ebp - 0x44], 0
je 0x4107e5
push dword [ebp - 0x44]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [ebp - 4], 0x37
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4107f9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
call fcn.00418220
ret 4