Function at 0x556fb0
Capabilities:
Check if file exists
Get file attributes
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x8744b6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3b0
push ebx
push ebp
push esi
push edi
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.00469e90
mov ebx, dword [esp + 0x3d4]
xor esi, esi
push 0xffffffffffffffff
push esi
mov ecx, ebx
mov dword [esp + 0x3d0], esi
call fcn.00412ca0
mov ebp, dword [esp + 0x3d8]
push 0xffffffffffffffff
push esi
mov ecx, ebp
call fcn.00412ca0
mov edi, dword [esp + 0x3d0]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x55737b
test al, 0x10
jne 0x55737b
push esi
push esi
push esi
push esi
push esi
push esi
push esi
push esi
push edi
call fcn.00677bc0
add esp, 0x24
test eax, eax
je 0x55737b
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0x39]
mov byte [esp + 0x38], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esp + 0x3d0]
lea eax, [esp + 0x38]
push eax
push edi
call fcn.00679780
add esp, 8
test eax, eax
je 0x55737b
lea ecx, [esp + 0x20]
call fcn.00636b60
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c8], 1
push ecx
push edi
mov ecx, 0x9ce3b8
call fcn.005237d0
lea ecx, [esp + 0x20]
call fcn.00636d30
test eax, eax
jbe 0x5571e1
lea ecx, [esp + 0x20]
call fcn.00637470
cmp eax, esi
mov dword [esp + 0x14], eax
je 0x5571e1
mov ecx, dword [eax + 0x6c]
cmp ecx, esi
jne 0x5570f9
xor edx, edx
mov dword [esp + 0x24], esi
mov esi, dword [ebx + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
push 0xffffffffffffffff
lea eax, [esi + 1]
mov dword [esp + 0x34], edx
push eax
mov ecx, ebx
mov dword [esp + 0x3c], edx
call fcn.00412ca0
mov edx, dword [ebx + 4]
lea ecx, [esi + esi*4]
lea esi, [esp + 0x24]
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
jmp 0x55714b
cmp ecx, esi
mov dword [esp + 0x18], esi
jbe 0x557151
add eax, 0x78
mov dword [esp + 0x10], eax
mov esi, dword [ebx + 8]
push 0xffffffffffffffff
mov ecx, ebx
lea eax, [esi + 1]
push eax
call fcn.00412ca0
mov edx, dword [ebx + 4]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
inc eax
add esi, 0x14
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x18], eax
cmp eax, edx
mov dword [esp + 0x10], esi
jb 0x557108
mov eax, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [eax + 0x70]
cmp ecx, esi
jne 0x557195
xor edx, edx
mov dword [esp + 0x24], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
push 0xffffffffffffffff
lea eax, [esi + 1]
mov dword [esp + 0x34], edx
push eax
mov ecx, ebp
mov dword [esp + 0x3c], edx
call fcn.00412ca0
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*4]
lea esi, [esp + 0x24]
lea edi, [edx + ecx*4]
mov ecx, 5
jmp 0x55734d
xor ebx, ebx
cmp ecx, esi
jbe 0x55734f
jmp 0x5571a5
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x6c]
mov edi, dword [ebp + 8]
push 0xffffffffffffffff
lea ecx, [ecx + ebx + 6]
lea edx, [ecx + ecx*4]
mov ecx, ebp
lea esi, [eax + edx*4]
lea eax, [edi + 1]
push eax
call fcn.00412ca0
mov edx, dword [ebp + 4]
mov eax, dword [esp + 0x14]
lea ecx, [edi + edi*4]
inc ebx
lea edi, [edx + ecx*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
cmp ebx, dword [eax + 0x70]
jb 0x5571a1
jmp 0x55734f
xor ecx, ecx
mov dword [esp + 0x24], esi
mov esi, dword [ebx + 8]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
push 0xffffffffffffffff
mov dword [esp + 0x34], ecx
lea edx, [esi + 1]
mov dword [esp + 0x38], ecx
push edx
mov ecx, ebx
call fcn.00412ca0
mov ecx, dword [ebx + 4]
lea eax, [esi + esi*4]
lea esi, [esp + 0x24]
lea edi, [ecx + eax*4]
mov ecx, 5
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov esi, ecx
mov dword [esp + 0x14], esi
lea ebx, [esi + 1]
test ebx, ebx
jne 0x55724f
test eax, eax
je 0x557242
push eax
call fcn.008325dd
add esp, 4
mov dword [ebp + 4], 0
xor eax, eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], eax
jmp 0x55733b
test eax, eax
jne 0x557277
lea edx, [ebx + ebx*4]
shl edx, 2
push edx
call fcn.008325b4
add esp, 4
mov dword [ebp + 4], eax
push ebx
push eax
call fcn.00431f50
mov dword [ebp + 0xc], ebx
mov dword [ebp + 8], ebx
jmp 0x55733b
mov edi, dword [ebp + 0xc]
cmp ebx, edi
jg 0x55729b
cmp ebx, ecx
jle 0x557293
mov edx, ebx
sub edx, ecx
lea ecx, [ecx + ecx*4]
push edx
lea edx, [eax + ecx*4]
push edx
call fcn.00431f50
mov dword [ebp + 8], ebx
jmp 0x55733b
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x5572c5
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x5572b9
mov eax, 4
jmp 0x5572c5
cmp eax, 0x400
jle 0x5572c5
mov eax, 0x400
add eax, edi
cmp ebx, eax
jge 0x5572d1
mov dword [esp + 0x10], eax
jmp 0x5572d7
mov dword [esp + 0x10], ebx
mov eax, ebx
lea eax, [eax + eax*4]
shl eax, 2
push eax
call fcn.008325b4
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 4]
mov edi, eax
add esp, 4
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x18], eax
shl ecx, 2
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
sub edx, ecx
lea ecx, [ecx + ecx*4]
push edx
lea edx, [eax + ecx*4]
push edx
call fcn.00431f50
mov eax, dword [ebp + 4]
push eax
call fcn.008325dd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
add esp, 4
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 4]
lea edx, [esi + esi*4]
mov ecx, 5
lea esi, [esp + 0x24]
lea edi, [eax + edx*4]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x20]
mov byte [esp + 0x3c8], 0
call fcn.00636c90
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c8], 0xffffffff
call fcn.00469ec0
mov eax, 1
jmp 0x557391
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c8], 0xffffffff
call fcn.00469ec0
xor eax, eax
mov ecx, dword [esp + 0x3c0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3bc
ret 0xc