Function at 0x40ec30
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5bc5e8
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x634274]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x130], eax
call fcn.00460351
test al, al
je 0x40ec89
sti
vmaxps ymm4, ymm7, ymm1
push ebx
or cl, byte [eax + ebx*8]
add cl, byte [0x9859bd56]
xchg esi, eax
jns 0x167ad4e7
call fcn.004602c7
test al, al
je 0x40eca9
add eax, 0x74c08400
pop ss
aad 0x91
dec ebp
add al, 0x93
pop ebx
scasd eax, dword es:[edi]
test dword [edi + 0x54fbbfe6], 0x900abe72
retf 0xc1d3
mov dword [ebp - 0x12c], 0
call fcn.004600e4
test al, al
je 0x40eccc
or edi, edx
inc esp
pop ebx
mov byte [edi], bl
jg 0x40ed00
sbb eax, 0x1dea88a4
test bl, ah
out dx, eax
call fcn.004601b3
test al, al
je 0x40ece9
daa
dec esi
rcr esp, 1
pop esp
pop ebx
ja 0x40ed1b
mov bl, 0xa8
scasb al, byte es:[edi]
jns 0x40ecd1
out 0x31, al
pop esp
wait
iretd
mov eax, dword [ebp - 0x120]
add eax, 0x10
mov dword [ebp - 0x124], 0
push eax
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x88]
push eax
call fcn.0046e47d
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0
invalid
cld
add byte [eax], al
add byte [eax], al
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.004713b7
cmp dword [ebp - 0xa4], 8
lea eax, [ebp - 0xb8]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0xb8]
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.00471278
lea eax, [ebp - 0xe8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0046eb27
add esp, 0x20
mov byte [ebp - 4], 3
call fcn.004601b3
test al, al
je 0x40ed8f
invalid
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0046ca41
lea eax, [ebp - 0xd0]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0046eb27
add esp, 0x10
mov eax, dword [ebp - 0x120]
mov byte [ebp - 4], 5
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x40ef48
nop dword [eax]
cmp dword [esi + 0x14], 0x10
jb 0x40edea
mov edx, dword [esi]
jmp 0x40edec
mov edx, esi
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x40ee07
xor ecx, ecx
jmp 0x40ee19
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ee10
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.0040e000
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x14], 0x10
mov ebx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x48]
cmovae edx, ebx
cmp eax, edi
cmovb edi, eax
mov eax, dword [ebp - 0x14]
test edi, edi
je 0x40eea5
sub edi, 4
jb 0x40ee63
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40ee68
add edx, 4
add ecx, 4
sub edi, 4
jae 0x40ee52
cmp edi, 0xfffffffc
je 0x40ee9c
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x40ee95
cmp edi, 0xfffffffd
je 0x40ee9c
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x40ee95
cmp edi, 0xfffffffe
je 0x40ee9c
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x40ee95
cmp edi, 0xffffffff
je 0x40ee9c
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x40ee9c
sbb eax, eax
or eax, 1
jmp 0x40ee9e
xor eax, eax
test eax, eax
jne 0x40eeb1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x40eeb1
jbe 0x40eef9
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x40eee5
inc eax
cmp eax, 0x1000
jb 0x40eedc
test byte [ebp - 0x28], 0x1f
jne 0x40ef16
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x40ef16
sub ebx, eax
cmp ebx, 4
jb 0x40ef16
cmp ebx, 0x23
ja 0x40ef16
mov ebx, eax
push ebx
call fcn.00455659
add esp, 4
mov eax, dword [ebp - 0x120]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x40ede0
jmp 0x40ef48
mov dword [ebp - 0x12c], 1
cmp eax, 0x10
jb 0x40ef48
inc eax
cmp eax, 0x1000
jb 0x40ef3f
test byte [ebp - 0x28], 0x1f
je 0x40ef1b
call fcn.0048a351
mov eax, dword [ebx - 4]
cmp eax, ebx
jb 0x40ef27
call fcn.0048a351
sub ebx, eax
cmp ebx, 4
jae 0x40ef33
call fcn.0048a351
cmp ebx, 0x23
jbe 0x40ef3d
call fcn.0048a351
mov ebx, eax
push ebx
call fcn.00455659
add esp, 4
call fcn.004601f8
test al, al
je 0x40ef65
jne 0x40ef7e
outsd dx, dword [esi]
jmp 0x40ef7e
in al, dx
aam 0xe8
aaa
sbb byte [0x74c08400], al
adc bh, dl
call fcn.004607a1
test al, al
je 0x40ef7e
xlatb
aas
cdq
shr dword [edi], 1
or al, 0x7a
scasd eax, dword es:[edi]
push ds
int3
cmp dword [ebp - 0x12c], 0
jne 0x40ef8e
xor esi, esi
jmp 0x40f659
call fcn.00460420
test al, al
je 0x40efa7
test byte [eax - 0x5a], bl
in eax, dx
pop edi
salc
jo 0x40ef6f
outsb dx, byte [esi]
ja 0x40f008
out 0x46, al
ficomp dword [ebx + 0x17]
call fcn.004603db
test al, al
je 0x40efc7
xor byte [ecx], dh
je 0x40ef63
cmp esi, dword ss:[ebx]
invalid
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x40eff2
add byte [eax], al
add bh, al
inc ecx
adc al, 0
add byte [eax], al
add bh, al
inc ecx
adc al, 7
add byte [eax], al
add byte [ebx - 0x38f7eb87], al
inc ecx
adc byte [eax], al
add byte [eax], al
add byte [edx + 4], dh
mov eax, dword [ecx]
jmp 0x40eff4
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xb8]
push edx
push eax
call fcn.00402760
push dword [ebp - 0x130]
mov edi, dword [ebp - 0x120]
lea eax, [ebp - 0xa0]
push eax
mov ecx, edi
call fcn.0040eaa0
cmp dword [ebp + 0xc], 0
mov byte [ebp - 4], 6
invalid
je 0x40f14c
call fcn.00460648
test al, al
je 0x40f05d
adc dword [eax], edi
stosb byte es:[edi], al
outsd dx, dword [esi]
cmp byte [esi - 0x30], bh
cmp byte [edi], bh
mov ebp, 0x4f36799c
push esi
xchg edx, eax
je 0x40efde
loope 0x40f02a
jecxz 0x40efd0
add al, 0x6b
mov byte [0x7f7a4b8a], al
mov edi, dword [ebp - 0x120]
call fcn.00460603
test al, al
je 0x40f076
and eax, 0xe4b7006a
pop eax
mov al, byte [0x24db2678]
out 0xd0, al
mov ebx, 0x1657e859
add eax, 0x74c08400
sbb eax, 0xc4280630
call fcn.004606d2
test al, al
je 0x40f09c
xor byte [esi], al
sub ah, al
jae 0x40f0c4
daa
ja 0x40f018
imul edx, dword [edx], 0xfffffff1
dec esi
fadd qword [edx + 0x6d510425]
inc esp
out 0x60, al
jge 0x40f076
mov bl, 0x33
cmp dword [edi + 0xb0], 0
je 0x40f0d1
push 1
lea eax, [ebp - 0xa0]
push eax
sub esp, 0x18
lea ecx, [edi + 0x10]
mov eax, esp
push ecx
push eax
call fcn.0046e47d
mov ecx, dword [edi + 0xb0]
add esp, 8
les ecx, [eax]
push dword [ebp - 0x130]
call fcn.0040c1b0
cmp dword [ebp - 0x8c], 8
lea eax, [ebp - 0xa0]
cmovae eax, dword [ebp - 0xa0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40f4b8
lea eax, [ebp - 0x124]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x40f126
mov eax, dword [ecx]
jmp 0x40f128
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0xa0]
push edx
push eax
call fcn.00402760
call fcn.004644a1
add esp, 0x1c
mov dword [edi + 0x64], eax
jmp 0x40f4b8
call fcn.004606d2
test al, al
je 0x40f170
dec edx
outsd dx, dword [esi]
or dword [ecx + 0x18ec9d71], ecx
invalid
call fcn.004604aa
test al, al
je 0x40f18a
pop esp
jns 0x40f1e7
xor al, 0xf6
dec eax
fcmovu st(0), st(2)
cmp ebp, 0x16d34965
sub al, 0x57
xor eax, 0x51612e8
add byte [eax + eax*8 - 0x2cc4ef8c], al
call fcn.004607a1
test al, al
je 0x40f1a3
cmp edx, ebx
lahf
ret 0xe8f5
mov ecx, dword [ebp - 0x128]
push 0xffffffffffffffff
push 0
push ecx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.0040ded0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
fadd dword [eax]
call fcn.0040ded0
lea eax, [ebp - 0x118]
mov byte [ebp - 4], 8
push str.08711353036756041159184368452525
push eax
call fcn.00470d08
mov esi, eax
lea eax, [ebp - 0x100]
mov byte [ebp - 4], 9
push str.06106125065522201855525658690245
push eax
call fcn.00470d08
push esi
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push eax
call fcn.0046dd78
mov eax, dword [ebp - 0xec]
add esp, 0x1c
mov byte [ebp - 4], 9
cmp eax, 0x10
jb 0x40f280
mov ecx, dword [ebp - 0x100]
inc eax
cmp eax, 0x1000
jb 0x40f277
test cl, 0x1f
je 0x40f253
call fcn.0048a351
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x40f25f
call fcn.0048a351
sub ecx, eax
cmp ecx, 4
jae 0x40f26b
call fcn.0048a351
cmp ecx, 0x23
jbe 0x40f275
call fcn.0048a351
mov ecx, eax
push ecx
call fcn.00455659
add esp, 4
mov eax, dword [ebp - 0x104]
mov dword [ebp - 0xec], 0xf
mov dword [ebp - 0xf0], 0
mov byte [ebp - 0x100], 0
mov byte [ebp - 4], 8
cmp eax, 0x10
jb 0x40f2ef
mov ecx, dword [ebp - 0x118]
inc eax
cmp eax, 0x1000
jb 0x40f2e6
test cl, 0x1f
je 0x40f2c2
call fcn.0048a351
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x40f2ce
call fcn.0048a351
sub ecx, eax
cmp ecx, 4
jae 0x40f2da
call fcn.0048a351
cmp ecx, 0x23
jbe 0x40f2e4
call fcn.0048a351
mov ecx, eax
push ecx
call fcn.00455659
add esp, 4
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov edi, dword [ebp - 0x18]
lea edx, [ebp - 0x40]
cmovae ecx, dword [ebp - 0x28]
mov esi, edi
cmp dword [ebp - 0x2c], 0x10
mov ebx, dword [ebp - 0x30]
cmovae edx, dword [ebp - 0x40]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x40f370
sub esi, 4
jb 0x40f331
nop dword [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40f336
add edx, 4
add ecx, 4
sub esi, 4
jae 0x40f320
cmp esi, 0xfffffffc
je 0x40f36a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x40f363
cmp esi, 0xfffffffd
je 0x40f36a
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x40f363
cmp esi, 0xfffffffe
je 0x40f36a
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x40f363
cmp esi, 0xffffffff
je 0x40f36a
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x40f36a
sbb eax, eax
or eax, 1
jmp 0x40f36c
xor eax, eax
test eax, eax
jne 0x40f3c0
cmp ebx, edi
jb 0x40f3c0
ja 0x40f3c0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x40f3a1
mov eax, dword [ecx]
jmp 0x40f3a3
mov eax, ecx
push 0xffffffffffffffff
push 0
push dword [ebp - 0x128]
mov byte [eax], 0
call fcn.0040ded0
mov ecx, dword [ebp - 0x120]
jmp 0x40f447
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], 0
jb 0x40f3eb
mov eax, dword [ecx]
jmp 0x40f3ed
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.0040ded0
mov edi, dword [ebp - 0x120]
mov ecx, edi
call fcn.0040e6f0
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x40f45a
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x14], 0xf
cmp dword [ecx + 0x14], 0x10
mov dword [ecx + 0x10], eax
jb 0x40f433
mov eax, dword [ecx]
jmp 0x40f435
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x28]
push 0
push eax
call fcn.0040ded0
mov ecx, edi
call fcn.0040e6f0
mov dword [ebp - 0x124], eax
test eax, eax
jne 0x40f45a
push 1
jmp 0x40f45c
push 2
cmp dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x70]
cmovae eax, dword [ebp - 0x70]
push eax
push 1
push 1
call fcn.0040d490
mov ecx, eax
call fcn.00419a10
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x40f48d
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0040aa40
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 6
cmp eax, 0x10
jb 0x40f4b8
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.0040aa40
call fcn.004604ef
test al, al
je 0x40f4d6
mov byte [ecx], al
push ebx
in eax, dx
call 0xaf06b9d6
inc ebx
mov eax, 0xfe64866b
invalid
call fcn.00460465
test al, al
je 0x40f4fd
out dx, al
or al, 0x99
inc byte [ebx]
xchg edx, eax
or cl, cl
out dx, al
cmpsd dword [esi], dword es:[edi]
daa
div dword [ebx - 0x6ce98278]
and ecx, dword [edx]
and ebx, dword [edx + 0x2eb674ee]
mov ch, byte [ebx - 0x175826a9]
adc eax, 0x84000512
sal byte [eax - 0x74], 0x11
call fcn.00460717
test al, al
je 0x40f526
mov word [ecx], ss
stosb byte es:[edi], al
add bl, ch
push eax
movups xmm0, xmmword [esi]
invalid
cmp dword [ebp - 0x124], 0
jne 0x40f536
xor esi, esi
jmp 0x40f61e
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
call fcn.004607a1
test al, al
je 0x40f570
sbb ah, byte [ebx - 0x56]
int3
call fcn.00460579
test al, al
je 0x40f595
mov eax, gs
in al, 0xfc
loope 0x40f5ec
movsd dword es:[edi], dword [esi]
into
mov esi, fs
and eax, 0x868f13eb
mov bh, 2
sbb byte [eax - 0x17c3b9f9], al
cmp ecx, dword [ecx]
arpl bp, sp
out 0x8d, al
invalid
lea ecx, [ebp - 0x119]
call fcn.00402b80
mov ecx, dword [ebp - 0x120]
mov byte [ebp - 4], 0xb
lea eax, [ecx + 0x40]
push eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x124]
push dword [ecx + 0x64]
lea ecx, [ebp - 0x119]
call fcn.0040fd80
mov ecx, dword [ebp - 0x134]
test ecx, ecx
je 0x40f5f2
mov eax, dword [ebp - 0x138]
test eax, eax
je 0x40f5f2
push eax
push ecx
call fcn.00412050
add esp, 8
les ecx, [eax]
mov esi, eax
jmp 0x40f613
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
cmovae eax, dword [ebp - 0x88]
push eax
push 0x89
call fcn.00465785
add esp, 8
xor esi, esi
lea ecx, [ebp - 0x119]
call fcn.00483a30
mov eax, dword [ebp - 0x8c]
cmp eax, 8
jb 0x40f63c
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.00402610
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], 0
mov word [ebp - 0xa0], ax
mov eax, dword [ebp - 0x44]
cmp eax, 0x10
jb 0x40f66e
inc eax
lea ecx, [ebp - 0x58]
push eax
push dword [ebp - 0x58]
call fcn.0040aa40
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
cmp eax, 8
jb 0x40f69e
inc eax
lea ecx, [ebp - 0xd0]
push eax
push dword [ebp - 0xd0]
call fcn.00402610
xor eax, eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc0], 0
cmp eax, 0x10
jb 0x40f6d0
inc eax
lea ecx, [ebp - 0x70]
push eax
push dword [ebp - 0x70]
call fcn.0040aa40
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
cmp eax, 8
jb 0x40f700
inc eax
lea ecx, [ebp - 0xe8]
push eax
push dword [ebp - 0xe8]
call fcn.00402610
xor eax, eax
mov dword [ebp - 0xd4], 7
mov word [ebp - 0xe8], ax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xd8], 0
cmp eax, 8
jb 0x40f73b
inc eax
lea ecx, [ebp - 0xb8]
push eax
push dword [ebp - 0xb8]
call fcn.00402610
xor eax, eax
mov dword [ebp - 0xa4], 7
mov word [ebp - 0xb8], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xa8], 0
cmp eax, 8
jb 0x40f773
inc eax
lea ecx, [ebp - 0x88]
push eax
push dword [ebp - 0x88]
call fcn.00402610
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00455afe
mov esp, ebp
pop ebp
ret 0xc