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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x684f72
mov eax, dword fs:[0]
push eax
push ecx
push ebx
sub esp, 0x140
mov eax, dword [0x740184]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x124], esi
xor eax, eax
mov dword [ebp - 0x12c], esi
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
call fcn.0046d440
mov dword [ebp - 0x134], eax
lea eax, [esi + 0x2d0]
mov dword [ebp - 4], 0
push eax
lea eax, [esi + 4]
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0046da90
add esp, 0xc
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 1
push ecx
push eax
call fcn.004ce540
mov byte [ebp - 4], 0
add esp, 8
mov edx, dword [ebp - 0xa8]
cmp edx, 8
jb 0x467c81
mov ecx, dword [ebp - 0xbc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x467c77
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46858c
push edx
push ecx
call fcn.0048af59
add esp, 8
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
mov byte [ebp - 4], 2
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
call fcn.0046d420
mov dword [ebp - 0x110], eax
mov byte [ebp - 4], 3
mov edi, dword [ebp - 0x134]
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x144], edi
mov esi, dword [edi]
mov dword [ebp - 0x120], esi
mov edx, 0x7ffffffe
cmp esi, edi
je 0x4684c1
cmp dword [esi + 0x24], 8
lea ecx, [esi + 0x10]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x108], eax
jb 0x467d0f
mov ecx, dword [ecx]
mov dword [ebp - 0x118], ecx
cmp eax, 8
jae 0x467d25
movups xmm0, xmmword [ecx]
mov ecx, 7
movups xmmword [ebp - 0x4c], xmm0
jmp 0x467db6
or eax, 7
cmp eax, 0x7ffffffe
cmova eax, edx
mov dword [ebp - 0x114], eax
inc eax
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x467d46
or ecx, 0xffffffff
jmp 0x467d4e
cmp ecx, 0x1000
jb 0x467d77
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.0048af29
add esp, 4
test eax, eax
je 0x46858c
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x467d8a
test ecx, ecx
je 0x467d88
push ecx
call fcn.0048af29
add esp, 4
mov ecx, eax
jmp 0x467d8a
xor ecx, ecx
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0x4c], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x118]
push ecx
call fcn.004a1db0
mov eax, dword [ebp - 0x108]
add esp, 0xc
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x467e0c
mov edi, dword [ebp - 0x108]
nop word [eax + eax]
cmp ecx, 8
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
movzx eax, word [eax + edi*2 - 2]
push eax
call fcn.0044cf10
add esp, 4
test al, al
je 0x467e06
push 1
lea eax, [edi - 1]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0046fa00
mov edi, dword [ebp - 0x3c]
test edi, edi
je 0x467e06
mov ecx, dword [ebp - 0x38]
jmp 0x467dd0
mov edi, dword [ebp - 0x138]
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0xbc]
call fcn.00456730
push eax
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 5
push eax
call fcn.0047d770
mov eax, dword [ebp - 0x104]
add esp, 8
mov edx, dword [ebp - 0x50]
or eax, 1
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x11c], eax
cmp edx, 0x10
jb 0x467e74
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x467e6a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x468591
push edx
push ecx
call fcn.0048af59
add esp, 8
movups xmm0, xmmword [ebp - 0x34]
mov byte [ebp - 0x34], 0
movups xmmword [ebp - 0x64], xmm0
movq xmm0, qword [ebp - 0x24]
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xa8]
movq qword [ebp - 0x54], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
cmp edx, 8
jb 0x467edc
mov ecx, dword [ebp - 0xbc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x467ed2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x468596
push edx
push ecx
call fcn.0048af59
add esp, 8
lea ecx, [ebp - 0x64]
call fcn.00476a60
test eax, eax
je 0x467f29
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x38]
cmp edx, 8
jb 0x46846a
mov ecx, dword [ebp - 0x4c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x468460
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46859b
jmp 0x468460
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
mov byte [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x64]
cmp dword [ebp - 0x50], 0x10
lea ecx, [ebp - 0x8c]
push dword [ebp - 0x54]
cmovae eax, dword [ebp - 0x64]
push eax
call fcn.0044eca0
mov byte [ebp - 0x74], 0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x34]
xor eax, eax
mov dword [ebp - 0x24], 0
mov word [ebp - 0x34], ax
mov eax, dword [ebp - 0x104]
or eax, 2
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x3c]
inc eax
push eax
call fcn.00452ac0
cmp dword [ebp - 0x38], 8
lea ecx, [ebp - 0x4c]
mov eax, dword [ebp - 0x24]
cmovae ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x104]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x118], edx
cmp edx, eax
ja 0x46802f
mov eax, dword [ebp - 0x104]
lea ecx, [ebp - 0x34]
add eax, edx
cmp dword [ebp - 0x20], 8
mov dword [ebp - 0x24], eax
lea eax, [edx + edx]
cmovae ecx, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x104]
push dword [ebp - 0x114]
mov dword [ebp - 0x128], ecx
lea eax, [ecx + eax*2]
push eax
call fcn.004a2330
mov eax, dword [ebp - 0x118]
add esp, 0xc
add eax, dword [ebp - 0x104]
xor edx, edx
mov ecx, dword [ebp - 0x128]
mov word [ecx + eax*2], dx
jmp 0x468047
push edx
push ecx
mov byte [ebp - 0x13c], 0
lea ecx, [ebp - 0x34]
push dword [ebp - 0x13c]
push edx
call fcn.0044f970
mov edx, dword [ebp - 0x20]
mov eax, edx
mov ecx, dword [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x114], ecx
cmp eax, 1
jb 0x46809a
lea eax, [ecx + 1]
cmp edx, 8
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x34]
cmovae eax, dword [ebp - 0x34]
push 2
mov dword [ebp - 0x128], eax
push 0x7260f0
lea eax, [eax + ecx*2]
push eax
call fcn.004a2330
mov eax, dword [ebp - 0x128]
add esp, 0xc
mov ecx, dword [ebp - 0x114]
xor edx, edx
mov word [eax + ecx*2 + 2], dx
jmp 0x4680b8
push 1
push 0x7260f0
mov byte [ebp - 0x140], 0
lea ecx, [ebp - 0x34]
push dword [ebp - 0x140]
push 1
call fcn.0044f970
mov eax, dword [ebp - 0x124]
cmp dword [eax + 0x60], 8
lea ecx, [eax + 0x4c]
jb 0x4680ca
mov ecx, dword [eax + 0x4c]
push dword [eax + 0x5c]
push ecx
lea ecx, [ebp - 0x34]
call fcn.0044f170
mov dword [ebp - 0x94], 0
xor ecx, ecx
mov dword [ebp - 0x90], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xa4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x94], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
mov eax, dword [ebp - 0x11c]
or eax, 6
and eax, 0xfffffffd
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], eax
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x20]
cmp edx, 8
jb 0x46816a
mov ecx, dword [ebp - 0x34]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x468160
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4685a0
push edx
push ecx
call fcn.0048af59
add esp, 8
xor eax, eax
mov dword [ebp - 0x24], 0
cmp dword [ebp - 0x90], 8
mov word [ebp - 0x34], ax
lea eax, [ebp - 0xa4]
cmovae eax, dword [ebp - 0xa4]
push eax
mov dword [ebp - 0x20], 7
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x46829d
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.004cea90
add esp, 8
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0xbc]
call fcn.00476b20
cmp dword [ebp - 0xa8], 0x10
lea eax, [ebp - 0xbc]
mov ecx, dword [ebp - 0xbc]
push dword [ebp - 0xac]
mov edx, dword [ebp - 0x54]
cmovae eax, ecx
cmp dword [ebp - 0x50], 0x10
mov dword [ebp - 0x11c], ecx
lea ecx, [ebp - 0x64]
cmovae ecx, dword [ebp - 0x64]
push eax
call fcn.00470990
movzx ecx, byte [ebp - 0x74]
add esp, 8
test al, al
mov eax, 1
cmovne ecx, eax
mov eax, dword [ebp - 0xa8]
mov byte [ebp - 0x74], cl
cmp eax, 0x10
jb 0x46824d
mov ecx, dword [ebp - 0x11c]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x468243
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4685a5
push edx
push ecx
call fcn.0048af59
add esp, 8
mov dword [ebp - 4], 9
jmp 0x46829d
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x100]
call fcn.0044db00
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x11c], eax
lea ecx, [ebp - 0xe8]
lea eax, [ebp - 0x8c]
push eax
call fcn.0044db00
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xcc]
mov al, byte [ebp - 0x74]
mov byte [ebp - 0xd0], al
lea eax, [ebp - 0x70]
push eax
call fcn.0046f950
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x110]
call fcn.004717f0
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x14c]
push eax
lea ecx, [ebp - 0x110]
call fcn.004718b0
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 9
call fcn.0045e040
mov edx, dword [ebp - 0xec]
cmp edx, 0x10
jb 0x468361
mov ecx, dword [ebp - 0x100]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x468357
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4685aa
push edx
push ecx
call fcn.0048af59
add esp, 8
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x90]
cmp edx, 8
jb 0x4683a5
mov ecx, dword [ebp - 0xa4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x46839b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4685af
push edx
push ecx
call fcn.0048af59
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x90], 7
mov word [ebp - 0xa4], ax
test ecx, ecx
je 0x46840f
mov edx, dword [ebp - 0x68]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x4683f0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4685b4
push edx
push ecx
call fcn.0048af59
add esp, 8
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x78]
cmp edx, 0x10
jb 0x468446
mov ecx, dword [ebp - 0x8c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x46843c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4685b9
push edx
push ecx
call fcn.0048af59
add esp, 8
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0xf
mov byte [ebp - 0x8c], 0
jmp 0x467ee8
push edx
push ecx
call fcn.0048af59
add esp, 8
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x46849d
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x468490
nop dword [eax]
cmp esi, dword [eax + 8]
jne 0x468490
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x468480
mov esi, eax
mov dword [ebp - 0x120], eax
jmp 0x467cd4
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x467cce
nop dword [eax + eax]
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x4684b0
jmp 0x467cce
mov edi, dword [ebp - 0x124]
lea esi, [edi + 0x394]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [edi + 0x3c4]
lea eax, [ebp - 0x110]
cmp edx, eax
je 0x468506
mov ecx, dword [edx]
mov eax, dword [ebp - 0x110]
mov dword [edx], eax
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x110], ecx
mov ecx, dword [edx + 4]
mov dword [edx + 4], eax
mov dword [ebp - 0x10c], ecx
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x110]
lea ecx, [ebp - 0x110]
push eax
push dword [eax]
lea eax, [ebp - 0x12c]
push eax
call fcn.0046c730
push 0x50
push dword [ebp - 0x110]
call fcn.0048af59
add esp, 8
lea ecx, [ebp - 0x64]
call fcn.0044da70
mov eax, dword [ebp - 0x134]
lea ecx, [ebp - 0x134]
push eax
push dword [eax]
lea eax, [ebp - 0x12c]
push eax
call fcn.0046cab0
push 0x278
push dword [ebp - 0x134]
call fcn.0048af59
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0048b49a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
call fcn.004aae7a
int3