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

Disassembly:
push 0x7c
mov eax, 0x5dde69
call fcn.004c281e
mov esi, ecx
lea edi, [esi + 0x9c]
cmp dword [edi + 0x14], 8
jb 0x46a076
mov eax, dword [edi]
jmp 0x46a078
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x46a092
cmp dword [esi + 0xc4], eax
jne 0x46a092
xor al, al
jmp 0x46a3dc
mov al, byte [esi + 0x68]
test al, al
je 0x46a09f
cmp dword [esi + 0x7c], 0
je 0x46a08b
xor ebx, ebx
test al, al
je 0x46a172
cmp byte [esi + 0x69], bl
je 0x46a105
lea eax, [esi + 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00419470
pop ecx
pop ecx
mov edx, eax
mov dword [ebp - 4], ebx
cmp dword [edx + 0x14], 0x10
jb 0x46a0ca
mov edx, dword [edx]
lea eax, [esi + 0x6c]
cmp dword [eax + 0x14], 0x10
jb 0x46a0d5
mov eax, dword [eax]
lea ecx, [esi + 0xb4]
cmp dword [ecx + 0x14], 0x10
jb 0x46a0e3
mov ecx, dword [ecx]
push edx
mov edx, dword [esi + 0xc4]
push eax
call fcn.0047415e
or dword [ebp - 4], 0xffffffff
mov bl, al
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.004051e0
jmp 0x46a3da
cmp dword [edi + 0x14], 8
jb 0x46a10d
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x46a3da
lea ecx, [esi + 0x6c]
cmp dword [ecx + 0x14], 0x10
jb 0x46a129
mov ecx, dword [ecx]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x48], eax
test eax, eax
je 0x46a166
lea ecx, [esi + 0x30]
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.00419470
pop ecx
pop ecx
xor ebx, ebx
inc ebx
mov dword [ebp - 4], ebx
cmp dword [eax + 0x14], 0x10
jb 0x46a155
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 0x46a3da
cmp byte [esi + 0x69], bl
je 0x46a37e
lea ecx, [esi + 0xb4]
cmp dword [ecx + 0x14], 0x10
jb 0x46a189
mov ecx, dword [ecx]
mov edx, dword [esi + 0xc4]
call fcn.00468f94
mov edi, eax
test edi, edi
je 0x46a3da
lea eax, [ebp - 0x44]
mov dword [0xa3bde0], edi
push eax
mov ecx, esi
mov dword [0xa3bde4], edi
call fcn.00469dad
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.00419490
pop ecx
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 3
push eax
mov ecx, 0xa3bdb0
call fcn.00469a24
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.0041cbd0
push 0xffffffffffffffff
push ebx
push 0xa3bdb0
mov ecx, edx
call fcn.00405b70
cmp dword [esi + 0x10], ebx
je 0x46a23c
push 0x61fd88
mov ecx, 0xa3bdc8
call fcn.00404ff0
push 0xffffffffffffffff
push ebx
push esi
mov ecx, 0xa3bdc8
call fcn.004066d0
push 0x4738a3
push 0xa3bdac
call fcn.004fa430
push 0x47391a
push 0xa3be18
call fcn.004fa430
push 0x473975
push 0xa3be1c
call fcn.004fa430
push 0x4739b4
push 0xa3be20
call fcn.004fa430
push 0x4739c8
push 0xa3be24
call fcn.004fa430
push 0x4739e4
push 0xa3be28
call fcn.004fa430
add esp, 0x30
mov dword [ebp - 4], 4
cmp dword [edi + 0x14], ebx
jne 0x46a2b5
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x46a2b5
cmp dword [edi + 0x18], ebx
je 0x46a2b5
call eax
jmp 0x46a2b8
or eax, 0xffffffff
shr eax, 0x1f
xor al, 1
mov dword [ebp - 0x48], eax
cmp dword [edi + 0x10], ebx
je 0x46a2d4
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 0x46a303
mov esi, ebx
cmp dword [edi + 0xc], ebx
jle 0x46a2fa
mov eax, dword [edi + 8]
cmp dword [eax + esi*4], 0
je 0x46a2f4
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 0x46a2e0
push dword [edi + 8]
call fcn.00512cbd
pop ecx
cmp dword [edi + 4], 0
je 0x46a318
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.004fa680
mov dword [esp], 0xa3be18
call fcn.004fa680
mov dword [esp], 0xa3be1c
call fcn.004fa680
mov dword [esp], 0xa3be20
call fcn.004fa680
mov dword [esp], 0xa3be24
call fcn.004fa680
mov dword [esp], 0xa3be28
call fcn.004fa680
mov bl, byte [ebp - 0x48]
or dword [ebp - 4], 0xffffffff
pop ecx
jmp 0x46a3da
push 0x38
lea eax, [ebp - 0x84]
push ebx
push eax
call fcn.0050b8e0
add esp, 0xc
mov dword [ebp - 0x88], 0x3c
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x84], 0x540
jb 0x46a3ac
mov edi, dword [edi]
add esi, 0x30
mov dword [ebp - 0x78], edi
cmp dword [esi + 0x14], 8
jb 0x46a3ba
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.004c27c8
ret