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

Disassembly:
push 0xffffffffffffffff
push 0x4be01e
mov eax, dword fs:[0]
push eax
sub esp, 0x514
mov eax, dword [0x4f36a0]
xor eax, esp
mov dword [esp + 0x510], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f36a0]
xor eax, esp
push eax
lea eax, [esp + 0x528]
mov dword fs:[0], eax
mov eax, dword [esp + 0x53c]
mov ebp, dword [esp + 0x538]
xor ebx, ebx
mov esi, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], fcn.00499078
mov dword [esp + 0x34], fcn.0049b4da
mov dword [esp + 0x38], fcn.00498f5b
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 0x8000
mov dword [esp + 0x2c], vtable.t_heap.0
mov dword [esp + 0x44], ebx
mov byte [esp + 0x48], bl
mov dword [esp + 0x530], ebx
mov eax, dword [ebp]
push 0x3a8
push eax
push esi
lea ecx, [esp + 0x38]
call fcn.0044fc90
test al, al
jne 0x412cbe
mov edi, dword [ebp]
mov ecx, esi
call fcn.00447720
mov esi, eax
push 0x4dc3e4
push 0x4d65ac
mov edx, esi
call fcn.00448ff0
push edi
push 0x4d65ac
mov edx, esi
call fcn.00448ff0
mov dword [esp + 0x540], 0xffffffff
mov eax, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0x2c], vtable.allocator_unsigned_char__class_TAllocDefault_.0
cmp eax, ebx
je 0x412cb7
nop
mov ecx, dword [eax + 4]
push eax
mov dword [esp + 0x40], ecx
call dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add esp, 4
cmp eax, ebx
jne 0x412ca0
xor al, al
jmp 0x413125
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x412cef
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x20]
push edx
lea edi, [esp + 0x5c]
mov dword [esp + 0x24], str.iresearch
call fcn.00450bb0
cmp eax, ebx
je 0x412cef
cmp dword [eax + 4], ebx
jne 0x412cfa
mov eax, dword [esp + 0x1c]
mov byte [eax], bl
jmp 0x41310f
mov ecx, dword [esp + 0x1c]
mov byte [ecx], 1
push str.version
mov ecx, str.iresearch
lea eax, [esp + 0x30]
call fcn.0044fa50
mov ebx, eax
lea esi, [esp + 0x18]
call fcn.004035f0
mov ecx, esi
mov byte [esp + 0x530], 1
call fcn.00413150
test al, al
jne 0x412d90
mov ecx, dword [esp + 0x24]
call fcn.00447720
push 0x4dc418
push 0x4d65ac
mov edx, eax
call fcn.00448ff0
mov eax, dword [esp + 0x20]
lea edx, [eax - 0xc]
add esp, 8
cmp edx, 0x4f9f74
je 0x412d75
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x412d75
push esi
call fcn.00498b08
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [esp + 0x530], 0xffffffff
call fcn.0043f0d0
xor al, al
jmp 0x413125
push 0x4dc428
mov ecx, str.iresearch
lea eax, [esp + 0x30]
call fcn.0044fa50
mov ebx, eax
lea esi, [esp + 0x20]
call fcn.004035f0
push 0x4dc430
mov ecx, str.iresearch
lea eax, [esp + 0x30]
mov byte [esp + 0x534], 2
call fcn.0044fa50
mov ebx, eax
lea esi, [esp + 0x1c]
call fcn.004035f0
push 0xfe
xor ebx, ebx
lea ecx, [esp + 0x42a]
xor eax, eax
push ebx
mov byte [esp + 0x538], 3
push ecx
mov word [esp + 0x430], ax
call fcn.0049ca10
lea edx, [esp + 0x430]
add esp, 0xc
push edx
mov ecx, 0x80
call fcn.00405180
add esp, 4
test eax, eax
jle 0x412e58
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4dc438
call edi
cmp eax, ebx
je 0x412e38
mov esi, eax
mov edx, 0x4dc438
lea eax, [esp + 0x20]
call fcn.00403750
lea eax, [esp + 0x424]
push eax
call edi
cmp eax, ebx
je 0x412e58
mov esi, eax
lea edx, [esp + 0x424]
lea eax, [esp + 0x20]
call fcn.00403750
mov ebp, dword [ebp + 0xc]
lea ecx, [esp + 0x2bc]
call fcn.00448930
mov eax, ebp
lea edx, [esp + 0x2bc]
call fcn.00448b50
push 0x3e
lea edx, [esp + 0x3ea]
xor ecx, ecx
push ebx
mov byte [esp + 0x538], 5
push edx
mov word [esp + 0x3f0], cx
call fcn.0049ca10
add esp, 0xc
cmp byte [esp + 0x3d8], 0
lea eax, [esp + 0x2c8]
jne 0x412eb2
mov eax, dword [esp + 0x2c4]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x412efb
shr eax, 4
not al
and al, 1
je 0x412efb
lea eax, [esp + 0x3e4]
push 0x20
push eax
lea ecx, [esp + 0x2c4]
call fcn.004083d0
mov ecx, dword [esp + 0x20]
add esp, 8
lea edx, [esp + 0x3e4]
call fcn.00409300
cmp eax, ebx
jle 0x4130e8
mov dword [esp + 0x54], ebx
call fcn.0044c840
push ebx
push ebx
push ebx
push ebx
push 0x4dc3a4
add eax, 0x12c
push eax
lea ecx, [esp + 0x1ac]
call fcn.004441a0
lea ecx, [esp + 0x54]
lea edx, [esp + 0x58]
mov byte [esp + 0x530], 6
call fcn.00420340
lea ecx, [esp + 0x194]
push ecx
lea esi, [esp + 0x74]
call fcn.00446ee0
mov byte [esp + 0x530], 8
cmp byte [eax + 0x11c], 0
je 0x412f5b
add eax, 0xc
jmp 0x412f5e
mov eax, dword [eax + 8]
mov ebp, dword [esp + 0x20]
add eax, 4
push eax
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x54]
mov edi, ebp
mov dword [esp + 0x54], ebx
call fcn.00420800
test eax, eax
lea ecx, [esp + 0x70]
sete bl
mov byte [esp + 0x530], 7
call fcn.004444f0
test bl, bl
je 0x412ff9
push 0
lea ecx, [esp + 0x198]
call fcn.00444b40
push ebp
push 0x4dc43c
mov ecx, dword [esp + 0x2c]
call fcn.004032e0
mov ecx, eax
call fcn.00447b70
lea edi, [esp + 0x58]
call fcn.00415770
lea ecx, [esp + 0x194]
call fcn.004444f0
lea ecx, [esp + 0x2bc]
call fcn.004444f0
lea esi, [esp + 0x1c]
call fcn.004035c0
lea esi, [esp + 0x20]
call fcn.004035c0
lea esi, [esp + 0x18]
call fcn.004035c0
jmp 0x412d75
mov edi, dword [esp + 0x1c]
sub esp, 0x124
mov esi, esp
mov ecx, esi
mov dword [esp + 0x174], esp
call fcn.00448930
cmp byte [esp + 0x3d4], 0
lea eax, [esp + 0x2c4]
jne 0x41302b
mov eax, dword [esp + 0x2c0]
add eax, 4
mov edx, esi
call fcn.00448b50
mov byte [esp + 0x654], 7
call fcn.00409440
add esp, 0x124
push 0
lea ecx, [esp + 0x198]
test al, al
jne 0x413065
call fcn.00444b40
push ebp
push 0x4dc44c
jmp 0x412fa8
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x2c0]
push eax
push esi
call fcn.00445300
push 0
lea ecx, [esp + 0x198]
test al, al
jne 0x4130ce
call fcn.00444b40
mov ecx, esi
call fcn.00447770
lea ecx, [esp + 0x2bc]
call fcn.004445b0
push eax
push 0x4dc474
lea ecx, [esp + 0x19c]
call fcn.004445b0
push eax
push 0x4dc464
mov ecx, esi
call fcn.004032e0
mov ecx, eax
call fcn.00447b70
mov ecx, eax
call fcn.00447b70
jmp 0x412fb1
call fcn.00444b40
lea edi, [esp + 0x58]
call fcn.00415770
lea ecx, [esp + 0x194]
call fcn.004444f0
lea ecx, [esp + 0x2bc]
call fcn.004444f0
lea esi, [esp + 0x1c]
call fcn.004035c0
lea esi, [esp + 0x20]
call fcn.004035c0
lea esi, [esp + 0x18]
call fcn.004035c0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x530], 0xffffffff
call fcn.0043f0d0
mov al, 1
mov ecx, dword [esp + 0x528]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x510]
xor ecx, esp
call fcn.00497c58
add esp, 0x520
ret 8