Function at 0x417e90
Capabilities:
Check if file exists

Disassembly:
sub esp, 8
push esi
mov esi, dword [esp + 0x10]
push edi
mov edi, ecx
mov dword [esp + 8], edi
test esi, esi
jne 0x417ead
pop edi
xor eax, eax
pop esi
add esp, 8
ret 0xc
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417eb2
sub eax, edx
sar eax, 1
je 0x417ea3
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push esi
call ebp
test eax, eax
je 0x417efd
mov edx, dword [esp + 0x1c]
mov eax, esi
sub edx, esi
lea esp, [esp]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x417ee0
pop ebp
pop edi
mov eax, 1
pop esi
add esp, 8
ret 0xc
mov ecx, dword [edi + 8]
push ebx
test ecx, ecx
je 0x417fe5
mov eax, dword [edi + 0xc]
cmp ecx, eax
jg 0x417fe5
xor ebp, ebp
test eax, eax
jle 0x41833f
mov ebx, dword [esp + 0x20]
jmp 0x417f28
mov esi, dword [esp + 0x1c]
mov eax, esi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417f30
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, dword [edi + 4]
mov eax, dword [eax + ebp*4]
lea esi, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417f50
sub eax, esi
sar eax, 1
add eax, edx
cmp eax, dword [esp + 0x24]
jae 0x417fcf
mov eax, dword [esp + 0x1c]
mov edx, ebx
sub edx, eax
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x417f70
mov ecx, dword [edi + 4]
mov eax, dword [ecx + ebp*4]
mov edx, eax
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417f87
mov edi, ebx
sub eax, edx
add edi, 0xfffffffe
lea esp, [esp]
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x417fa0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41831f
mov edi, dword [esp + 0x10]
inc ebp
cmp ebp, dword [edi + 0xc]
jl 0x417f24
pop ebx
pop ebp
pop edi
xor eax, eax
pop esi
add esp, 8
ret 0xc
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417ff0
sub eax, edx
sar eax, 1
add eax, 4
cmp eax, dword [esp + 0x24]
jae 0x41833f
mov edi, dword [esp + 0x20]
mov ebx, esi
mov esi, edi
mov eax, ebx
sub esi, ebx
jmp 0x418020
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418020
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x418034
mov edx, dword [str..com]
mov dword [eax], edx
mov ecx, dword [0x435910]
mov dword [eax + 4], ecx
mov dx, word [0x435914]
push edi
mov word [eax + 8], dx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418070
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x418084
mov ecx, dword [str..exe]
mov dword [eax], ecx
mov edx, dword [0x435904]
mov dword [eax + 4], edx
mov cx, word [0x435908]
push edi
mov word [eax + 8], cx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4180c0
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4180d4
mov edx, dword [str..bat]
mov dword [eax], edx
mov ecx, dword [0x4358f8]
mov dword [eax + 4], ecx
mov dx, word [0x4358fc]
push edi
mov word [eax + 8], dx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418110
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x418124
mov ecx, dword [str..cmd]
mov dword [eax], ecx
mov edx, dword [0x4358ec]
mov dword [eax + 4], edx
mov cx, word [0x4358f0]
push edi
mov word [eax + 8], cx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418160
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x418174
mov edx, dword [str..vbs]
mov dword [eax], edx
mov ecx, dword [0x4358e0]
mov dword [eax + 4], ecx
mov dx, word [0x4358e4]
push edi
mov word [eax + 8], dx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4181b0
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4181c4
mov ecx, dword [str..vbe]
mov dword [eax], ecx
mov edx, dword [0x4358d4]
mov dword [eax + 4], edx
mov cx, word [0x4358d8]
push edi
mov word [eax + 8], cx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418200
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x418214
mov edx, dword [0x4358c8]
mov dword [eax], edx
mov ecx, dword [0x4358cc]
push edi
mov dword [eax + 4], ecx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
mov edi, edi
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418240
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x418254
mov edx, dword [str..jse]
mov dword [eax], edx
mov ecx, dword [0x4358c0]
mov dword [eax + 4], ecx
mov dx, word [0x4358c4]
push edi
mov word [eax + 8], dx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
lea esp, [esp]
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418290
mov eax, edi
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4182a4
mov ecx, dword [str..wsf]
mov dword [eax], ecx
mov edx, dword [0x4358b4]
mov dword [eax + 4], edx
mov cx, word [0x4358b8]
push edi
mov word [eax + 8], cx
call ebp
test eax, eax
jne 0x41831f
mov eax, ebx
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x4182d5
mov eax, edi
add eax, 0xfffffffe
lea esp, [esp]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4182f0
mov edx, dword [str..wsh]
mov dword [eax], edx
mov ecx, dword [0x4358a8]
mov dword [eax + 4], ecx
mov dx, word [0x4358ac]
push edi
mov word [eax + 8], dx
call ebp
test eax, eax
je 0x41832e
pop ebx
pop ebp
pop edi
mov eax, 1
pop esi
add esp, 8
ret 0xc
mov eax, ebx
movzx ecx, word [eax]
mov word [esi + eax], cx
add eax, 2
test cx, cx
jne 0x418330
pop ebx
pop ebp
pop edi
xor eax, eax
pop esi
add esp, 8
ret 0xc