Function at 0x46a0ca
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push 0x7c
mov eax, 0x5dde79
call fcn.004c2889
mov esi, ecx
lea edi, [esi + 0x9c]
cmp dword [edi + 0x14], 8
jb 0x46a0e8
mov eax, dword [edi]
jmp 0x46a0ea
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x46a104
cmp dword [esi + 0xc4], eax
jne 0x46a104
xor al, al
jmp 0x46a44e
mov al, byte [esi + 0x68]
test al, al
je 0x46a111
cmp dword [esi + 0x7c], 0
je 0x46a0fd
xor ebx, ebx
test al, al
je 0x46a1e4
cmp byte [esi + 0x69], bl
je 0x46a177
lea eax, [esi + 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00419460
pop ecx
pop ecx
mov edx, eax
mov dword [ebp - 4], ebx
cmp dword [edx + 0x14], 0x10
jb 0x46a13c
mov edx, dword [edx]
lea eax, [esi + 0x6c]
cmp dword [eax + 0x14], 0x10
jb 0x46a147
mov eax, dword [eax]
lea ecx, [esi + 0xb4]
cmp dword [ecx + 0x14], 0x10
jb 0x46a155
mov ecx, dword [ecx]
push edx
mov edx, dword [esi + 0xc4]
push eax
call fcn.004741d1
or dword [ebp - 4], 0xffffffff
mov bl, al
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.004051e0
jmp 0x46a44c
cmp dword [edi + 0x14], 8
jb 0x46a17f
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x46a44c
lea ecx, [esi + 0x6c]
cmp dword [ecx + 0x14], 0x10
jb 0x46a19b
mov ecx, dword [ecx]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x46a1d8
lea ecx, [esi + 0x30]
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.00419460
pop ecx
pop ecx
xor ebx, ebx
inc ebx
mov dword [ebp - 4], ebx
cmp dword [eax + 0x14], 0x10
jb 0x46a1c7
mov eax, dword [eax]
push eax
call dword [ebp - 0x48]
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.004051e0
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x46a44c
cmp byte [esi + 0x69], bl
je 0x46a3f0
lea ecx, [esi + 0xb4]
cmp dword [ecx + 0x14], 0x10
jb 0x46a1fb
mov ecx, dword [ecx]
mov edx, dword [esi + 0xc4]
call fcn.00469006
mov edi, eax
test edi, edi
je 0x46a44c
lea eax, [ebp - 0x44]
mov dword [0xa3bde0], edi
push eax
mov ecx, esi
mov dword [0xa3bde4], edi
call fcn.00469e1f
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 2
call fcn.00404f90
push ebx
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
call fcn.00419480
pop ecx
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 3
push eax
mov ecx, 0xa3bdb0
call fcn.00469a96
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.00405040
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.004051e0
mov edx, 0xa3bdc8
add esi, 0x30
mov ecx, edx
call fcn.0041cbb0
push 0xffffffffffffffff
push ebx
push 0xa3bdb0
mov ecx, edx
call fcn.00405b70
cmp dword [esi + 0x10], ebx
je 0x46a2ae
push 0x61fd74
mov ecx, 0xa3bdc8
call fcn.00404ff0
push 0xffffffffffffffff
push ebx
push esi
mov ecx, 0xa3bdc8
call fcn.004066d0
push 0x473916
push 0xa3bdac
call fcn.004fa4a0
push 0x47398d
push 0xa3be18
call fcn.004fa4a0
push 0x4739e8
push 0xa3be1c
call fcn.004fa4a0
push 0x473a27
push 0xa3be20
call fcn.004fa4a0
push 0x473a3b
push 0xa3be24
call fcn.004fa4a0
push 0x473a57
push 0xa3be28
call fcn.004fa4a0
add esp, 0x30
mov dword [ebp - 4], 4
cmp dword [edi + 0x14], ebx
jne 0x46a327
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x46a327
cmp dword [edi + 0x18], ebx
je 0x46a327
call eax
jmp 0x46a32a
or eax, 0xffffffff
shr eax, 0x1f
xor al, 1
mov dword [ebp - 0x48], eax
cmp dword [edi + 0x10], ebx
je 0x46a346
mov eax, dword [edi]
push ebx
push ebx
push dword [edi + 4]
mov eax, dword [eax + 0x28]
add eax, dword [edi + 4]
call eax
cmp dword [edi + 8], ebx
je 0x46a375
mov esi, ebx
cmp dword [edi + 0xc], ebx
jle 0x46a36c
mov eax, dword [edi + 8]
cmp dword [eax + esi*4], 0
je 0x46a366
push dword [edi + 0x28]
push dword [eax + esi*4]
call dword [edi + 0x24]
pop ecx
pop ecx
inc esi
cmp esi, dword [edi + 0xc]
jl 0x46a352
push dword [edi + 8]
call fcn.00512cbd
pop ecx
cmp dword [edi + 4], 0
je 0x46a38a
push 0x8000
push ebx
push dword [edi + 4]
call dword [0x5e7cf4]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0xa3bdac
mov dword [ebp - 4], 5
call fcn.004fa6f0
mov dword [esp], 0xa3be18
call fcn.004fa6f0
mov dword [esp], 0xa3be1c
call fcn.004fa6f0
mov dword [esp], 0xa3be20
call fcn.004fa6f0
mov dword [esp], 0xa3be24
call fcn.004fa6f0
mov dword [esp], 0xa3be28
call fcn.004fa6f0
mov bl, byte [ebp - 0x48]
or dword [ebp - 4], 0xffffffff
pop ecx
jmp 0x46a44c
push 0x38
lea eax, [ebp - 0x84]
push ebx
push eax
call fcn.0050b930
add esp, 0xc
mov dword [ebp - 0x88], 0x3c
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x84], 0x540
jb 0x46a41e
mov edi, dword [edi]
add esi, 0x30
mov dword [ebp - 0x78], edi
cmp dword [esi + 0x14], 8
jb 0x46a42c
mov esi, dword [esi]
lea eax, [ebp - 0x88]
mov dword [ebp - 0x74], esi
push eax
mov dword [ebp - 0x6c], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
dec eax
neg eax
sbb al, al
inc al
mov bl, al
mov al, bl
call fcn.004c2833
ret