Function at 0x408710
Capabilities:
Create process on windows
Write and execute a file
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x41c]
sub esp, 0x41c
push 0xffffffffffffffff
push 0x449b35
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x45f024]
xor eax, ebp
mov dword [ebp + 0x418], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
sub esp, 8
lea ecx, [ebp]
call fcn.00405800
add esp, 8
mov dword [ebp - 4], 0
lea eax, [ebp + 0x18]
push eax
lea ecx, [ebp]
call fcn.004095a0
mov byte [ebp - 4], 1
cmp dword [eax + 0x14], 8
jb 0x40877a
mov eax, dword [eax]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0x18], ebx
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x18]
call fcn.00403c40
cmp ebx, 0xffffffff
jne 0x4087b0
or edi, ebx
jmp 0x408adf
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov byte [ebp - 4], 4
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
test edi, edi
je 0x408818
cmp word [edi], dx
je 0x408818
push edx
push edx
push edx
push edx
push 0xffffffffffffffff
push edi
push edx
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebx, eax
test ebx, ebx
jle 0x408816
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push 0
push 0
push ebx
push eax
push 0xffffffffffffffff
push edi
push 0
mov dword [ebp - 0x10], eax
push 0xfde9
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edx, dword [ebp - 0x10]
jmp 0x408818
xor edx, edx
mov ebx, edx
lea edi, [ebp + 0x30]
mov edx, edi
mov ecx, str._InternetShortcut__r_nURL
sub ecx, edx
mov al, 0x5b
mov edx, dword [ebp - 0x10]
nop dword [eax + eax]
mov byte [edi], al
inc edi
mov al, byte [ecx + edi]
test al, al
jne 0x408830
mov byte [edi], al
mov dl, byte [edx]
test dl, dl
je 0x4088cc
lea ebx, [ebx + 1]
cmp dl, 0x61
jl 0x408853
cmp dl, 0x7a
jle 0x4088b6
cmp dl, 0x41
jl 0x40885d
cmp dl, 0x5a
jle 0x4088b6
cmp dl, 0x30
jl 0x408867
cmp dl, 0x39
jle 0x4088b6
mov eax, str.__.____:_______
mov cl, 0x2d
nop
cmp cl, dl
je 0x40887e
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x408870
jmp 0x408885
sub eax, str.__.____:_______
jns 0x4088b6
mov cl, dl
mov byte [edi], 0x25
sar cl, 4
and dl, 0xf
and cl, 0xf
cmp cl, 0xa
sbb al, al
and al, 0xf9
add al, 0x37
add al, cl
cmp dl, 0xa
mov byte [edi + 1], al
sbb al, al
and al, 0xf9
add al, 0x37
add al, dl
mov byte [edi + 2], al
mov eax, 3
jmp 0x4088bd
mov byte [edi], dl
mov eax, 1
add edi, eax
mov byte [edi], 0
mov dl, byte [ebx]
test dl, dl
jne 0x408846
mov word [edi], 0xa0d
lea eax, [ebp + 0x30]
add edi, 2
push 0
mov byte [edi], 0
sub edi, eax
lea eax, [ebp - 0x24]
push eax
push edi
mov edi, dword [ebp - 0x18]
lea eax, [ebp + 0x30]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, eax
push edi
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x408a17
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov byte [ebp - 4], 5
xor edi, edi
mov dword [ebp - 0x1c], edi
cmp byte [ebp + 0x30], 0
mov dword [ebp - 0x20], edi
je 0x408978
push edi
push edi
push 0xffffffffffffffff
lea eax, [ebp + 0x30]
push eax
push edi
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, eax
test ebx, ebx
jle 0x408975
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push ebx
mov edi, eax
lea eax, [ebp + 0x30]
push edi
push 0xffffffffffffffff
push eax
push 0
mov dword [ebp - 0x1c], edi
push 0xfde9
mov dword [ebp - 0x20], ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebx, dword [ebp - 0x18]
cmp word [esi], 0
mov eax, esi
je 0x408989
add eax, 2
cmp word [eax], 0
jne 0x408980
mov edx, str.URL_Shortcut_content:
mov esi, eax
mov ecx, 0x55
sub edx, eax
nop word [eax + eax]
mov word [esi], cx
add esi, 2
movzx ecx, word [edx + esi]
test cx, cx
jne 0x4089a0
xor eax, eax
mov word [esi], ax
test edi, edi
je 0x4089da
movzx eax, word [edi]
mov ecx, eax
test ax, ax
je 0x4089d5
mov ecx, edi
sub ecx, esi
mov word [esi], ax
add esi, 2
movzx eax, word [ecx + esi]
test ax, ax
jne 0x4089c6
xor eax, eax
mov word [esi], ax
mov ecx, 0x457b84
mov eax, 0xd
sub ecx, esi
mov word [esi], ax
add esi, 2
movzx eax, word [esi + ecx]
test ax, ax
jne 0x4089e6
xor eax, eax
mov word [esi], ax
mov byte [ebp - 4], 4
test edi, edi
je 0x408a09
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
or edi, 0xffffffff
test ebx, ebx
je 0x408abd
lea eax, [ebp + 0x18]
push eax
lea ecx, [ebp]
call fcn.004095a0
mov byte [ebp - 4], 6
cmp dword [eax + 0x14], 8
jb 0x408a3a
mov eax, dword [eax]
mov ebx, dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 5
push 0
push 0
push eax
push str.open
push 0
call ebx
mov edi, eax
mov byte [ebp - 4], 4
lea ecx, [ebp + 0x18]
call fcn.00403c40
test esi, esi
je 0x408a74
push esi
mov edx, str.open
mov ecx, edi
call fcn.00408fa0
add esp, 4
mov esi, eax
cmp edi, 0x20
ja 0x408abd
lea eax, [ebp + 0x18]
push eax
lea ecx, [ebp]
call fcn.004095a0
mov byte [ebp - 4], 7
cmp dword [eax + 0x14], 8
jb 0x408a91
mov eax, dword [eax]
push 5
push 0
push 0
push eax
push 0
push 0
call ebx
mov edi, eax
mov byte [ebp - 4], 4
lea ecx, [ebp + 0x18]
call fcn.00403c40
test esi, esi
je 0x408abd
push esi
xor edx, edx
mov ecx, edi
call fcn.00408fa0
add esp, 4
xor eax, eax
cmp edi, 0x20
cmova edi, eax
mov byte [ebp - 4], al
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call fcn.00403c40
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x418]
xor ecx, ebp
call fcn.0042817f
lea esp, [ebp + 0x41c]
pop ebp
ret