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

Disassembly:
push 0x594
mov eax, 0x459899
call fcn.00457260
mov esi, ecx
mov dword [ebp - 0x584], esi
cmp byte [0x464156], 0
mov edi, 0x464120
push 0x18
pop ecx
mov byte [ebp - 0x571], 1
mov dword [ebp - 0x588], ecx
je 0x417da0
mov eax, dword [0x4641ec]
xor ebx, ebx
sub eax, dword [0x4641e8]
cdq
idiv ecx
test eax, eax
je 0x417d20
push ebx
call fcn.00416795
push eax
lea ecx, [ebp - 0x58]
call fcn.00413f00
and dword [ebp - 4], 0
lea ecx, [ebp - 0x40]
push 0x40a654
call fcn.00413f00
push 0x40a5d0
mov edx, eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x70]
call fcn.004142ce
mov byte [ebp - 4], 2
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x417977
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00414810
lea ecx, [ebp - 0x70]
call fcn.00410a1a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00410a1a
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x70]
call fcn.00416fb9
push eax
lea ecx, [ebp - 0x58]
call fcn.00413e92
lea ecx, [ebp - 0x70]
call fcn.00410a1a
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xa4]
call fcn.00413f42
or dword [ebp - 0x8c], 0xffffffff
lea eax, [ebp - 0xa4]
mov byte [ebp - 4], 3
push eax
push eax
lea ecx, [ebp - 0x570]
call fcn.00416d59
jmp 0x417cca
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00413f00
push ebx
mov byte [ebp - 4], 4
call fcn.00416795
push eax
lea ecx, [ebp - 0x28]
call fcn.00413f00
push 0x40a024
lea edx, [ebp - 0x28]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x88]
call fcn.0041430b
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.004143e5
push eax
lea ecx, [ebp - 0x28]
call fcn.00413e92
lea ecx, [ebp - 0x40]
call fcn.00410a1a
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 5
call fcn.00410a1a
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x88]
call fcn.00416fb9
push eax
lea ecx, [ebp - 0x28]
call fcn.00413e92
lea ecx, [ebp - 0x88]
call fcn.00410a1a
cmp dword [ebp - 0x18], 0x104
jbe 0x417acd
push ecx
push 0x40a65c
lea ecx, [ebp - 0x28]
call fcn.0041a5d6
test eax, eax
je 0x417acd
push 0x40a65c
lea ecx, [ebp - 0x40]
call fcn.00413f00
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
push ecx
mov edx, eax
lea ecx, [ebp - 0x88]
call fcn.004143e5
push eax
lea ecx, [ebp - 0x28]
call fcn.00413e92
lea ecx, [ebp - 0x88]
call fcn.00410a1a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call fcn.00410a1a
cmp byte [0x464289], 0
je 0x417aee
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x417ae2
mov eax, dword [ebp - 0x28]
push eax
push 4
push edi
call fcn.00411073
add esp, 0xc
lea eax, [ebp - 0x578]
mov dword [ebp - 0x578], esi
push eax
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x590]
call fcn.0041d3b0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x590]
push 0
call fcn.004215bf
test al, al
je 0x417c7a
mov ecx, dword [ebp - 0x590]
lea eax, [ebp - 0x57c]
push eax
call fcn.00423719
test al, al
je 0x417b70
cmp dword [0x46418c], 0
je 0x417b70
call fcn.00416724
cmp dword [ebp - 0x57c], eax
je 0x417b70
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x417b5a
mov eax, dword [ebp - 0x28]
push eax
push 0x7e5
push edi
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
cmp dword [ebp - 0x14], 8
lea edi, [ebp - 0x28]
jb 0x417b7c
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmp eax, 1
jb 0x417bb7
dec eax
cmp eax, 0xffffffff
jb 0x417b8d
or eax, 0xffffffff
lea esi, [edi + eax*2]
cmp word [esi], 0x5c
jne 0x417ba8
push 1
mov edx, 0x40a024
mov ecx, esi
call fcn.00414c47
test eax, eax
je 0x417bb1
cmp esi, edi
je 0x417bb7
sub esi, 2
jmp 0x417b90
sub esi, edi
sar esi, 1
jmp 0x417bba
or esi, 0xffffffff
and dword [ebp - 0x30], 0
lea ecx, [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00414233
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x40]
mov eax, dword [ebp - 0x30]
push 6
add eax, 0xfffffffa
push eax
call fcn.0041a688
push ecx
push ecx
lea eax, [ebp - 0x590]
mov ecx, esp
push eax
call fcn.00413bad
lea ecx, [ebp - 0x5a0]
call fcn.0041683f
lea eax, [ebp - 0x2d0]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x5a0]
call fcn.00413b61
mov esi, dword [ebp - 0x584]
cmp byte [ebp - 0x2cc], 0
je 0x417c60
mov eax, dword [ebp - 0x2c8]
mov ecx, esi
push 1
push dword [ebp + eax*4 - 0x2c0]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x590]
push eax
call fcn.00418a7c
lea ecx, [ebp - 0x2d0]
call fcn.00413a80
jmp 0x417c29
lea ecx, [ebp - 0x5a0]
call fcn.00413ac1
lea ecx, [ebp - 0x40]
call fcn.00410a1a
mov edi, 0x464120
jmp 0x417c9c
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x417c86
mov eax, dword [ebp - 0x28]
push eax
push 0x7d5
push edi
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
mov ecx, dword [ebp - 0x58c]
test ecx, ecx
je 0x417cab
call fcn.004113df
lea ecx, [ebp - 0x28]
call fcn.00410a1a
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 3
call fcn.00410a1a
lea ecx, [ebp - 0x570]
call fcn.00416ea7
lea ecx, [ebp - 0x318]
call fcn.00416e29
lea eax, [ebp - 0x318]
push eax
lea ecx, [ebp - 0x570]
call fcn.00416e6e
test al, al
jne 0x4179e3
lea ecx, [ebp - 0xa4]
call fcn.00416f14
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.00410a1a
mov eax, dword [0x4641ec]
inc ebx
sub eax, dword [0x4641e8]
push 0x18
cdq
pop ecx
idiv ecx
cmp ebx, eax
jb 0x417935
mov esi, dword [esi + 0x2c]
mov eax, dword [esi]
mov dword [ebp - 0x578], eax
jmp 0x417d9c
mov edi, dword [eax + 0x28]
mov byte [edi + 0x44], 1
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx]
mov dword [ebp - 0x57c], eax
cmp eax, ecx
je 0x417d60
mov eax, dword [eax + 0x28]
lea ecx, [ebp - 0x57c]
mov byte [eax + 0x40], 1
call fcn.00413fb8
mov eax, dword [ebp - 0x57c]
cmp eax, dword [edi + 0x18]
jne 0x417d43
mov ebx, dword [edi + 0x34]
mov edi, dword [edi + 0x30]
jmp 0x417d87
push edi
lea ecx, [ebp - 0x18]
call fcn.00413bad
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov byte [eax + 0x40], 1
test ecx, ecx
je 0x417d84
call fcn.004113df
add edi, 8
cmp edi, ebx
jne 0x417d68
lea ecx, [ebp - 0x578]
call fcn.00413fb8
mov eax, dword [ebp - 0x578]
cmp eax, esi
jne 0x417d2d
cmp dword [0x4641a4], 0
je 0x418036
mov edi, dword [0x464224]
mov dword [ebp - 0x588], edi
mov esi, dword [edi]
mov dword [ebp - 0x578], esi
cmp esi, edi
je 0x418492
push 0x18
pop ecx
xor al, al
and dword [ebp - 0x57c], 0
mov byte [ebp - 0x57d], al
lea ebx, [esi + 8]
mov eax, dword [0x46415c]
sub eax, dword [0x464158]
cdq
idiv ecx
test eax, eax
je 0x417ffc
mov edi, dword [ebp - 0x57c]
mov esi, dword [ebp - 0x584]
push edi
call fcn.00416737
push eax
lea ecx, [ebp - 0x28]
call fcn.00413f00
push 0x40a024
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xb
call fcn.0041479e
cmp dword [ebx + 0x14], 8
mov eax, ebx
jb 0x417e2d
mov eax, dword [ebx]
push dword [ebx + 0x10]
lea ecx, [ebp - 0x28]
push eax
call fcn.00414810
push 0x40a5f4
lea ecx, [ebp - 0x28]
call fcn.0041479e
push 0x40a5d0
lea ecx, [ebp - 0x28]
call fcn.0041479e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x417e5f
mov eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x417fc0
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
mov byte [ebp - 0x57d], 1
jb 0x417e82
mov eax, dword [ebp - 0x28]
push eax
push 1
push 0x464120
call fcn.00411073
add esp, 0xc
mov dword [ebp - 0x57c], esi
lea eax, [ebp - 0x57c]
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x590]
push eax
call fcn.0041d3b0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x590]
push 0
call fcn.004215bf
test al, al
je 0x417f8b
mov eax, dword [ebp - 0x590]
mov ecx, dword [eax + 0xa4]
mov eax, dword [ebx + 0x18]
cmp ecx, eax
je 0x417f18
movzx edx, ax
shr eax, 0x10
cmp dword [ebp - 0x14], 8
mov dword [ebp - 0x57c], edx
lea edx, [ebp - 0x28]
jb 0x417ef1
mov edx, dword [ebp - 0x28]
push dword [ebp - 0x57c]
push eax
movzx eax, cx
push eax
shr ecx, 0x10
push ecx
push edx
push 0x1397
push 0x464120
call fcn.0041105c
add esp, 0x1c
jmp 0x417faa
push ecx
push ecx
lea eax, [ebp - 0x590]
mov ecx, esp
push eax
call fcn.00413bad
lea ecx, [ebp - 0x5a0]
call fcn.0041683f
lea eax, [ebp - 0x2d0]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x5a0]
call fcn.00413b61
jmp 0x417f75
mov eax, dword [ebp - 0x2c8]
mov ecx, esi
push 0
push dword [ebp + eax*4 - 0x2c0]
lea eax, [ebp - 0x590]
push 0
push eax
call fcn.00418a7c
lea ecx, [ebp - 0x2d0]
call fcn.00413a80
cmp byte [ebp - 0x2cc], 0
jne 0x417f4b
lea ecx, [ebp - 0x5a0]
call fcn.00413ac1
jmp 0x417fb1
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
jb 0x417f97
mov eax, dword [ebp - 0x28]
push eax
push 0x7d5
push 0x464120
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
mov ecx, dword [ebp - 0x58c]
test ecx, ecx
je 0x417fc0
call fcn.004113df
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00410a1a
mov eax, dword [0x46415c]
inc edi
sub eax, dword [0x464158]
push 0x18
cdq
pop ecx
idiv ecx
cmp edi, eax
jb 0x417e00
mov al, byte [ebp - 0x57d]
mov esi, dword [ebp - 0x578]
mov edi, dword [ebp - 0x588]
test al, al
jne 0x418021
cmp dword [ebx + 0x14], 8
jb 0x418004
mov ebx, dword [ebx]
push ebx
push 0x7d5
push 0x464120
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
push 0x18
pop ecx
mov esi, dword [esi]
mov dword [ebp - 0x578], esi
cmp esi, edi
jne 0x417dcc
jmp 0x418492
xor edi, edi
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x59c], edi
xor esi, esi
mov dword [ebp - 0x598], ecx
mov dword [ebp - 0x594], ebx
mov dword [ebp - 4], 0xe
mov eax, dword [0x46415c]
sub eax, dword [0x464158]
cdq
idiv dword [ebp - 0x588]
and dword [ebp - 0x578], ebx
test eax, eax
je 0x4183a7
mov ebx, dword [ebp - 0x578]
push ebx
call fcn.00416737
push eax
lea ecx, [ebp - 0x58]
call fcn.00413f00
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
jb 0x41809c
mov eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x418297
push 0x40a654
lea ecx, [ebp - 0x58]
call fcn.0041479e
push 0x40a5d0
lea ecx, [ebp - 0x58]
call fcn.0041479e
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xc0]
call fcn.00413f42
or dword [ebp - 0xa8], 0xffffffff
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 0x10
push eax
push eax
lea ecx, [ebp - 0x570]
call fcn.00416d59
jmp 0x418262
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00413f00
push ebx
mov byte [ebp - 4], 0x11
call fcn.00416737
push eax
lea ecx, [ebp - 0x40]
call fcn.00413f00
push 0x40a024
lea edx, [ebp - 0x40]
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xa0]
call fcn.0041430b
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x13
push ecx
mov edx, eax
lea ecx, [ebp - 0x88]
call fcn.004143e5
push eax
lea ecx, [ebp - 0x40]
call fcn.00413e92
lea ecx, [ebp - 0x88]
call fcn.00410a1a
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 0x12
call fcn.00410a1a
mov eax, dword [ebp - 0x584]
lea edx, [ebp - 0x40]
mov dword [ebp - 0x588], eax
lea ecx, [ebp - 0x590]
lea eax, [ebp - 0x588]
push eax
call fcn.0041d3b0
mov byte [ebp - 4], 0x14
mov edi, dword [ebp - 0x590]
mov ecx, edi
push 0
call fcn.004215bf
test al, al
je 0x41820e
mov eax, dword [edi + 0x100]
cmp eax, esi
jle 0x4181ac
mov esi, eax
lea eax, [ebp - 0x578]
mov ecx, edi
push eax
call fcn.00423719
test al, al
je 0x4181fa
cmp dword [0x46418c], 0
je 0x4181fa
call fcn.00416724
cmp dword [ebp - 0x578], eax
je 0x4181fa
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x4181e0
mov eax, dword [ebp - 0x40]
push eax
push 0x7e5
push 0x464120
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
lea eax, [ebp - 0x590]
push eax
lea ecx, [ebp - 0x59c]
call fcn.00419fb1
jmp 0x418234
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
jb 0x41821a
mov eax, dword [ebp - 0x40]
push eax
push 0x7d5
push 0x464120
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
mov ecx, dword [ebp - 0x58c]
test ecx, ecx
je 0x418243
call fcn.004113df
lea ecx, [ebp - 0x40]
call fcn.00410a1a
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0x10
call fcn.00410a1a
lea ecx, [ebp - 0x570]
call fcn.00416ea7
lea ecx, [ebp - 0x318]
call fcn.00416e29
lea eax, [ebp - 0x318]
push eax
lea ecx, [ebp - 0x570]
call fcn.00416e6e
test al, al
jne 0x4180f7
lea ecx, [ebp - 0xc0]
call fcn.00416f14
jmp 0x41836f
cmp eax, 0xffffffff
je 0x41836f
mov eax, dword [ebp - 0x584]
lea edx, [ebp - 0x58]
mov dword [ebp - 0x588], eax
lea ecx, [ebp - 0x18]
lea eax, [ebp - 0x588]
push eax
call fcn.0041d3b0
mov byte [ebp - 4], 0x15
mov edi, dword [ebp - 0x18]
mov ecx, edi
push 0
call fcn.004215bf
test al, al
je 0x41833d
mov eax, dword [edi + 0x100]
cmp eax, esi
jle 0x4182de
mov esi, eax
lea eax, [ebp - 0x57c]
mov ecx, edi
push eax
call fcn.00423719
test al, al
je 0x41832c
cmp dword [0x46418c], 0
je 0x41832c
call fcn.00416724
cmp dword [ebp - 0x57c], eax
je 0x41832c
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
jb 0x418312
mov eax, dword [ebp - 0x58]
push eax
push 0x7e5
push 0x464120
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x59c]
call fcn.00419fb1
jmp 0x418363
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
jb 0x418349
mov eax, dword [ebp - 0x58]
push eax
push 0x7d5
push 0x464120
call fcn.0041105c
add esp, 0xc
mov byte [ebp - 0x571], 0
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x41836f
call fcn.004113df
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xe
call fcn.00410a1a
mov eax, dword [0x46415c]
inc ebx
sub eax, dword [0x464158]
push 0x18
cdq
pop ecx
idiv ecx
cmp ebx, eax
jb 0x41807d
mov ebx, dword [ebp - 0x594]
mov edi, dword [ebp - 0x59c]
mov ecx, dword [ebp - 0x598]
mov eax, dword [ebp - 0x584]
mov dword [eax], esi
cmp byte [0x464157], 0
je 0x4183c1
push 3
pop edx
cmp esi, edx
jge 0x4183c1
mov dword [eax], edx
mov esi, edi
cmp esi, ecx
je 0x41845a
mov edi, eax
mov eax, dword [esi]
cmp dword [eax + 0x14], 8
jb 0x4183d7
mov eax, dword [eax]
push eax
push 1
push 0x464120
call fcn.00411073
pop ecx
mov ecx, esp
push esi
call fcn.00413bad
lea ecx, [ebp - 0x20]
call fcn.0041683f
lea eax, [ebp - 0x2d0]
mov byte [ebp - 4], 0x16
push eax
invalid