Function at 0x40a463
Capabilities:
Allocate or change rwx memory
Check for time delay via gettickcount
Execute shellcode via indirect call

Disassembly:
push 0x14
mov eax, 0x417fbc
call fcn.00416820
xor ebx, ebx
push 0x44f020
push 0x445dac
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call fcn.0040d967
push str.________Code_Splicing________
call fcn.0040d967
push dword [ebp + 8]
call fcn.00403d48
add esp, 0x10
test eax, eax
jne 0x40a4ae
push str.Failed_to_fix_code...
call fcn.0040d967
jmp 0x40a71f
push str.Fixing_spliced_segments...
call fcn.0040d967
mov dword [0x45f510], ebx
mov esi, ebx
mov dword [0x45f528], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
pop ecx
call ebx
and dword [ebp - 4], 0
mov dword [0x44f468], eax
cmp esi, dword [0x45f520]
jae 0x40a5ec
mov eax, dword [0x45f630]
add eax, esi
mov dword [ebp - 0x1c], eax
cmp byte [eax], 0xe9
jne 0x40a58a
push 0x280
push 0
push 0x45e0c4
call sub.VCRUNTIME140D.dll_memset
mov eax, dword [ebp - 0x1c]
add esp, 0xc
and dword [0x45e074], 0
mov dword [0x45e0b8], eax
mov eax, dword [0x45f518]
cdq
add eax, esi
push 0x45e0b8
adc edx, 0
mov dword [0x45e0bc], eax
mov dword [0x45e0c0], edx
call dword [0x45e068]
mov dword [0x45e074], eax
cmp eax, 0xffffffff
je 0x40a58a
cmp dword [0x45e140], 0
mov edx, dword [0x45f514]
jb 0x40a58a
mov ecx, dword [0x45e13c]
ja 0x40a560
cmp ecx, edx
jb 0x40a58a
mov eax, dword [0x45f51c]
add eax, edx
cmp dword [0x45e140], 0
ja 0x40a58a
jb 0x40a576
cmp ecx, eax
jae 0x40a58a
push ecx
push dword [0x45e0bc]
call fcn.0040ae9b
inc dword [0x45f528]
pop ecx
pop ecx
inc esi
call ebx
sub eax, dword [0x44f468]
cmp eax, 0x12c
jbe 0x40a4d8
call ebx
push dword [0x45f528]
mov dword [0x44f468], eax
push str._lu_splices_repaired...
mov dword [0x45f634], 1
call fcn.0040d967
pop ecx
pop ecx
jmp 0x40a4d8
mov eax, dword [0x45f528]
test eax, eax
jne 0x40a5ff
push str.No_splices_found.
jmp 0x40a4a4
push eax
push str._lu_splices_repaired...
call fcn.0040d967
push str.Splice_repairing_complete.
call fcn.0040d967
push str.Patching_process...
call fcn.0040d967
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
lea eax, [ebp - 0x18]
add esp, 0x10
push 0x40
pop ecx
push eax
push ecx
push dword [0x45f520]
mov dword [ebp - 0x14], ecx
push dword [0x45f518]
push dword [ebp + 8]
call esi
test eax, eax
jne 0x40a666
push dword [0x45f518]
push str.VirtualProtectEx_Error_DoRemoveSplicing_address:__p
call fcn.0040d967
push 0
call fcn.0040d967
add esp, 0xc
jmp 0x40a720
push 0x451574
push dword [0x45f520]
push dword [0x45f630]
push dword [0x45f518]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x40a697
push dword [0x45f518]
push str.WriteProcessMemory_Error_DoRemoveSplicing_address:__p
jmp 0x40a652
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x18]
push dword [0x45f520]
push dword [0x45f518]
push dword [ebp + 8]
call esi
test eax, eax
je 0x40a647
cmp dword [0x45f510], 0
je 0x40a6e6
push str.Patch_completed_with_some_potential_errors.
call fcn.0040d967
mov dword [esp], str.Code_section_may_be_invalid.
call fcn.0040d967
mov dword [esp], str.Try_again_or_check_option_redirect
call fcn.0040d967
pop ecx
mov eax, str.code_splices_and_try_again.
jmp 0x40a6eb
mov eax, str.Patch_successful.
push eax
call fcn.0040d967
mov eax, dword [0x45f52c]
pop ecx
test eax, eax
je 0x40a709
push eax
call fcn.00415a50
and dword [0x45f52c], 0
pop ecx
mov eax, dword [0x45f630]
test eax, eax
je 0x40a720
push eax
call fcn.00415a50
and dword [0x45f630], 0
pop ecx
call fcn.00416760
ret