Function at 0x4b0340
Capabilities:
Check if file exists
Get file attributes
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2e4
mov eax, dword [0x53f4a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
push ebx
push esi
push edi
mov esi, ecx
push eax
lea ecx, [ebp - 0x2c0]
call fcn.00470300
push str.________
lea ecx, [ebp - 0x2c4]
call fcn.00470300
mov edx, dword [0x5427f0]
mov eax, dword [edx + 0xc]
mov ecx, 0x5427f0
call eax
add eax, 0x10
mov dword [ebp - 0x2bc], eax
mov eax, dword [esi + 0x3d0]
sub eax, 0
je 0x4b05a7
sub eax, 1
je 0x4b0481
sub eax, 1
jne 0x4b0755
lea ecx, [ebp - 0x2e0]
call fcn.004a0390
mov eax, dword [ebp - 0x2c4]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.004626b0
mov ecx, dword [ebp - 0x2c0]
add eax, 0x10
mov dword [edi], eax
add ecx, 0xfffffff0
mov edi, esp
push ecx
call fcn.004626b0
add eax, 0x10
add esp, 4
lea edx, [ebp - 0x2e0]
mov dword [edi], eax
mov ecx, dword [esi + 0x3cc]
push edx
call fcn.0048e9c0
test al, al
je 0x4b0471
push 0
push 0
push 0xffffffffffffffff
add esi, 0x3c
push 0x52a4dc
mov ecx, esi
call fcn.004afaa0
mov edi, eax
mov eax, dword [ebp - 0x2d8]
push eax
push 1
push edi
mov ecx, esi
call fcn.004a3c00
mov ecx, dword [ebp - 0x2d4]
push ecx
push 2
push edi
mov ecx, esi
call fcn.004a3c00
mov edx, dword [ebp - 0x2d0]
push edx
push 3
push edi
mov ecx, esi
call fcn.004a3c00
mov eax, dword [ebp - 0x2cc]
push eax
push 4
push edi
mov ecx, esi
call fcn.004a3c00
mov ecx, dword [ebp - 0x2dc]
push ecx
push 5
push edi
mov ecx, esi
call fcn.004a3c00
lea ecx, [ebp - 0x2e0]
call fcn.004a0400
jmp 0x4b0755
mov edx, dword [ebp - 0x2c0]
cmp dword [edx - 0xc], 1
jle 0x4b0755
mov edi, dword [ebp + 0xc]
test edi, edi
jl 0x4b0755
jne 0x4b04c2
push str.finished
lea ecx, [ebp - 0x2c0]
call fcn.00460dc0
test eax, eax
jne 0x4b04c2
mov ecx, dword [esi + 0x3cc]
call fcn.0048d390
jmp 0x4b0755
mov eax, dword [ebp - 0x2c0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4b0755
lea ecx, [ebp - 0x2c8]
call fcn.00465290
mov dword [ebp - 0x2e4], edi
fild dword [ebp - 0x2e4]
test edi, edi
jge 0x4b04f9
fadd dword [0x513420]
fmul qword [0x50fcd0]
sub esp, 8
lea ecx, [ebp - 0x2c8]
fstp qword [esp]
push str._.01f
push ecx
call fcn.0046cc40
add esp, 0x10
push 0
push 0
push 0xffffffffffffffff
add esi, 0x3c
push 0x52a4dc
mov ecx, esi
call fcn.004afaa0
push 0x2b4
lea edx, [ebp - 0x2b8]
push 0
push edx
mov edi, eax
call fcn.004eb2d0
mov ebx, dword [ebp - 0x2c0]
add esp, 0xc
push ebx
push 1
push edi
mov ecx, esi
call fcn.004a3c00
push 0x111
push 0x2b4
lea eax, [ebp - 0x2b8]
push eax
push 0
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x4b0586
mov ecx, dword [ebp - 0x2b4]
push ecx
push 1
push edi
mov ecx, esi
call fcn.0049f990
mov edx, dword [ebp - 0x2c8]
push edx
push 2
push edi
mov ecx, esi
call fcn.004a3c00
lea ecx, [ebp - 0x2c8]
call fcn.00492ef0
jmp 0x4b0755
mov eax, dword [ebp + 0xc]
cmp eax, 0x63
ja case.0x4b05b6.11
movzx eax, byte [eax + 0x4b0804]
jmp dword [eax*4 + 0x4b07d0]
push 0x541a10
jmp 0x4b060f
push 0x541a14
jmp 0x4b060f
push 0x541a18
jmp 0x4b060f
push 0x541a1c
jmp 0x4b060f
push 0x541a20
jmp 0x4b060f
push 0x541a24
jmp 0x4b060f
push 0x541a28
jmp 0x4b060f
push 0x541a2c
jmp 0x4b060f
push 0x541a30
jmp 0x4b060f
push 0x541a34
jmp 0x4b060f
push 0x541a38
jmp 0x4b060f
push 0x541a3c
lea ecx, [ebp - 0x2bc]
call fcn.004684f0
lea ecx, [ebp - 0x2e0]
call fcn.0048e1a0
mov eax, dword [ebp - 0x2c4]
push ecx
add eax, 0xfffffff0
mov edi, esp
push eax
call fcn.004626b0
mov ecx, dword [ebp - 0x2c0]
add eax, 0x10
mov dword [edi], eax
add ecx, 0xfffffff0
mov edi, esp
push ecx
call fcn.004626b0
add eax, 0x10
add esp, 4
lea edx, [ebp - 0x2e0]
mov dword [edi], eax
mov ecx, dword [esi + 0x3cc]
push edx
call fcn.0048ec50
test al, al
je 0x4b074a
push 0
push 0
push 0xffffffffffffffff
lea edi, [esi + 0x3c]
push 0x52a4dc
mov ecx, edi
call fcn.004afaa0
mov esi, eax
push 0
push esi
mov ecx, edi
call fcn.004acba0
sub eax, 4
je 0x4b06aa
sub eax, 1
jne 0x4b06f5
push 0x5131a0
push eax
push esi
mov ecx, edi
call fcn.004a3c00
jmp 0x4b06f5
test esi, esi
jl 0x4b06f5
cmp esi, dword [edi + 0x388]
jge 0x4b06f5
lea ebx, [edi + 0x384]
push esi
mov ecx, ebx
call fcn.0049f610
cmp dword [eax + 4], 0
jle 0x4b06f5
push esi
mov ecx, ebx
call fcn.0049f610
cmp dword [eax + 4], 0
jg 0x4b06e9
push 0
push 0
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov ecx, dword [eax]
push 0x5131a0
call fcn.0046f430
mov eax, dword [ebp - 0x2d8]
push eax
push 1
push esi
mov ecx, edi
call fcn.004a3c00
mov ecx, dword [ebp - 0x2d4]
push ecx
push 2
push esi
mov ecx, edi
call fcn.004a3c00
mov edx, dword [ebp - 0x2d0]
push edx
push 3
push esi
mov ecx, edi
call fcn.004a3c00
mov eax, dword [ebp - 0x2cc]
push eax
push 4
push esi
mov ecx, edi
call fcn.004a3c00
mov ecx, dword [ebp - 0x2bc]
push ecx
push 5
push esi
mov ecx, edi
call fcn.004a3c00
lea ecx, [ebp - 0x2e0]
call fcn.0048e270
mov eax, dword [ebp - 0x2bc]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4b0777
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2c4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b0799
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x2c0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b07bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004ea5a8
mov esp, ebp
pop ebp
ret 0x10