Function at 0x406ec9
Capabilities:
Create process on windows
Get common file path

Disassembly:
push 0x51c
mov eax, 0x43a18b
call fcn.00438b4c
mov esi, ecx
xor edi, edi
lea eax, [ebp - 0x428]
push eax
push edi
push edi
push 0x1c
push edi
mov dword [ebp - 0x4ec], edi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4071dd
mov dword [ebp - 0x42c], 7
mov dword [ebp - 0x430], edi
mov word [ebp - 0x440], ax
mov dword [ebp - 4], edi
cmp dword [esi + 0x10], edi
sete al
test al, al
jne 0x406f31
push esi
lea ecx, [ebp - 0x4e8]
call fcn.004074fc
xor ebx, ebx
inc ebx
jmp 0x406f3f
lea ecx, [ebp - 0x4d0]
call fcn.00406c6c
push 2
pop ebx
push eax
lea ecx, [ebp - 0x458]
call fcn.00403ff0
mov dword [ebp - 4], 2
test bl, 2
je 0x406f68
push edi
push 1
lea ecx, [ebp - 0x4d0]
and ebx, 0xfffffffd
call fcn.004040a2
mov byte [ebp - 4], 3
test bl, 1
je 0x406f83
xor ebx, ebx
lea ecx, [ebp - 0x4e8]
push edi
inc ebx
push ebx
call fcn.004040a2
jmp 0x406f86
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x458]
call fcn.004061b9
test al, al
je 0x407044
mov esi, str..torrent
push esi
call fcn.00403808
pop ecx
push eax
push ecx
push esi
lea ecx, [ebp - 0x458]
call fcn.004075ad
cmp eax, 0xffffffff
jne 0x406fd7
mov esi, str..tor
push esi
call fcn.00403808
pop ecx
push eax
push ecx
push esi
lea ecx, [ebp - 0x458]
call fcn.004075ad
cmp eax, 0xffffffff
je 0x407044
xor dl, dl
mov ecx, 0x447e90
call fcn.004051eb
lea eax, [ebp - 0x458]
mov edx, 0x447e9c
push eax
lea ecx, [ebp - 0x470]
call fcn.0040764b
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4b8]
mov edx, eax
mov dword [esp], 0x447e98
call fcn.0040531a
pop ecx
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 5
call fcn.004055ce
push edi
push ebx
lea ecx, [ebp - 0x4b8]
call fcn.004040a2
push edi
push ebx
lea ecx, [ebp - 0x470]
mov byte [ebp - 4], 3
call fcn.004040a2
lea ecx, [ebp - 0x4a0]
call fcn.00406cf1
mov byte [ebp - 4], 6
cmp dword [ebp - 0x490], 0
sete al
test al, al
jne 0x4070ce
xor dl, dl
mov ecx, 0x447e90
call fcn.004051eb
lea eax, [ebp - 0x4a0]
mov edx, 0x447e9c
push eax
lea ecx, [ebp - 0x4b8]
call fcn.0040764b
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x470]
mov edx, eax
mov dword [esp], 0x447e98
call fcn.0040531a
pop ecx
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x440]
mov byte [ebp - 4], 8
call fcn.004055ce
push edi
push ebx
lea ecx, [ebp - 0x470]
call fcn.004040a2
push edi
push ebx
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 6
call fcn.004040a2
push 0x208
lea eax, [ebp - 0x218]
push edi
push eax
call fcn.00420070
add esp, 0xc
lea eax, [ebp - 0x440]
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x218]
mov edx, 0x104
cmovae eax, dword [ebp - 0x440]
push eax
call fcn.004057cc
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x470]
call fcn.00404015
push str.itorrentitorrent.exe
mov edx, eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x488]
call fcn.0040531a
pop ecx
push edi
push ebx
lea ecx, [ebp - 0x470]
call fcn.004040a2
push 0x38
lea eax, [ebp - 0x524]
push edi
push eax
call fcn.00420070
add esp, 0xc
mov dword [ebp - 0x528], 0x3c
cmp dword [ebp - 0x474], 8
lea eax, [ebp - 0x488]
mov dword [ebp - 0x520], edi
cmovae eax, dword [ebp - 0x488]
mov dword [ebp - 0x518], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x514], eax
lea eax, [ebp - 0x528]
push eax
mov dword [ebp - 0x51c], str.open
mov dword [ebp - 0x510], edi
mov dword [ebp - 0x50c], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push edi
push ebx
lea ecx, [ebp - 0x488]
call fcn.004040a2
push edi
push ebx
lea ecx, [ebp - 0x4a0]
call fcn.004040a2
push edi
push ebx
lea ecx, [ebp - 0x458]
call fcn.004040a2
push edi
push ebx
lea ecx, [ebp - 0x440]
call fcn.004040a2
call fcn.00438b07
ret