def METHOD_NAME(self):
    '''
    alloca_probe() is compiled statically in the test sample.
    Verify it is detected and emulated correctly.
    '''
    alloca_fnva = 0x1400081c0
    test_fnva = 0x140006360
    # Verify alloca_probe is detected by a signature.
    # (For this sample, the signature for the MSVC 2010 compiler.)
    alloca_api = self.hello_amd64_vw.getFunctionApi(alloca_fnva)
    assert alloca_api[3] == 'ntdll._alloca_probe'
    # The test function starts with these instructions:
    #     mov [rsp-8+arg_18], rbx
    #     push rbp
    #     push other registers...
    #     mov eax, 0x1b30
    #     call _alloca_probe
    #     sub rsp, rax
    # Step an emulator to the alloca_probe call.
    emu = self.hello_amd64_vw.getEmulator()
    emu.setProgramCounter(test_fnva)
    for i in range(10):
        emu.stepi()
    ip = emu.getProgramCounter()
    opcode = emu.parseOpcode(ip)
    assert repr(opcode) == "call 0x{0:08x}".format(alloca_fnva)
    rsp_before = emu.getRegister(e_amd64.REG_RSP)
    rax_before = emu.getRegister(e_amd64.REG_RAX)
    # Step over the call and verify RSP and RAX are unchanged.
    emu.stepi()
    rsp_after = emu.getRegister(e_amd64.REG_RSP)
    assert rsp_after == rsp_before
    # Step one more and verify the stack was decremented (not due to
    # API hooking, but it is another test of emulation).
    emu.stepi()
    rsp_after = emu.getRegister(e_amd64.REG_RSP)
    assert rsp_after == rsp_before - rax_before