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

Disassembly:
push 0x7c
mov eax, 0x5dde6f
call fcn.004c299a
mov esi, ecx
lea edi, [esi + 0x9c]
cmp dword [edi + 0x14], 8
jb 0x46a215
mov eax, dword [edi]
jmp 0x46a217
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x46a231
cmp dword [esi + 0xc4], eax
jne 0x46a231
xor al, al
jmp 0x46a57b
mov al, byte [esi + 0x68]
test al, al
je 0x46a23e
cmp dword [esi + 0x7c], 0
je 0x46a22a
xor ebx, ebx
test al, al
je 0x46a311
cmp byte [esi + 0x69], bl
je 0x46a2a4
lea eax, [esi + 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00419930
pop ecx
pop ecx
mov edx, eax
mov dword [ebp - 4], ebx
cmp dword [edx + 0x14], 0x10
jb 0x46a269
mov edx, dword [edx]
lea eax, [esi + 0x6c]
cmp dword [eax + 0x14], 0x10
jb 0x46a274
mov eax, dword [eax]
lea ecx, [esi + 0xb4]
cmp dword [ecx + 0x14], 0x10
jb 0x46a282
mov ecx, dword [ecx]
push edx
mov edx, dword [esi + 0xc4]
push eax
call fcn.004742fc
or dword [ebp - 4], 0xffffffff
mov bl, al
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.00405680
jmp 0x46a579
cmp dword [edi + 0x14], 8
jb 0x46a2ac
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x46a579
lea ecx, [esi + 0x6c]
cmp dword [ecx + 0x14], 0x10
jb 0x46a2c8
mov ecx, dword [ecx]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x46a305
lea ecx, [esi + 0x30]
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.00419930
pop ecx
pop ecx
xor ebx, ebx
inc ebx
mov dword [ebp - 4], ebx
cmp dword [eax + 0x14], 0x10
jb 0x46a2f4
mov eax, dword [eax]
push eax
call dword [ebp - 0x48]
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.00405680
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x46a579
cmp byte [esi + 0x69], bl
je 0x46a51d
lea ecx, [esi + 0xb4]
cmp dword [ecx + 0x14], 0x10
jb 0x46a328
mov ecx, dword [ecx]
mov edx, dword [esi + 0xc4]
call fcn.00469133
mov edi, eax
test edi, edi
je 0x46a579
lea eax, [ebp - 0x44]
mov dword [0xa3b5e0], edi
push eax
mov ecx, esi
mov dword [0xa3b5e4], edi
call fcn.00469f4c
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 2
call fcn.00405430
push ebx
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x2c]
call fcn.00419950
pop ecx
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 3
push eax
mov ecx, 0xa3b5b0
call fcn.00469bc3
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.004054e0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.00405680
mov edx, 0xa3b5c8
add esi, 0x30
mov ecx, edx
call fcn.0041d080
push 0xffffffffffffffff
push ebx
push 0xa3b5b0
mov ecx, edx
call fcn.00406020
cmp dword [esi + 0x10], ebx
je 0x46a3db
push 0x61fd60
mov ecx, 0xa3b5c8
call fcn.00405490
push 0xffffffffffffffff
push ebx
push esi
mov ecx, 0xa3b5c8
call fcn.00406b80
push 0x473a41
push 0xa3b5ac
call fcn.004fa590
push 0x473ab8
push 0xa3b618
call fcn.004fa590
push 0x473b13
push 0xa3b61c
call fcn.004fa590
push 0x473b52
push 0xa3b620
call fcn.004fa590
push 0x473b66
push 0xa3b624
call fcn.004fa590
push 0x473b82
push 0xa3b628
call fcn.004fa590
add esp, 0x30
mov dword [ebp - 4], 4
cmp dword [edi + 0x14], ebx
jne 0x46a454
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x46a454
cmp dword [edi + 0x18], ebx
je 0x46a454
call eax
jmp 0x46a457
or eax, 0xffffffff
shr eax, 0x1f
xor al, 1
mov dword [ebp - 0x48], eax
cmp dword [edi + 0x10], ebx
je 0x46a473
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 0x46a4a2
mov esi, ebx
cmp dword [edi + 0xc], ebx
jle 0x46a499
mov eax, dword [edi + 8]
cmp dword [eax + esi*4], 0
je 0x46a493
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 0x46a47f
push dword [edi + 8]
call fcn.00512dcd
pop ecx
cmp dword [edi + 4], 0
je 0x46a4b7
push 0x8000
push ebx
push dword [edi + 4]
call dword [0x5e7d14]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push 0xa3b5ac
mov dword [ebp - 4], 5
call fcn.004fa7e0
mov dword [esp], 0xa3b618
call fcn.004fa7e0
mov dword [esp], 0xa3b61c
call fcn.004fa7e0
mov dword [esp], 0xa3b620
call fcn.004fa7e0
mov dword [esp], 0xa3b624
call fcn.004fa7e0
mov dword [esp], 0xa3b628
call fcn.004fa7e0
mov bl, byte [ebp - 0x48]
or dword [ebp - 4], 0xffffffff
pop ecx
jmp 0x46a579
push 0x38
lea eax, [ebp - 0x84]
push ebx
push eax
call fcn.0050ba40
add esp, 0xc
mov dword [ebp - 0x88], 0x3c
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x84], 0x540
jb 0x46a54b
mov edi, dword [edi]
add esi, 0x30
mov dword [ebp - 0x78], edi
cmp dword [esi + 0x14], 8
jb 0x46a559
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.004c2944
ret