Function at 0x10001450
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Query environment variable

Disassembly:
mov eax, 0x8508
call fcn.100050b0
mov eax, dword [0x10029830]
xor eax, esp
mov dword [esp + 0x8504], eax
mov eax, dword [esp + 0x8510]
push ebp
mov ebp, dword [esp + 0x8510]
push edi
push 0x8000
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call fcn.1000896f
movups xmm0, xmmword [str.CPPTEST_SCAN_LD_PRELOAD_32]
mov cx, word [0x1001c474]
mov edi, eax
mov word [esp + 0x850c], cx
add esp, 4
mov cl, byte [0x1001c476]
mov byte [esp + 0x850a], cl
movups xmmword [esp + 0x84f0], xmm0
movq xmm0, qword [0x1001c46c]
movq qword [esp + 0x8500], xmm0
test edi, edi
jne 0x100014f9
push str.ERROR:_Memory_allocation_failed__C3_
call fcn.100012e0
add esp, 4
xor eax, eax
pop edi
pop ebp
mov ecx, dword [esp + 0x8504]
xor ecx, esp
call fcn.100050a1
add esp, 0x8508
ret
push 0x8000
push 0
push edi
call fcn.10006290
add esp, 0xc
lea eax, [esp + 0x84f0]
push 0x8000
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jne 0x10001555
lea eax, [esp + 0x84f0]
push eax
push str.ERROR:_Cannot_find_environmental_variable__2_:__s
call fcn.100012e0
push edi
call fcn.10008954
add esp, 0xc
xor eax, eax
pop edi
pop ebp
mov ecx, dword [esp + 0x8504]
xor ecx, esp
call fcn.100050a1
add esp, 0x8508
ret
push esi
push str.Kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x10001594
push str.ERROR:_Cannot_load_module
call fcn.100012e0
push edi
call fcn.10008954
add esp, 8
xor eax, eax
pop esi
pop edi
pop ebp
mov ecx, dword [esp + 0x8504]
xor ecx, esp
call fcn.100050a1
add esp, 0x8508
ret
push ebx
push 0x40
push 0x3000
push 0x8214
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov ebx, eax
test ebx, ebx
jne 0x100015d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_Cannot_alloc_memory__d
call fcn.100012e0
push edi
call fcn.10008954
add esp, 0xc
xor eax, eax
jmp 0x100017ee
push str.LoadLibraryA
lea eax, [esp + 0x2fc]
mov dword [esp + 0x2e8], ebx
push esi
mov dword [esp + 0x2f4], 0
mov dword [esp + 0x2f8], 0
mov dword [esp + 0x2fc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x2f0], eax
test eax, eax
jne 0x1000162d
push str.ERROR:_Cannot_load_function
call fcn.100012e0
push edi
call fcn.10008954
add esp, 8
xor eax, eax
jmp 0x100017ee
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10001632
mov esi, dword [esp + 0x2f4]
sub ecx, edx
inc ecx
push ecx
push edi
push esi
lea eax, [esi + ecx]
mov dword [esp + 0x300], eax
call fcn.10005d10
mov eax, dword [esp + 0x2f0]
lea ecx, [esp + 0x2f0]
sub eax, ecx
add eax, esi
mov esi, dword [esp + 0x300]
push str.Setting_32_bit_startup_code.
mov dword [esp + 0x2fc], eax
call fcn.100012e0
add esp, 0x10
mov dword [esp + 0xd0], 0
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x10007
push eax
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x10001716
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ERROR:_Cannot_get_thread_context__1___d
call fcn.100012e0
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [esp + 0x14]
push eax
push 0x8214
lea eax, [esp + 0x2ec]
push eax
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x100017d3
call esi
push eax
push str.ERROR:_Cannot_write_memory__d
call fcn.100012e0
add esp, 8
push 0x8000
push 0x8214
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push edi
call fcn.10008954
add esp, 4
xor eax, eax
jmp 0x100017ee
mov eax, dword [esp + 0xd0]
test eax, eax
jne 0x10001735
push str.ERROR:_Context_getting_failed__1_.
call fcn.100012e0
mov eax, dword [esp + 0xd4]
add esp, 4
mov dword [esp + 0x2e8], eax
lea ecx, [esp + 0x2e4]
mov eax, dword [esp + 0x2e4]
sub eax, ecx
add eax, esi
mov dword [esp + 0xd0], eax
mov word [esi], 0xba60
mov eax, dword [esp + 0x2e4]
add eax, 8
mov dword [esi + 6], 0xba510a8b
mov dword [esi + 2], eax
mov eax, dword [esp + 0x2e4]
add eax, 0xc
mov dword [esi + 0xe], 0xd0ff028b
mov dword [esi + 0xa], eax
mov word [esi + 0x12], 0xff61
mov byte [esi + 0x14], 0x25
mov eax, dword [esp + 0x2e4]
add eax, 4
mov dword [esi + 0x15], eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
mov dword [esp + 0x20], 0x10007
call dword [sym.imp.KERNEL32.dll_SetThreadContext]
test eax, eax
jne 0x100016bc
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
push eax
push str.ERROR:_Cannot_set_thread_context__1___d
call fcn.100012e0
add esp, 8
jmp 0x100016c2
push 0x8214
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
push edi
call fcn.10008954
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x8514]
pop ebx
pop esi
pop edi
pop ebp
xor ecx, esp
call fcn.100050a1
add esp, 0x8508
ret